Computer >> 컴퓨터 >  >> 소프트웨어 >> 소프트웨어

VirtualDub + AviSynth로 슬로우 모션 비디오 만들기

괜찮은. 불과 몇 주 전에 VirtualDub 필터를 사용하여 비디오 크기를 조정하는 방법을 배웠습니다. 순전히 미적인 요구 사항과 출력 미디어를 더 작게 만들고 싶은 욕구를 제외하면 비디오 크기 조정은 그다지 중요하지 않을 수 있습니다. 그러나 불릿 타임 슬로우 모션 비디오를 만드는 것과 같이 매우 특별한 요구 사항이 있고 이를 수행하는 소프트웨어에 특정 형식과 크기가 필요한 경우 어떻게 됩니까?

걱정하지 마세요. 지난 튜토리얼에서 그 장애물을 극복했습니다. 그리고 오늘은 슬로우 모션 비디오를 만드는 방법을 보여 드리겠습니다. VirtualDub이 있습니다. 그리고 우리는 AviSynth라는 또 다른 멋진 프로그램을 알게 될 것입니다. 이 프로그램은 비디오 포스트 프로덕션을 위한 강력한 유틸리티입니다. 프런트엔드가 없으므로 명령줄과 스크립트에 정착해야 합니다. 무섭게 들리겠지만 걱정하지 마세요. 간단하게 할게요.

AviSynth, 설치, 준비, 구성

VirtualDub 사용을 시작하기 전에 AviSynth를 구성해야 합니다. 다운로드 및 설치, 매우 간단합니다. 그러나 기본 패키지에서 사용할 수 없는 mvtools라는 추가 플러그인도 필요합니다. 이 작업이 완료되면 AviSynth를 사용할 준비가 된 것입니다.

AviSynth 사용

프런트엔드(GUI)도 없고, 일을 처리하는 화려하거나 쉬운 방법도 없습니다. 그래도 명령줄을 두려워할 필요는 없습니다. 텍스트 편집기를 열고 명령 작성을 시작하거나 웹에서 준비된 스크립트를 찾아 복사합니다. 저는 전문가는 아니지만 코드를 읽고 제 방식으로 Google 검색을 할 수 있습니다.

Nerds Central에서 슬로우 모션 스크립트를 찾아 내 용도에 맞게 수정했습니다. 작성자는 스크립트가 수행하는 작업을 자세히 설명하므로 명령을 살펴보고 하나씩 설명하는 데 별 의미가 없습니다. AviSynth는 자체 구문이 있는 사실상의 프로그래밍 언어라는 점을 기억하세요. 하나만 알면 다 안다.

기본적으로 위의 예와 동일한 내 작업은 다음과 같습니다.

LoadPlugin("mvtools.dll 경로")
source=AVISource("source.avi 경로",false)
o소스=소스
source=ConvertToYV12(소스)
소스=AssumeFPS(소스,25)
backward_vec=source.MVAnalyse(isb=true,truemotion=true,pel=2,idx=1)
forward_vec=source.MVAnalyse(isb=false,truemotion=true,pel=2,idx=1)
cropped=source.crop(4,4,-4,-4) # 블록 크기의 절반 8
backward_vec2=자른.MVAnalyse(isb=true,truemotion=true,pel=2,idx=2)
forward_vec2=자른.MVAnalyse(isb=false,truemotion=true,pel=2,idx=2)
fSource=source.MVFlowFps2(backward_vec,forward_vec,
backward_vec2,forward_vec2,num=250,idx=1,idx2=2)
fSource=AssumeFPS(fSource,25)
fSource 반환

그러나 주의를 요하는 몇 가지 지침:

mvtools.dll 및 소스 파일을 올바르게 가리켜야 합니다. 둘째, 소스를 YV12 형식으로 변환하라는 지침이 있습니다. 파일이 이미 올바른 형식인 경우 이 줄을 편집하거나 VirtualDub를 사용할 수 있습니다.

source=ConvertToYV12(소스)

이 YV12 물건이 무엇인지 어떻게 압니까? 아니면 왜 필요한가요? 답은 꼭 필요하지는 않지만 비디오를 처리하는 데는 좋다는 것입니다. YV12는 평면 형식입니다. 즉, 각 이미지에 대해 모든 픽셀의 루마 데이터가 연속적으로 저장되고 이어서 이미지 처리 기술에 이상적인 크로마 데이터가 저장됩니다. 이제 이 마지막 문장은 잊어버리세요.

