Splitmuxsink cannot create multiple files when using with tee and omxh264dec

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Splitmuxsink cannot create multiple files when using with tee and omxh264dec

Andrew Max
Splitmuxsink cannot create multiple files when using it with rtspsrc and
omxh264dec.

Pipeline 1: (Create only 1 file with 46KB)

gst-launch-1.0 rtspsrc
location=rtsp://192.168.1.127:8000/Streaming/Channels/102 protocols=4
latency=0 name=myrtsp drop-on-latency=true  user-id=admin user-pw=admin
myrtsp. ! capsfilter caps=application/x-rtp,media=video ! rtph264depay !
tee name=t ! h264parse ! omxh264dec ! appsink sync=true  t. ! queue !
h264parse ! splitmuxsink location=./%d.h264 async-handling=true
name=filesink max-size-byte=2000000 max-size-time=2000000000

It cannot create multiple file.

But when I remove "/Streaming/Channels/102", it can create multiple file:

Pipeline 2: (Can create multiple file)

gst-launch-1.0 rtspsrc location=rtsp://192.168.1.127:8000/ protocols=4
latency=0 name=myrtsp drop-on-latency=true  user-id=admin user-pw=admin
myrtsp. ! capsfilter caps=application/x-rtp,media=video ! rtph264depay !
tee name=t ! h264parse ! omxh264dec ! appsink sync=true  t. ! queue !
h264parse ! splitmuxsink location=./%d.h264 async-handling=true
name=filesink max-size-byte=2000000 max-size-time=2000000000


I also tried with avdec_h264: It can create multiple file:

Pipeline 3: (Can create multiple file)
gst-launch-1.0 rtspsrc
location=rtsp://192.168.1.127:8000/Streaming/Channels/102 protocols=4
latency=0 name=myrtsp drop-on-latency=true  user-id=admin user-pw=admin
myrtsp. ! capsfilter caps=application/x-rtp,media=video ! rtph264depay !
tee name=t ! h264parse ! avdec_h264 ! appsink sync=true  t. ! queue !
h264parse ! splitmuxsink location=./%d.h264 async-handling=true
name=filesink max-size-byte=2000000 max-size-time=2000000000

Is there any wrong with tee when connect with splitmuxsink?
I found that buffer which was sent to downstream is invalid PTS (function
handle_mq_input() in gstmiltifilesink.c). So, it will assign timestamp to
DTS. I am still investigating this problem.




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Splitmuxsink cannot create multiple files when using with tee and omxh264dec

Andrew Max
I am confuse that pipline works fine if I use main stream: 101

gst-launch-1.0 rtspsrc
location=rtsp://192.168.1.127:8000/Streaming/Channels/*101* protocols=4
latency=0 name=myrtsp drop-on-latency=true  user-id=admin user-pw=admin
myrtsp. ! capsfilter caps=application/x-rtp,media=video ! rtph264depay ! tee
name=t ! h264parse ! omxh264dec ! appsink sync=true  t. ! queue ! h264parse
! splitmuxsink location=./%d.h264 async-handling=true name=filesink
max-size-byte=2000000 max-size-time=2000000000

Substream 102 may not provide timestamp?
I wonder that omxh264 is not provided timestamp and it will set timestamp
itself: line 2875 (omx/gstomxvideodec.c). Is it effect to buffer of
upstream?

GST_OMX_SET_TICKS (buf->omx_buf->nTimeStamp, G_GUINT64_CONSTANT (0));

But, before decode video, data was split by "tee".
I also checked log of avdec_h264, *the frame does not have pts*. And output
of decoded frame in avvidec has pts:

libav gstavviddec.c:1583:gst_ffmpegviddec_video_frame:<avdec_h264-0>
pts 2502232037 duration 100000000
libav gstavviddec.c:1585:gst_ffmpegviddec_video_frame:<avdec_h264-0>
picture: pts 0



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel