GStreamer: трансформирование vorbis (сквозной) и транскодирование через парсебин

Кто-нибудь может помочь мне понять, как я могу работать с vorbis в Gstreamer через элемент parsebin? В примерах ниже я использую файл matroska с одним видео (h264) и одним аудио (vorbis) потоками.

Например, следующий случай работает (используется auto**** раковина без vorbisparse): б / у авто **** мойка без vorbisparse

gst-launch-1.0 filesrc location="h264.Vorbis.10sec.mkv" ! parsebin name=pb pb. ! queue ! avdec_h264 ! videoconvert ! autovideosink pb. ! queue !               vorbisdec ! audioconvert ! autoaudiosink

но в этом случае все зависает (используется авто **** мойка с vorbisparse)

gst-launch-1.0 filesrc location="h264.Vorbis.10sec.mkv" ! parsebin name=pb pb. ! queue ! avdec_h264 ! videoconvert ! autovideosink pb. ! queue ! vorbisparse ! vorbisdec ! audioconvert ! autoaudiosink

работал (использовал отдельные файловые ссылки с vorbisparse): использовал отдельные файловые ссылки с vorbisparse

gst-launch-1.0 filesrc location="h264.Vorbis.10sec.mkv" ! parsebin name=pb pb. ! queue ! matroskamux ! filesink location=d:/v.mkv pb. ! queue ! vorbisparse ! matroskamux ! filesink location=d:/a.mkv

зависает (используются отдельные файловые ссылки без vorbisparse):

gst-launch-1.0 filesrc location="h264.Vorbis.10sec.mkv" ! parsebin name=pb pb. ! queue ! matroskamux ! filesink location=d:/v.mkv pb. ! queue !               matroskamux ! filesink location=d:/a.mkv

работал (использовал multiqueue, отдельные filesinks и vorbisparse): используется несколько очередей, отдельные файловые ссылки и vorbisparse

gst-launch-1.0 filesrc location="h264.Vorbis.10sec.mkv" ! parsebin name=pb ! multiqueue name=mq   pb. ! mq.   mq.src_0 ! matroskamux name=mux ! filesink location="d:/v.mkv"   mq.src_1 ! vorbisparse ! matroskamux ! filesink location="d:/a.mkv"

зависает (используется multiqueue, single filesink и vorbisparse): используется multiqueue, single filesink и vorbisparse

gst-launch-1.0 filesrc location="h264.Vorbis.10sec.mkv" ! parsebin name=pb ! multiqueue name=mq   pb. ! mq.   mq.src_0 ! matroskamux name=mux ! filesink location="d:/va.mkv"  mq.src_1 ! vorbisparse ! mux.

PS Моя главная цель - использовать этот элемент parsebin и получить возможность транскодировать или транслировать потоки по мере необходимости. Например:

  • video => transmux, audio => transmux
  • video => transmux, audio => transcode
  • video => transcode, audio => transmux
  • видео => перекодировать, аудио => перекодировать

Буду благодарен за разъяснения и помощь

0 ответов

Другие вопросы по тегам