Discussion:
gstreamer splitmuxsink keep output file in memory, appsink?
hassanctech
2018-05-17 22:21:38 UTC
Permalink
I have a gstreamer pipeline with a splitmuxsink using an mp4muxer and the
sink is an appsink. What I'm hoping to do is in the new-sample event
handler I want to receive the entire finished mp4 file in a buffer and
instead of saving it locally to a file I want to upload it somewhere. If I
replace the appsink with a filesink everything works fine. But I change the
sink property of the splitmuxsink to be an appsink I get:

Error received from element mp4mux: Downstream is not seekable - will not be
able to create a playable file
Debugging information: gstqtmux.c(2127): gst_qt_mux_start_file ():
/GstPipeline:a-pipeline/GstSplitMuxSink:a_splitmuxsink/GstMP4Mux:mp4mux

What I want is for the new-sample handler to get invoked every time I have a
fully formed mp4 file, but the pipeline just stops after about 2-3 seconds
with the above error so having the appsink element is somehow causing the
pipeline to get jammed and error out. Any ideas/help here would be greatly
appreciated!



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
Vinod Kesti
2018-05-18 10:37:01 UTC
Permalink
mp4mux expects sink to be seekable as it seeks to moov block and writes the
final moov.
Seek is not possible in appsink.
Post by hassanctech
What I want is for the new-sample handler to get invoked every time I have a
fully formed mp4 file, but the pipeline just stops after about 2-3 seconds
with the above error so having the appsink element is somehow causing the
pipeline to get jammed and error out. Any ideas/help here would be greatly
appreciated!
splitmuxsink does not supports full file writing, Instead splitmuxsink
writes data to sink GOP by GOP.

For you mpegtsmux or flvmux will work as it do not require header writing.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/

Loading...