2012-03-27 2 views
3

Я использую Gstreamer для записи 4 видео (MKV-контейнер, Mjpeg-кодек, 25 кадров в секунду, 5 минут) для создания «стены» видео (в основном, 2x2-матрицы) , Я использую следующий конвейер:Конвейер 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, frameerate = 25/1»! videobox ... Похожие запросы videomixer2