End Of stream issue while playing mp4 file
ebrahim
mohamedsha.mec at gmail.com
Fri Nov 18 12:26:27 UTC 2016
Hi,
The issue i am facing is , Iam not able to playback the mp4 file created .
The code is shown below.
This issue is happen when i use mp4mux.
Instead of using /mp4mux/ if i use /mpegtsmux/ (currently commented) then i
am able to playback the recorded video.
Another thing i have noticed is if i use videotestsrc with mp4mux, then i
am able to playback the recorded video.
/
#include <gst/gst.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
GstElement *pipeline, *source, *capsfilter, *h264parse, *mux, *sink,
*encoder;
// GstBus *bus;
// GstMessage *msg;
// GstPad *blockpad;
GstCaps *Cap;
gst_init (NULL,NULL);
Cap =
gst_caps_from_string("video/x-h264,stream-format=(string)byte-stream,width=320,height=240,framerate=30/1");
//source = gst_element_factory_make("videotestsrc","source");
source = gst_element_factory_make("v4l2src","source");
capsfilter = gst_element_factory_make("capsfilter","caps");
h264parse = gst_element_factory_make("h264parse","h264parse");
// mux = gst_element_factory_make("mpegtsmux","mux");
mux = gst_element_factory_make("mp4mux","mux");
sink = gst_element_factory_make("filesink","sink");
encoder = gst_element_factory_make("x264enc","encoder");
g_object_set(G_OBJECT(source), "num-buffers",300, NULL);
g_object_set(sink, "location" , "test1.mp4",NULL);
g_object_set(capsfilter,"caps",Cap,NULL);
pipeline = gst_pipeline_new("test-pipeline");
gst_bin_add_many(GST_BIN(pipeline),
source,encoder,capsfilter,h264parse,mux,sink,NULL);
gst_element_link_many(source,encoder,capsfilter,h264parse,mux,sink,NULL);
gst_element_set_state (pipeline, GST_STATE_PLAYING);
GST_DEBUG_BIN_TO_DOT_FILE(GST_BIN(pipeline), GST_DEBUG_GRAPH_SHOW_ALL,
"stream_graph_file");
sleep(8);
gst_element_send_event(source, gst_event_new_eos ());
gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL);
gst_object_unref(GST_OBJECT(pipeline));
return 0;
}/
vlc test1.mp4
VLC media player 2.1.6 Rincewind (revision 2.1.6-0-gea01d28)
[0x1af7118] main libvlc: Running vlc with the default interface. Use 'cvlc'
to use vlc without interface.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9f54c21280] moov atom not found
[0x7f9f54c21a18] mp4 demux error: MP4 plugin discarded (no moov,foov,moof
box)
[0x7f9f54c21a18] mp4 demux error: MP4 plugin discarded (no moov,foov,moof
box)
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f9f54002340] moov atom not found
[0x7f9f54c21a18] avformat demux error: Could not open
/home/sha/gstreamer/gstreamer/test1.mp4: Unknown error 1094995529
gst-launch-1.0 filesrc location=test1.mp4 ! decodebin name=dec !
videoconvert ! autovideosink
(gst-plugin-scanner:8543): GStreamer-CRITICAL **: gst_structure_new_empty:
assertion 'gst_structure_validate_name (name)' failed
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
WARNING: from element
/GstPipeline:pipeline0/GstDecodeBin:dec/GstQTDemux:qtdemux0: Invalid atom
size.
Additional debug info:
isomp4/1.2/qtdemux.c(3064): gst_qtdemux_loop_state_header ():
/GstPipeline:pipeline0/GstDecodeBin:dec/GstQTDemux:qtdemux0:
Header atom 'mdat' has empty length
ERROR: from element
/GstPipeline:pipeline0/GstDecodeBin:dec/GstQTDemux:qtdemux0: This file
contains no playable streams.
Additional debug info:
isomp4/1.2/qtdemux.c(577): gst_qtdemux_post_no_playable_stream_error ():
/GstPipeline:pipeline0/GstDecodeBin:dec/GstQTDemux:qtdemux0:
no known streams found
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/End-Of-stream-issue-while-playing-mp4-file-tp4680763.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list