Это работает:
gst-launch-0.10 \
videotestsrc ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux. \
audiotestsrc ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux. \
avimux name=mux ! filesink location=gst.avi
Я могу позволить ему работать некоторое время, уничтожить его, и затем totem gst.avi
отображает хорошую тестовую карту с тоном.
Однако пытаясь сделать что-то более полезное как
gst-launch-0.10 \
filesrc location=MVI_2034.AVI ! decodebin name=dec \
dec. ! ffmpegcolorspace ! 'video/x-raw-yuv' ! mux. \
dec. ! audioconvert ! 'audio/x-raw-int,rate=44100,channels=1' ! mux. \
avimux name=mux ! filesink location=gst.avi
это просто отображается
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
и затем остановы неограниченно долго.
Что прием должен получить версию с прокруткой decodebin?
Ага ... это делает то, что я хочу:
gst-launch-0.10 \
filesrc location=MVI_2034.AVI ! decodebin name=dec \
dec. ! queue ! ffmpegcolorspace ! 'video/x-raw-yuv' ! queue ! mux. \
dec. ! queue ! audioconvert ! 'audio/x-raw-int,channels=1' ! audioresample ! 'audio/x-raw-int,rate=44100' ! queue ! mux. \
avimux name=mux ! filesink location=gst.avi
Элементы очереди (как ведущие, так и замыкающие) кажутся критическими.
Дальнейшие эксперименты, добавляющие такие вещи, как videoflip или
videorate ! 'video/x-raw-yuv,framerate=25/1'
, в видео часть конвейера, работают, как и ожидалось.
ваш конвейер кажется правильным. однако gst-launch - это ограниченный инструмент - я бы предложил кодировать конвейер на python или ruby для лучшей отладки.