Issues with writing multi-stream MP4 file
Florian Echtler
floe at butterbrot.org
Tue Jun 20 13:04:54 UTC 2023
Hello everyone,
my Gstreamer application is writing two H.264 video streams and one Opus audio
stream to a MP4 file. The relevant parts of the pipeline looks as follows:
------------------------------------------------------------------------------
queue max-size-time=100000000 leaky=downstream ! x264enc bitrate=1500
speed-preset=ultrafast tune=zerolatency key-int-max=15 !
video/x-h264,profile=constrained-baseline,stream-format=avc ! queue ! mux.
(this part is present twice)
queue max-size-time=100000000 leaky=downstream ! opusenc bitrate-type=vbr
inband-fec=true ! queue ! opusparse ! mux.
mp4mux name=mux fragment-duration=1000 latency=100000000 ! filesink sync=true
location=out.mp4
------------------------------------------------------------------------------
The result is an MP4 file which I can play just fine in Totem on Ubuntu, and
even switch between video streams using "Switch angles".
However, none of the following work:
- play it in VLC (plays a few seconds, then freezes)
- do anything with FFMPEG, e.g. split the streams (results are garbage)
- seek in the video (even in Totem)
In all cases, I get some messages about "Invalid NAL unit size" and/or
"non-monotonous DTS". So what would I need to do to my output pipeline to get a
"compliant" MP4 file?
Thanks and best, Florian
--
SENT FROM MY DEC VT50 TERMINAL
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 203 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230620/996d098a/attachment.sig>
More information about the gstreamer-devel
mailing list