Opened 7 years ago
Last modified 7 years ago
#5702 new defect
RTP: missed while "second pass: moving the moov atom to the beginning of the file" in segmenter
Reported by: | starscaper | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | git-master | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
How to reproduce:
% ffmpeg 'rtsp://xxx:xxx@192.168.0.3:554/cam/realmonitor?channel=1&subtype=1' -codec copy -f segment -segment_time 300 -reset_timestamps 1 -segment_format_options movflags=faststart 'segment_-%04d.mp4' ffmpeg version 3.0.git Copyright (c) 2000-2016 the FFmpeg developers built with gcc 4.8.5 (FreeBSD Ports Collection)
[mp4 @ 0x804025c00] Starting second pass: moving the moov atom to the beginning of the file
[file @ 0x804034480] Setting default whitelist 'file,crypto'
[AVIOContext @ 0x80403c300] Statistics: 57420982 bytes read, 0 seeks
[segment @ 0x804025000] segment:'segment_-0000.mp4' count:0 ended
[AVIOContext @ 0x80403c200] Statistics: 36 seeks, 6724 writeouts
[file @ 0x804034400] Setting default whitelist 'file,crypto'
[segment @ 0x804025000] segment:'segment_-0001.mp4' starts with packet stream:0 pts:4608000 pts_time:300 frame:4489
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4608000 pts_time:300 dts:4608000 dts_time:300 -> pts:0 pts_time:0 dts:0 dts_time:0
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4609075 pts_time:300.07 dts:4609075 dts_time:300.07 -> pts:1075 pts_time:0.069987 dts:1075 dts_time:0.069987
frame= 4491 fps= 15 q=-1.0 size=N/A time=00:04:59.66 bitrate=N/A speed=0.998x
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4609997 pts_time:300.13 dts:4609997 dts_time:300.13 -> pts:1997 pts_time:0.130013 dts:1997 dts_time:0.130013
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4611072 pts_time:300.2 dts:4611072 dts_time:300.2 -> pts:3072 pts_time:0.2 dts:3072 dts_time:0.2
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4612147 pts_time:300.27 dts:4612147 dts_time:300.27 -> pts:4147 pts_time:0.269987 dts:4147 dts_time:0.269987
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4613069 pts_time:300.33 dts:4613069 dts_time:300.33 -> pts:5069 pts_time:0.330013 dts:5069 dts_time:0.330013
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4614144 pts_time:300.4 dts:4614144 dts_time:300.4 -> pts:6144 pts_time:0.4 dts:6144 dts_time:0.4
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4615219 pts_time:300.47 dts:4615219 dts_time:300.47 -> pts:7219 pts_time:0.469987 dts:7219 dts_time:0.469987
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4616141 pts_time:300.53 dts:4616141 dts_time:300.53 -> pts:8141 pts_time:0.530013 dts:8141 dts_time:0.530013
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4617216 pts_time:300.6 dts:4617216 dts_time:300.6 -> pts:9216 pts_time:0.6 dts:9216 dts_time:0.6
[rtsp @ 0x804024400] max delay reached. need to consume packet
[rtsp @ 0x804024400] RTP: missed 14 packets
[rtsp @ 0x804024400] max delay reached. need to consume packet
[rtsp @ 0x804024400] RTP: missed 31 packets
[rtsp @ 0x804024400] max delay reached. need to consume packet
[rtsp @ 0x804024400] RTP: missed 7 packets
[rtsp @ 0x804024400] max delay reached. need to consume packet
[rtsp @ 0x804024400] RTP: missed 105 packets
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4618291 pts_time:300.67 dts:4618291 dts_time:300.67 -> pts:10291 pts_time:0.669987 dts:10291 dts_time:0.669987
[segment @ 0x804025000] stream:0 start_pts_time:300 pts:4639795 pts_time:302.07 dts:4639795 dts_time:302.07 -> pts:31795 pts_time:2.06999 dts:31795 dts_time:2.06999
Attachments (1)
Change History (4)
by , 7 years ago
Attachment: | ffmpeg-20160711-103554.log added |
---|
comment:1 by , 7 years ago
Component: | avformat → undetermined |
---|
comment:2 by , 7 years ago
Moving the moov atom to the front is a quite slow post processing operation.
And as ffmpeg is single threaded, it seems to take long enough for the rtsp input buffer to overflow.
Increasing the max_delay might already be enough.
comment:3 by , 7 years ago
I use latest source from github.
what's wrong with the output file(s).
Missing couple of seconds at the begining of 2-nd and following segments (up to 15 seconds with big segment_time (30 minutes ~ 300MB)) from rtsp
Increasing max_delay to 15 seconds solved the issue in most cases (depends on how busy server is)
I wonder if it's a good idea to increase max_delay to 15-20 seconds...
P.S. Probably I'll replace movflags=faststart whith something like moov_size=5120000
Is the issue only reproducible with rtsp input or also with file or
testsrc
input?Please test current FFmpeg git head and please explain what's wrong with the output file(s).