2012-03-27 7 views
3

비디오의 "벽"(기본적으로 2x2 매트릭스)을 생성하기 위해 Gstreamer를 사용하여 4 개의 비디오 (MKV 컨테이너, Mjpeg 코덱, 초당 25 프레임, 5 분 길이) . 나는 다음과 같은 파이프 라인을 사용하고 있습니다 :Gstreamer 파이프 라인, 의도 한대로 작동하지 않는 비디오

#!/bin/sh 
gst-launch -e videomixer name=mix ! ffmpegcolorspace ! jpegenc ! avimux ! filesink location=$1.avi \ 
uridecodebin uri="file://${PWD}/$1/1.mkv" ! videoscale ! videorate ! video/x-raw-yuv,width=300,height=200, framerate=25/1 ! videobox border-alpha=0 top=0 left=0 ! mix. \ 
uridecodebin uri="file://${PWD}/$1/2.mkv" ! videoscale ! videorate ! video/x-raw-yuv,width=300,height=200,framerate=25/1 ! videobox border-alpha=0 top=0 left=-300 ! mix. \ 
uridecodebin uri="file://${PWD}/$1/3.mkv" ! videoscale ! videorate ! video/x-raw-yuv,width=300,height=200,framerate=25/1 ! videobox border-alpha=0 top=-200 left=0 ! mix. \ 
uridecodebin uri="file://${PWD}/$1/4.mkv" ! videoscale ! videorate ! video/x-raw-yuv,width=300,height=200,framerate=25/1 ! videobox border-alpha=0 top=-200 left=-300 ! mix. \ 

코드가 작동을하지만, 최종 결과는 겨우 17 초 동안 대신에 원본 동영상과 같은 5 분이며, 내가 videorate 요소를 사용하고처럼은 보이지 않는다 올바르게 - 출력 비디오는 원래 비디오의 속도를 유지하는 대신 프레임을 읽을 수있게 무작위로 "속도를 높이는"것처럼 보입니다.

흥미롭게도 원본 파일이 .wmv (Windows Media 9 코덱)이면 모든 것이 잘 작동하는 것처럼 보입니다. 어떤 아이디어?

답변

2

캡프 필터를 따옴표로 넣으세요 ... 영상 촬영을하십시오! "video/x-raw-yuv, width = 300, height = 200, framerate = 25/1"! videobox ... 또한 시도하십시오 videomixer2

관련 문제