2012-05-24 4 views
2

linux에서 실행되는 명령 행 비디오 도구를 찾고 있는데, 이는 스크립트 가능하며, 모자이크 비디오가있는 출력 비디오를 제공 할 수 있습니다. 문제는 모자이크 비디오가 출력 내부에서 변경되어야한다는 것입니다. 4 * 4 모자이크 비디오를 상상해보십시오. 그러나 16보다 많은 입력 비디오가 있으므로 예를 들어 10 초마다 모자이크의 타일을 다른 비디오로 변경해야합니다.모자이크 비디오 출력용 명령 행 비디오 도구

모자이크 출력을 생성 할 수있는 명령 줄 VLC 도구와 avisynth를 찾았습니다.하지만 위에서 설명한 변경된 비디오는 지원하지 않습니다.

누군가 다른 옵션을 알고 있습니까?

미리 감사드립니다.

답변

0

AviSynth는 비디오를 결합 할 수 있으므로 스크립트의 언제든지 비디오 소스를 변경할 수 있습니다.

예를 들어, 다음 샘플에서는 4 개 개의 입력의 왼쪽 영상 6 초 후에 다른 비디오로 변경합니다

v11 = AviSource("SomeSampleVideo.avi", false). \ 
    Crop(0, 0, 320, 240).AssumeFPS(25).ConvertToRGB32.Trim(0, 150).FadeOut(25, $FF0000) 

v12 = AviSource("AnotherSampleVideo.avi", false). \ 
    Crop(40, 10, 320, 240).AssumeFPS(25).ConvertToRGB32.FadeIn(25, $FF0000) 

v1 = v11 + v12 

v2 = ImageReader("SomeSampleBitmap.bmp").Crop(20, 10, 320, 240).ConvertToRGB32 
v3 = AviSource("YetAnotherVideo.avi", false).Crop(30, 30, 320, 240).ConvertToRGB32 
v4 = v1.Subtract(v2) 

return StackVertical(StackHorizontal(v1, v2), StackHorizontal(v3, v4)) 


이것은 비록 요구 오해 것이 가능하다 ..

+0

감사합니다. –

0

저작물 주위 VLC로 생성 된 UDP 스트림을 통해 비디오를 실행할 수는 예 :

vlc -vvv $YOUR_INPUT_VIDEO_AS_A_VARIABLE --sout='#transcode{vcodec=h264, vb=768, fps=25.0, width=1920, height=1080, scale=1, acodec=aac, ab=128, samplerate=32000}:standard{access=udp, mux=ts, dst=239.0.0.1}' 

다음이 UDP 스트림을 포함 당신의 VLC 모자이크 예 :

setup video1 input udp://@239.0.0.1 

나중에 난 당신이 변수가 새 비디오 ($ YOUR_INPUT_VIDEO_AS_A_VARIABLE) 궁극적으로 이전 VLC 인스턴스를 죽이고 새로운으로 다시 시작 경로 인 호출하는 스크립트를 작성할 수 있습니다 상상 동일한 UDP 주소로 비디오를 전송합니다. 귀하의 경우 포트를 고려해야합니다. 동영상 1 ~ 239.0.0.1:1234 전송 중. 동영상 2 ~ 239.0.0.1 : 1236; 동영상 3 ~ 239.0.0.1:1238 - 등등.

아무 것도 전송되지 않으면 UDP가 걱정되지 않으므로 짧은 시간 동안 비디오가 재생되지 않습니다 (이전 VLC 인스턴스를 죽이고 새 비디오를 스트리밍하는 데 걸리는 시간).

다시 말하지만 해결 방법이 있습니다. 어쩌면이게 도움이 될 수도 있고 그렇지 않으면 잊어 버릴 수도 있습니다.