Почему делает этот gstreamer останов конвейерной обработки?

Это работает:

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?

7
задан timday 15 June 2010 в 20:56
поделиться

2 ответа

Ага ... это делает то, что я хочу:

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'

, в видео часть конвейера, работают, как и ожидалось.

3
ответ дан 7 December 2019 в 16:39
поделиться

ваш конвейер кажется правильным. однако gst-launch - это ограниченный инструмент - я бы предложил кодировать конвейер на python или ruby ​​для лучшей отладки.

0
ответ дан 7 December 2019 в 16:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: