|
Thanks for your responses.
I can assure you that the GESVideoTrack is connected to the video tee ... but the graph doesn't show it. There may be a problem inside `gst_debug_bin_to_dot_data` and I wish I had the time to investigate and fix the problem.
I was aware that I could fix the upstream frame-rate via ges_track_set_restriction_caps, but forcing a single frame-rate for the entire video seems like a sub-optimal solution in this case. (I am not aware of a compelling reason why an mp4 should have a constant frame-rate, but perhaps there is something I am unaware of.)
I am working with a third party vendor (Elecard) to get ahold of an encoder+muxer which can handle the task. On Thu, Jul 25, 2019 at 2:38 PM Mathieu Duponchelle < [hidden email]> wrote:
Hello David,
To answer your questions:
1. Why is this happening?
It's not really easy to tell without seeing your application, and
your dot files are a bit mystifying, as both in PLAYING
and failed the tee that starts your video encoding branch does not
have a sink pad.
As to the actual issue, you can see that the renegotiation fails
because you're trying to push caps with a different
framerate to the muxer, which let's you know it can't support
changing that on the fly.
2. How can I fix it?
Use ges_track_set_restriction_caps, with a fixed framerate.
On 7/25/19 1:23 AM, David Ing wrote:
I'm on Fedora 30 running Gstreamer 1.16.0.
I've got a GESTimeline inside of a GstPipeline. I have
attached dot files which shows the pipeline immediately after
each state transition.
- NULL -> READY
- READY -> PAUSED
- PAUSED -> PLAYING
- PLAYING, "JobFailed", when I receive an error message on
the bus
I would have provided image files but graphviz doesn't
like these dot files ... but you can use http://www.webgraphviz.com/ to
visualize them. They seem accurate except they show
tee_video as disconnected (it is actually connected).
I'm attaching a "small_logs.txt" file (less verbose) and a
"big_logs.txt" file (more verbose). The interesting bits can
be observed in the small file.
19-07-24T22:53:13.786414
INFO pan CompositionJob.cpp:123 Pipeline state
changed from PAUSED to PLAYING in 0.000 seconds.
19-07-24T22:53:14.120278 WARNING qtmux gstqtmux.c:5118
pad video_0 refused renegotiation to video/x-h264,
codec_data=(buffer)01640028ffe1001f67640028acd940780227e5c05a808080a0000003002000000303d1e30632c001000568ebecb22c,
stream-format=(string)avc, alignment=(string)au,
level=(string)4, profile=(string)high, width=(int)1920,
height=(int)1080, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)15/1,
interlace-mode=(string)progressive,
colorimetry=(string)bt709, chroma-site=(string)mpeg2
19-07-24T22:53:14.120551 WARNING qtmux gstqtmux.c:5118
pad video_0 refused renegotiation to video/x-h264,
codec_data=(buffer)01640028ffe1001f67640028acd940780227e5c05a808080a0000003002000000303d1e30632c001000568ebecb22c,
stream-format=(string)avc, alignment=(string)au,
level=(string)4, profile=(string)high, width=(int)1920,
height=(int)1080, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)15/1,
interlace-mode=(string)progressive,
colorimetry=(string)bt709, chroma-site=(string)mpeg2
19-07-24T22:53:14.120617 WARNING GST_PADS gstpad.c:4230
could not send sticky events
19-07-24T22:53:14.120740 WARNING qtmux gstqtmux.c:5118
pad video_0 refused renegotiation to video/x-h264,
codec_data=(buffer)01640028ffe1001f67640028acd940780227e5c05a808080a0000003002000000303d1e30632c001000568ebecb22c,
stream-format=(string)avc, alignment=(string)au,
level=(string)4, profile=(string)high, width=(int)1920,
height=(int)1080, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)15/1,
interlace-mode=(string)progressive,
colorimetry=(string)bt709, chroma-site=(string)mpeg2
19-07-24T22:53:14.120822 WARNING qtmux gstqtmux.c:5118
pad video_0 refused renegotiation to video/x-h264,
codec_data=(buffer)01640028ffe1001f67640028acd940780227e5c05a808080a0000003002000000303d1e30632c001000568ebecb22c,
stream-format=(string)avc, alignment=(string)au,
level=(string)4, profile=(string)high, width=(int)1920,
height=(int)1080, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)15/1,
interlace-mode=(string)progressive,
colorimetry=(string)bt709, chroma-site=(string)mpeg2
19-07-24T22:53:14.120896 WARNING qtmux gstqtmux.c:5118
pad video_0 refused renegotiation to video/x-h264,
codec_data=(buffer)01640028ffe1001f67640028acd940780227e5c05a808080a0000003002000000303d1e30632c001000568ebecb22c,
stream-format=(string)avc, alignment=(string)au,
level=(string)4, profile=(string)high, width=(int)1920,
height=(int)1080, pixel-aspect-ratio=(fraction)1/1,
framerate=(fraction)15/1,
interlace-mode=(string)progressive,
colorimetry=(string)bt709, chroma-site=(string)mpeg2
19-07-24T22:53:14.137918 WARNING qtdemux qtdemux.c:6607
error: Internal data stream error.
19-07-24T22:53:14.138040 WARNING qtdemux qtdemux.c:6607
error: streaming stopped, reason not-negotiated (-4)
19-07-24T22:53:14.138201 ERROR pan
CompositionJob.cpp:282 GST_MESSAGE_ERROR received from
element qtdemux5 at position 5465466666: Internal data
stream error.
../gst-plugins-good/gst/isomp4/qtdemux.c(6607):
gst_qtdemux_loop ():
/GstPipeline:pipeline/GESTimeline:gestimeline0/GESVideoTrack:gesvideotrack0/NleComposition:video_nlecomposition1/GstBin:current-bin/NleSource:GESVideoUriSource:nlesource4/GstBin:videosrcbin/GstURIDecodeBin:uridecodebin2/GstDecodeBin:decodebin9/GstQTDemux:qtdemux5:
streaming stopped, reason not-negotiated (-4)
My questions are:
- Why is this happening?
- How can I fix it?
TL;DR
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
|