어쨌든 YV12를 지원하는 형식에 대한 자세한 내용은 AviSynth FAQ를 참조하십시오. 일반적으로 XviD가 포함된 MPEG-4는 잘 작동합니다.

어떤 이유로 이 오류가 발생하면 VirtualDub에서 스크립트를 로드하려고 할 때 이 오류가 발생합니다. 정확히 어떻게 하는지는 잠시 후에 확인할 수 있습니다.

다음으로 소스에 FPS를 가정합니다. 올바른 프레임 속도를 설정하면 추측 없이 최상의 출력을 생성하는 데도 도움이 됩니다. 이렇게 하면 프레임 속도를 위아래로 여러 번 조정하지 않고도 예상대로 출력 비디오를 생성할 수 있습니다.

자르기

이것은 까다로운 것입니다. 너비가 4로 나눌 수 없는 비디오 파일이 있는 경우 스크립트를 로드하려고 시도하는 동안 VirtualDub에서 다음 산술 문제에 대해 불평하는 오류가 발생합니다.

스크립트에서 잘라낸 매개변수 행을 주석 처리하기로 결정할 수 있습니다. 작동할 수 있지만 정의되지 않은 변수가 생기지 않도록 스크립트의 논리가 변경되었는지 확인하십시오.

그러나 더 나은 방법은 크기 조정 필터를 사용하여 VirtualDub에서 비디오 크기를 조정하는 것입니다! 지난 시간에 배운 내용입니다! 이제 우리가 왜 그렇게 했는지 알 것입니다.

MVFlowFPS2 매개변수는 느려진 비디오의 프레임 수를 결정하지만 실제 감속은 출력 프레임 속도에 따라 다릅니다. 실제로 마지막으로 출력 AssumeFPS에 주의를 기울이십시오. 이것이 궁극적으로 길이와 크기를 포함하여 비디오의 속도를 결정하기 때문입니다. 원하는 만큼 이 매개변수를 사용하여 최상의 결과를 제공하는 것을 확인할 수 있습니다.

fSource=AssumeFPS(fSource,25)

VirtualDub에서 스크립트 로드

실제로 위에 표시된 오류는 다른 파일을 여는 것처럼 텍스트 파일을 확장자가 .avs인 스크립트로 저장하고 VirtualDub에서 열 때까지 표시되지 않습니다. 오류가 없으면 특정 프레임 요소가 삽입된 상태로 비디오가 로드됩니다. 위의 예는 x10 요소를 제공하지만 x2, x5 등으로 변경하기 위해 여러 FPS로 작업할 수 있습니다.

최종 결과

AviSynth 작업의 최종 컷은 Youtube에서 볼 수 있습니다. 하나와 둘을 연결합니다. 그러니 들러서 제 작품의 질을 확인해 주세요. 이러한 비디오를 제공하는 인테리어 디자인 갤러리에 관심이 있을 수도 있습니다.

프레임 사이의 보간으로 인해 비디오 가장자리에 약간의 흐림이 있음을 알 수 있습니다. 원본 녹화는 단일 카메라 프레임 모음으로, 초당 25프레임으로 리샘플링된 다음 10배 느려졌습니다. 따라서 약 간격을 채우는 소프트웨어가 있습니다. 프레임 사이에 250번, 이는 단순한 거래가 아닙니다. 이미 약간의 흐림 효과가 있는 모션 비디오에서 훨씬 더 나은 결과를 얻을 수 있으며 이러한 경우에 예상됩니다.

하지만 괜찮은 작품이라고 생각합니다. 당신은 지금 그것을하는 방법을 알고 있습니다.

결론

또 다른 멀티미디어 튜토리얼이 잘려져 있습니다. 지금까지 당신은 비디오 부주방장입니다. 중요한 점은 VirtualDub는 모든 종류의 필터를 포함하여 미디어 파일 작업을 위한 매우 강력하고 확장성이 뛰어난 도구입니다. AviSynth와 결합하여 인상적인 Matrix를 선택하거나 John Woo를 선호하는 경우 집에서 만든 비디오의 효과를 사용하여 이웃과 직장 동료를 능가할 수 있습니다.

AviSynth는 GUI가 없기 때문에 가장 간단한 유틸리티는 아니지만 잘 작동합니다. 기본 계층적 접근 방식을 기억하십시오. 1단계 변경 및 수정, 추가 처리 및 트랜스코딩에 VirtualDub를 사용하십시오. 다음으로 사용 가능한 필터를 사용하여 추가 효과를 얻습니다. 마지막으로 마지막 손질을 위해 타사 모듈을 사용합니다. 글쎄, 그게 다야. 재미있게 보내세요.

건배.