Re: splitmuxsink, issues with max-size-time and exact duration
Nicolas Dufresne via gstreamer-devel <[email protected]>
| Newsgroups | gmane.comp.video.gstreamer.devel |
|---|---|
| Message-ID | <CAKQmDh_V48_jMOVhJG49mijcUo9mUNmBTpwoaK1aEjCkARZS_Q@mail.gmail.com> |
Hi, Le ven. 21 juill. 2023, 08 h 30, Антон Шаров via gstreamer-devel < [email protected]> a écrit : > Hi! Thank you for reply! > > How to fix this issue? From one point of view I think it would be ok to > ask user for n seconds and > set n+2 to obtain exact duration, but I think I miss somthing to deal with > it properly. > > > Пятница, 21 июля 2023, 14:05 +03:00 от Krutskikh Ivan <[email protected] > >: > > Hi! > > I think it depends on seconds between key (I) frames since splitmuxsink > begins each new file with a key frame. > > The splitmuxsink property is called max-size-time, so it's logical that when your are not transcoding it will always splits smaller. Adding a min-size-time property could be an option. You can also transcode, and then you will have quite accurate splits. Regards, Nicolas > пт, 21 июл. 2023г. в 13:46, Антон Шаров via gstreamer-devel < > [email protected] > <//e.mail.ru/compose/?mailto=mailto%3agstreamer%[email protected]> > >: > > Hi. > > I found very strange issue with splitmuxsink and it’s max-size-time > property, namely > given n sec. for desired duration, it’s actual duration would be n-2 sec. > Initially I’ve discovered this > issue while testing hand-coded pipeline, but then desided to reproduce the > issue with gst-launch > and observed the very same behaviour. Given > gst-launch-1.0 -e -v rtspsrc buffer-mode=0 > add-reference-timestamp-meta=true location=rtsp://user:pass@ip_addr/onvif/media?profile=Profile1 > ! rtph264depay ! h264parse ! splitmuxsink > location="d:\\video_files\\video_%02d.mp4" max-size-time=10000000000 > (note, max-size-time=10000000000 is 10 sec in nanoseconds) > the actual duration of files will be 8 sec. > Same for 7→ 5, 5→ 3, and so on. So, it seems to be the pattern — set for n > secodns, receive for n-2 seconds. > Is it ok or maybe I miss something? I don’t think that it depends on > rtps source. > > Thanks in advance. > > Here some initial seesion info: > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: latency = > 2000 > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: ntp-sync = > false > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: rfc7273-sync > = false > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: > add-reference-timestamp-meta = true > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: > ntp-time-source = ntp > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: > drop-on-latency = false > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: > max-rtcp-rtp-time-diff = 1000 > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: > max-ts-offset-adjustment = 0 > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: buffer-mode > = none > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: timeout = > 5000000000 > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: caps = > application/x-rtp, media=(string)video, payload=(int)97, > clock-rate=(int)90000, encoding-name=(string)H264, > packetization-mode=(string)1, profile-level-id=(string)4D00000000000000, > sprop-parameter-sets=(string)"Z00AH52oFAFum4CAgIE\=\,aO48gA\=\=", > a-framerate=(string)15, ssrc=(uint)3053121902 > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc2: caps = > application/x-rtcp > Progress: (request) SETUP stream 1 > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc3: timeout = > 5000000000 > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc3: caps = > application/x-rtp, media=(string)audio, payload=(int)0, > clock-rate=(int)8000, encoding-name=(string)PCMU, > encoding-params=(string)1, ssrc=(uint)2174462030 > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc4: caps = > application/x-rtcp > Progress: (open) Opened Stream > Setting pipeline to PLAYING ... > New clock: GstSystemClock > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: buffer-mode > = none > Progress: (request) Sending PLAY request > Redistribute latency... > Redistribute latency... > Progress: (request) Sending PLAY request > Redistribute latency... > Redistribute latency... > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: caps = > application/x-rtp, media=(string)video, payload=(int)97, > clock-rate=(int)90000, encoding-name=(string)H264, > packetization-mode=(string)1, profile-level-id=(string)4D00000000000000, > sprop-parameter-sets=(string)"Z00AH52oFAFum4CAgIE\=\,aO48gA\=\=", > a-framerate=(string)15, ssrc=(uint)3053121902, clock-base=(uint)2632806877, > seqnum-base=(uint)14666, npt-start=(guint64)0, play-speed=(double)1, > play-scale=(double)1, onvif-mode=(boolean)false > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc3: caps = > application/x-rtp, media=(string)audio, payload=(int)0, > clock-rate=(int)8000, encoding-name=(string)PCMU, > encoding-params=(string)1, ssrc=(uint)2174462030, > clock-base=(uint)661265319, seqnum-base=(uint)53364, npt-start=(guint64)0, > play-speed=(double)1, play-scale=(double)1, onvif-mode=(boolean)false > Progress: (request) Sent PLAY request > /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1.GstPad:src: > caps = application/x-rtp, media=(string)video, payload=(int)97, > clock-rate=(int)90000, encoding-name=(string)H264, > packetization-mode=(string)1, profile-level-id=(string)4D00000000000000, > sprop-parameter-sets=(string)"Z00AH52oFAFum4CAgIE\=\,aO48gA\=\=", > a-framerate=(string)15, ssrc=(uint)3053121902, clock-base=(uint)2632806877, > seqnum-base=(uint)14666, npt-start=(guint64)0, play-speed=(double)1, > play-scale=(double)1, onvif-mode=(boolean)false > > > > -- > С Уважением, > Шаров Антон > > > > -- > С Уважением, > Шаров Антон > >