GNOME Bugzilla – Bug 652130
flvdemux video/x-h264 pad won't link to mpegtsmux
Last modified: 2011-06-10 19:05:27 UTC
I have noticed that the video/x-h264 pad will not link to the mpegtsmux plugin. On investigation i found that flvdemux generates the pad with the caps video/x-h264, stream-format=avc while mpegtsmux expects video/x-h264, stream-format=bytestream. This should probably updated in mpegtsmux.
> This should probably updated in mpegtsmux. What should be updated exactly? Have you tried adding an h264parse element in between?
I have not tried h264parse element. I was thinking adding "video/x-h264, stream-format=avc" to the mpegtsmux pad caps might be ok. maybe i am wrong.
Ok tried it, here's what happens The following pipeline links: gst-launch filesrc location=infile.flv ! flvdemux ! video/x-h264 ! h264parse ! fakesink If mpegtsmux is introduced after the h264parse plugin, then again h264parse and mpegtsmux won't link because of the "stream-format=(string)avc" caps property. gst-launch rtmpsrc location=rtmp://wms5.blinkotv.com:1935/roku/_definst_/stream1 ! flvdemux ! video/x-h264 ! h264parse ! mpegtsmux ! fakesink
sorry the second pipeline is: gst-launch filesrc location=infile.flv ! flvdemux ! video/x-h264 ! h264parse ! mpegtsmux ! fakesink
But that is not a bug still, is it? The stream formats are not compatible; the containers require different ones so this can't work. The situation is similar for e.g. AAC audio streams (ADTS vs. MP4 raw). Someone needs to write "format" elements (or add this functionality to the parsers) to get this to work. I guess you can turn this bug into a feature request/enhancement.
(In reply to comment #4) > gst-launch filesrc location=infile.flv ! flvdemux ! video/x-h264 ! h264parse ! > mpegtsmux ! fakesink This is the correct way to do it, and yes, it does work. Perhaps you have don't have up-to-date plugins?