0

Can anybody to help me with understand how I can to work with vorbis in Gstreamer via parsebin element ? In examples below I use matroska file with one video (h264) and one audio (vorbis) streams.

For example next case is worked (used auto****sink w/o vorbisparse):used auto****sink w/o 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

but in this case all hangs (used auto****sink with 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

worked (used separate filesinks with vorbisparse):used separate filesinks with 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

hangs (used separate filesinks w/o 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

worked (used multiqueue, separate filesinks and vorbisparse):used multiqueue, separate filesinks and 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"

hangs (used multiqueue, single filesink and vorbisparse):used multiqueue, single filesink and 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.

P.S. My main goal is to use this parsebin element and get the ability to transcode or transmux streams as needed. For example:

  • video => transmux, audio => transmux
  • video => transmux, audio => transcode
  • video => transcode, audio => transmux
  • video => transcode, audio => transcode

I will be grateful for your clarifications and help

Oleg
  • 51
  • 1
  • 1
  • 5

0 Answers0