[FFmpeg-trac] #6415(undetermined:new): Strange DTS of first packet in RTSP stream
FFmpeg
trac at avcodec.org
Tue May 23 13:08:13 EEST 2017
#6415: Strange DTS of first packet in RTSP stream
-------------------------------------+-------------------------------------
Reporter: Alexander | Type: defect
Status: new | Priority: normal
Component: | Version:
undetermined | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
If I stream mp4 file from one ffmpeg instance to another throigh rtsp
protocol I get warnings on incoming site though dts in source mp4 file are
ordered:
{{{
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 2 times
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 5690
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 9290
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 12890
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 16490
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 20090
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 23690
}}}
When I check frame dts I get them in this order:
{{{
{buf = 0x81900f140, pts = 9200, dts = 9200, data = 0x8192be980 "", size =
31378, stream_index = 0, flags = 1, side_data = 0x0, side_data_elems = 0,
duration = 3600,
pos = -1, convergence_duration = 0}
{buf = 0x81900f3e0, pts = -8800, dts = -8800, data = 0x819069000 "", size
= 981, stream_index = 0, flags = 0, side_data = 0x0, side_data_elems = 0,
duration = 3600,
pos = -1, convergence_duration = 0}
{buf = 0x81900f520, pts = -5200, dts = -5200, data = 0x819074300 "", size
= 1082, stream_index = 0, flags = 0, side_data = 0x0, side_data_elems = 0,
duration = 3600,
pos = -1, convergence_duration = 0}
{buf = 0x81900f660, pts = -1600, dts = -1600, data = 0x819074d00 "", size
= 1078, stream_index = 0, flags = 0, side_data = 0x0, side_data_elems = 0,
duration = 3600,
pos = -1, convergence_duration = 0}
}}}
Where first dts=9200 is coming from?
How to reproduce:
sending part:
{{{
ffmpeg -re -i source.mp4 -acodec copy -vcodec copy -f rtsp -muxdelay 0.1
rtsp://test.mysite.com/in/1
}}}
listening part:
{{{
% ffmpeg -loglevel debug -rtsp_transport tcp -rtsp_flags listen -i
rtsp://test.mysite.com/in/1 -acodec copy -vcodec copy -f null /dev/null
ffmpeg version 3.3 Copyright (c) 2000-2017 the FFmpeg developers
built with FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564)
(based on LLVM 3.8.0)
configuration: --prefix=/usr/local --mandir=/usr/local/man
--datadir=/usr/local/share/ffmpeg
--pkgconfigdir=/usr/local/libdata/pkgconfig --enable-shared --enable-pic
--enable-gp
l --enable-postproc --enable-avfilter --enable-avresample --enable-
pthreads --cc=cc --disable-indev=alsa --disable-outdev=alsa --disable-
libopencore-amrnb --disable-libopencore-am
rwb --disable-libass --disable-libbs2b --disable-libcaca --disable-libcdio
--disable-libcelt --disable-chromaprint --disable-libdc1394 --disable-
stripping --enable-htmlpages --ena
ble-libfdk-aac --enable-ffserver --disable-libflite --disable-fontconfig
--disable-libfreetype --disable-frei0r --disable-libfribidi --disable-
libgme --disable-libgsm --disable-ic
onv --disable-libilbc --disable-indev=jack --disable-libkvazaar --disable-
ladspa --disable-libmp3lame --disable-libbluray --enable-mmx --disable-
libmodplug --disable-netcdf --disa
ble-openal --disable-indev=openal --disable-opencl --disable-libopencv
--disable-opengl --disable-libopenh264 --disable-libopenjpeg --enable-
optimizations --disable-libopus --disa
ble-libpulse --disable-indev=pulse --disable-outdev=pulse --enable-
runtime-cpudetect --disable-librubberband --disable-libschroedinger
--disable-ffplay --disable-outdev=sdl --disa
ble-sdl2 --disable-libsmbclient --disable-libsnappy --disable-indev=sndio
--disable-outdev=sndio --disable-libsoxr --disable-libspeex --enable-sse
--disable-libssh --disable-libte
sseract --enable-libtheora --disable-libtwolame --disable-libv4l2
--disable-indev=v4l2 --disable-outdev=v4l2 --disable-vaapi --disable-vdpau
--disable-libvidstab --enable-libvorbi
s --disable-libvo-amrwbenc --enable-libvpx --disable-libwavpack --disable-
libwebp --enable-libx264 --enable-libx265 --disable-libxcb --enable-
libxvid --disable-outdev=xv --disable
-libzimg --disable-libzmq --disable-libzvbi --disable-gcrypt --enable-gmp
--disable-librtmp --disable-gnutls --enable-openssl --enable-version3
--enable-nonfree
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging
level) with argument 'debug'.
Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport'
with argument 'tcp'.
Reading option '-rtsp_flags' ... matched as AVOption 'rtsp_flags' with
argument 'listen'.
Reading option '-i' ... matched as input url with argument
'rtsp://test.mysite.com/in/1'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec
('copy' to copy stream)) with argument 'copy'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec
('copy' to copy stream)) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'null'.
Reading option '/dev/null' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url rtsp://test.mysite.com/in/1.
Successfully parsed a group of options.
Opening an input file: rtsp://test.mysite.com/in/1.
[tcp @ 0x807e820a0] No default whitelist set
[rtsp @ 0x807e7c000] Updating control URI to
rtsp://test.mysite.com:554/in/1
[rtsp @ 0x807e7c000] SDP: v=0^M
o=- 0 0 IN IP4 127.0.0.1^M
s=No Name^M
c=IN IP4 5.9.120.9^M
t=0 0^M
a=tool:libavformat 57.71.100^M
m=video 0 RTP/AVP 96^M
b=AS:612^M
a=rtpmap:96 H264/90000^M
a=fmtp:96 packetization-mode=1; sprop-parameter-
sets=Z0LAH9mAoC/5cBEAAAMAAQAAAwAyDxgyaA==,aMlhyyA=; profile-level-
id=42C01F^M
a=control:streamid=0^M
m=audio 0 RTP/AVP 97^M
b=AS:103^M
a=rtpmap:97 MPEG4-GENERIC/44100/2^M
a=fmtp:97 profile-level-id=1;mode=AAC-
hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=1210^M
a=control:streamid=1^M
[rtsp @ 0x807e7c000] video codec set to: h264
[rtsp @ 0x807e7c000] RTP Packetization Mode: 1
[rtsp @ 0x807e7c000] Extradata set to 0x807e74140 (size: 38)
[rtsp @ 0x807e7c000] RTP Profile IDC: 42 Profile IOP: c0 Level: 1f
[rtsp @ 0x807e7c000] audio codec set to: aac
[rtsp @ 0x807e7c000] audio samplerate set to: 44100
[rtsp @ 0x807e7c000] audio channels set to: 2
[rtp @ 0x807e23700] No default whitelist set
[udp @ 0x807e82280] No default whitelist set
[udp @ 0x807e82280] end receive buffer size reported is 65536
[udp @ 0x807e82320] No default whitelist set
[udp @ 0x807e82320] end receive buffer size reported is 65536
[rtsp @ 0x807e7c000] setting jitter buffer size to 500
[rtp @ 0x807e23780] No default whitelist set
[udp @ 0x807e823c0] No default whitelist set
[udp @ 0x807e823c0] bind failed: Address already in use
[rtp @ 0x807e23780] No default whitelist set
[udp @ 0x807e823c0] No default whitelist set
[udp @ 0x807e823c0] end receive buffer size reported is 65536
[udp @ 0x807e82460] No default whitelist set
[udp @ 0x807e82460] end receive buffer size reported is 65536
[rtsp @ 0x807e7c000] setting jitter buffer size to 500
Failed to parse interval end specification ''
[h264 @ 0x807e16f00] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x807e16f00] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x807e16f00] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x807e16f00] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x807e16f00] user data:"x264 - core 144 r2533 c8a773e -
H.264/MPEG-4 AVC codec - Copyleft 2003-2015 -
http://www.videolan.org/x264.html - options: cabac=0 ref=5 deblock=0:
0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1
me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11
fast_pskip=1 chroma_qp_offset=-2 threads=12
lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=25
keyint_min=2 scenecut=40 intra_refresh=0 rc_lo
okahead=25 rc=crf mbtree=1 crf=25.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4
ip_ratio=1.40 aq=1:1.00"
[h264 @ 0x807e16f00] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x807e16f00] nal_unit_type: 5, nal_ref_idc: 3
[h264 @ 0x807e16f00] user data:"x264 - core 144 r2533 c8a773e -
H.264/MPEG-4 AVC codec - Copyleft 2003-2015 -
http://www.videolan.org/x264.html - options: cabac=0 ref=5 deblock=0:
0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1
me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11
fast_pskip=1 chroma_qp_offset=-2 threads=12
lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0
bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=25
keyint_min=2 scenecut=40 intra_refresh=0 rc_lo
okahead=25 rc=crf mbtree=1 crf=25.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4
ip_ratio=1.40 aq=1:1.00"
[h264 @ 0x807e16f00] Reinit context to 640x368, pix_fmt: yuv420p
[h264 @ 0x807e16f00] nal_unit_type: 1, nal_ref_idc: 2
Last message repeated 2 times
[aac @ 0x807e17900] skip whole frame, skip left: 0
[h264 @ 0x807e16f00] nal_unit_type: 1, nal_ref_idc: 2
Last message repeated 2 times
[rtsp @ 0x807e7c000] All info found
Input #0, rtsp, from 'rtsp://test.mysite.com/in/1':
Metadata:
title : No Name
Duration: N/A, start: -0.159002, bitrate: N/A
Stream #0:0, 28, 1/90000: Video: h264 (Constrained Baseline), 1
reference frame, yuv420p(progressive, left), 640x360 (640x368) [SAR 1:1
DAR 16:9], 0/1, 25 fps, 25 tbr, 90k tbn
, 50 tbc
Stream #0:1, 49, 1/44100: Audio: aac (LC), 44100 Hz, stereo, fltp
Successfully opened the file.
Parsing a group of options: output url /dev/null.
Applying option acodec (force audio codec ('copy' to copy stream)) with
argument copy.
Applying option vcodec (force video codec ('copy' to copy stream)) with
argument copy.
Applying option f (force format) with argument null.
Successfully parsed a group of options.
Opening an output file: /dev/null.
Successfully opened the file.
Output #0, null, to '/dev/null':
Metadata:
title : No Name
encoder : Lavf57.71.100
Stream #0:0, 0, 1/90000: Video: h264 (Constrained Baseline), 1
reference frame, yuv420p(progressive, left), 640x360 (0x0) [SAR 1:1 DAR
16:9], 0/1, q=2-31, 25 fps, 25 tbr, 90k
tbn, 90k tbc
Stream #0:1, 0, 1/44100: Audio: aac (LC), 44100 Hz, stereo, fltp
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
Last message repeated 2 times
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 5690
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 9290
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 12890
cur_dts is invalid (this is harmless if it occurs once at the start per
stream)
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 16490
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 20090
[null @ 0x807e7d800] Application provided invalid, non monotonically
increasing dts to muxer in stream 0: 23690 >= 23690
frame= 40 fps=0.0 q=-1.0 size=N/A time=00:00:01.58 bitrate=N/A
speed=3.17x ^Mframe= 54 fps= 54 q=-1.0 size=N/A time=00:00:02.14
bitrate=N/A speed=2.14x ^Mframe= 66 fps
= 44 q=-1.0 size=N/A time=00:00:02.62 bitrate=N/A speed=1.73x ^Mframe=
79 fps= 39 q=-1.0 size=N/A time=00:00:03.14 bitrate=N/A speed=1.54x
^Mframe= 92 fps= 36 q=-1.0 siz
e=N/A time=00:00:03.66 bitrate=N/A speed=1.43x ^Mframe= 106 fps= 34
q=-1.0 size=N/A time=00:00:04.22 bitrate=N/A speed=1.37x ^Mframe= 118
fps= 33 q=-1.0 size=N/A time=00:0
0:04.70 bitrate=N/A speed=1.31x ^Mframe= 130 fps= 32 q=-1.0 size=N/A
time=00:00:05.20 bitrate=N/A speed=1.27x ^Mframe= 143 fps= 31 q=-1.0
size=N/A time=00:00:05.70 bitrate
=N/A speed=1.24x ^MNo more output streams to write to, finishing.
frame= 149 fps= 31 q=-1.0 Lsize=N/A time=00:00:05.94 bitrate=N/A
speed=1.24x
video:448kB audio:88kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
Input file #0 (rtsp://test.mysite.com/in/1):
Input stream #0:0 (video): 149 packets read (458851 bytes);
Input stream #0:1 (audio): 253 packets read (90186 bytes);
Total: 402 packets (549037 bytes) demuxed
Output file #0 (/dev/null):
Output stream #0:0 (video): 149 packets muxed (458851 bytes);
Output stream #0:1 (audio): 253 packets muxed (90186 bytes);
Total: 402 packets (549037 bytes) muxed
0 frames successfully decoded, 0 decoding errors
}}}
I think it is the same problem as https://trac.ffmpeg.org/ticket/5018
--
Ticket URL: <https://trac.ffmpeg.org/ticket/6415>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list