I encoded a 26min movie v1.mp4. Then I cut out 1 min from 9:00 to 10:00 and added fad out/in and encoded to v2.mp4 Now I have AV sync problems that I can see at 7:00 I was doing some other work and noticed the video hiccup a little: it paused then jumped and was back in sync. To try and narrow down where the problem is, I’d like to compare v1/v2 frame by frame and look for differences. There shouldn’t be any until the fade at 9:00. Which is why I am trying this, but stuck on an error: $ gst-launch-1.0 -e \ > filesrc location=v1.mp4 ! qtdemux ! decodebin ! \ > video/x-raw, format=RGBA ! videoconvert ! mix. \ > filesrc location=v2.mp4 ! qtdemux ! decodebin ! \ > video/x-raw, format=RGBA ! videoconvert ! mix. \ > frei0r-mixer-difference name=mix ! \ > fakesink -- Carl K _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
You're trying to force the output of decodebin to have a specific
pixel format, before any video conversion
can take place, that's probably your issue here :) On 8/28/19 7:43 PM, Carl Karsten wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
In reply to this post by Carl Karsten-2
gst-launch-1.0 -e \ filesrc location=v1.mp4 ! qtdemux ! decodebin ! \ filesrc location=v2.mp4 ! qtdemux ! decodebin ! \ frei0r-mixer-difference name=mix ! \ fakesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ...Redistribute latency... Redistribute latency... Redistribute latency... ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux1: Internal data stream error. Additional debug info: qtdemux.c(6073): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstQTDemux:qtdemux1: streaming stopped, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... This works: gst-launch-1.0 -e filesrc location=v1.mp4 ! qtdemux ! decodebin ! fakesink On Wed, Aug 28, 2019 at 12:43 PM Carl Karsten <[hidden email]> wrote:
-- Carl K _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi Carl, I was just curious what your pipeline does and the following did not have negotiation error: gst-launch-1.0 -e \ filesrc location=v1.mp4 ! qtdemux ! decodebin ! \ videoconvert ! mix. \ filesrc location=v2.mp4 ! qtdemux ! decodebin ! \ videoconvert ! mix. \ frei0r-mixer-difference name=mix ! \ fakesink ie. no caps enforced in the pipeline explicitly and 'videoconvert' negotiating the best common format. BTW, adding `--gst-debug=3` option showed me that (in my case at least) I420 was still used instead of RGBA. Hope this helps, Kris On Sun, 2019-09-01 at 15:05 -0500, Carl Karsten wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Thanks for the tip on videoconvert being common. I always flounder on what to try first. I'm making progress - no errors with fakesink and xvimagesink now to write a file. I should care about this? (gst-launch-1.0:3996): GStreamer-CRITICAL **: 15:04:04.049: gst_segment_to_running_time: assertion 'segment->format == format' failed gst-launch-1.0 -e \ filesrc location=v1.mp4 ! qtdemux ! decodebin ! videoconvert ! mix. \ filesrc location=v2.mp4 ! qtdemux ! decodebin ! videoconvert ! mix. \ frei0r-mixer-difference name=mix ! \ videoconvert ! \ avenc_mpeg2video ! mpegtsmux ! filesink location=diff.mp4 same with x264enc On Mon, Sep 2, 2019 at 5:17 AM Krzysztof Konopko <[hidden email]> wrote:
-- Carl K _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |