Hi there,
I'm trying to pipe the output from mp4mux into an appsink. They link just fine and no error messages are produced. However the resulting data is not a valid MP4 file.
According to this thread: http://gstreamer-devel.966125.n4.nabble.com/appsink-can-t-get-qtmux-streamheader-td4119740.html mp4mux requires seeking in the output. Is this correct?
It all works fine when I use "streamable=true". Also I do send EOS to the pipeline.
/Kristoffer _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
On Mo, 2016-03-21 at 14:40 +0000, Kristoffer Glembo wrote:
> Hi there, > > I'm trying to pipe the output from mp4mux into an appsink. They link > just fine and no error messages are produced. However the resulting > data is not a valid MP4 file. > > According to this thread: http://gstreamer-devel.966125.n4.nabble.com > /appsink-can-t-get-qtmux-streamheader-td4119740.html mp4mux requires > seeking in the output. Is this correct? Yes, MP4 requires that the headers to include the positions to every single frame/sample in the stream. > It all works fine when I use "streamable=true". Also I do send EOS to > the pipeline. streamable=true is only valid for fragmented MP4 though. -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
I'm trying to add seek support for appsink. But it seems that the appsink never receives the SEEKING query from the mp4mux.
Mp4mux claims downstream is not seekable: qtmux gstqtmux.c:1695:gst_qt_mux_start_file:<mp4mux0> downstream is not seekable qtmux gstqtmux.c:1707:gst_qt_mux_start_file:<mp4mux0> warning: Downstream is not seekable and headers can't be rewritten But I've implemented handling of the seek query and the appsink never even receives the query. What can cause this? |
On Do, 2016-03-24 at 03:32 -0700, Kristoffer wrote:
> I'm trying to add seek support for appsink. But it seems that the appsink > never receives the SEEKING query from the mp4mux. > > Mp4mux claims downstream is not seekable: > > qtmux gstqtmux.c:1695:gst_qt_mux_start_file: downstream is not > seekable > qtmux gstqtmux.c:1707:gst_qt_mux_start_file: warning: Downstream is > not seekable and headers can't be rewritten > > But I've implemented handling of the seek query and the appsink never even > receives the query. What can cause this? the handling of the SEEK query in appsink, and especially how would you handle the actual seeking later? -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
Hi Sebastian! I implemented it similar to filesink (sorry if this gets strangely formatted): case GST_QUERY_SEEKING: gst_query_parse_seeking (query, &format, NULL, NULL, NULL); if (format == GST_FORMAT_BYTES) { gst_query_set_seeking (query, GST_FORMAT_BYTES, TRUE, 0, -1); } else { gst_query_set_seeking (query, format, FALSE, 0, -1); } And then I added a signal and callback seek(guint64 offset) which is emitted on a SEGMENT event. My appsink is basically a custom filesink. I had nothing between mp4mux and the appsink. /Kristoffer On Do, 2016-03-24 at 03:32 -0700, Kristoffer wrote:
> I'm trying to add seek support for appsink. But it seems that the appsink > never receives the SEEKING query from the mp4mux. > > Mp4mux claims downstream is not seekable: > > qtmux gstqtmux.c:1695:gst_qt_mux_start_file: downstream is not > seekable > qtmux gstqtmux.c:1707:gst_qt_mux_start_file: warning: Downstream is > not seekable and headers can't be rewritten > > But I've implemented handling of the seek query and the appsink never even > receives the query. What can cause this? the handling of the SEEK query in appsink, and especially how would you handle the actual seeking later? -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment If you reply to this email, your message will be added to the discussion below:
http://gstreamer-devel.966125.n4.nabble.com/mp4mux-appsink-tp4676469p4676549.html
|
On Fr, 2016-03-25 at 01:42 -0700, Kristoffer wrote:
> Hi Sebastian! > > I implemented it similar to filesink (sorry if this gets strangely > formatted): > > [...] > And then I added a signal and callback seek(guint64 offset) which is > emitted on a SEGMENT event. > > My appsink is basically a custom filesink. I had nothing between > mp4mux and the appsink. GstBaseSink at this point. Or adding generic API to appsink for this which can then be merged into GStreamer, similar to what appsrc is doing and probably with an additional property to opt-in for "seek" handling. -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment |
Hi, > You probably want to consider writing a real sink element based on > GstBaseSink at this point. > > Or adding generic API to appsink for this which can then be merged into On Fr, 2016-03-25 at 01:42 -0700, Kristoffer wrote:
> Hi Sebastian! > > I implemented it similar to filesink (sorry if this gets strangely > formatted): > > [...] > And then I added a signal and callback seek(guint64 offset) which is > emitted on a SEGMENT event. > > My appsink is basically a custom filesink. I had nothing between > mp4mux and the appsink. GstBaseSink at this point. Or adding generic API to appsink for this which can then be merged into GStreamer, similar to what appsrc is doing and probably with an additional property to opt-in for "seek" handling. -- Sebastian Dröge, Centricular Ltd · http://www.centricular.com _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (968 bytes) Download Attachment If you reply to this email, your message will be added to the discussion below:
http://gstreamer-devel.966125.n4.nabble.com/mp4mux-appsink-tp4676469p4676584.html
|
Free forum by Nabble | Edit this page |