RTSP FFMPEG пропускает кадры при записи в файл m3u8/ts

#ffmpeg #http-live-streaming #rtsp

Вопрос:

Результат всегда один и тот же или похожий, он начинает визуализацию с помощью этой команды

 ffmpeg -strict 1 -rtsp_transport "tcp" -i rtsp://123456:2525 -y -profile baseline -movflags  faststart -hls_time 5 -hls_allow_cache 0 -hls_flags delete_segments -start_number 1 -an "/stream/some_m3_file.m3u8" >amp; m3LogFile.txt amp;
 

И обычно это одно и то же, первое видео безупречно и великолепно, второе приходит с некоторыми всплесками, а затем в конечном итоге всплесками до 2 секунд пропусков кадров, заяц-это только gif того времени, так что ясно, как он себя ведет

https://i.gyazo.com/8a04934bc73fa216846eb57696b8329a.mp4

Заяц-это часть вывода журнала (процесс выглядит нормально):

   Metadata:
title           : Nvt RTSP, streamed by the LIVE555 Media Server
comment         : 00000002
encoder         : Lavf58.29.100
Stream #0:0: Video: h264 (libx264), yuvj420p(pc), 848x480, q=-1--1, 30 fps, 90k tbn, 30 tbc
Metadata:
  encoder         : Lavc58.54.100 libx264
Side data:
  cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=   33 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A dup=22 drop=12 speed=   0x    
frame=   49 fps= 44 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A dup=25 drop=12 speed=   0x    
frame=   56 fps= 34 q=29.0 size=N/A time=00:00:00.10 bitrate=N/A dup=26 drop=12 speed=0.0606x    
frame=   69 fps= 29 q=29.0 size=N/A time=00:00:00.53 bitrate=N/A dup=28 drop=12 speed=0.223x    
frame=   86 fps= 26 q=29.0 size=N/A time=00:00:01.10 bitrate=N/A dup=31 drop=12 speed=0.336x    
frame=  103 fps= 25 q=29.0 size=N/A time=00:00:01.66 bitrate=N/A dup=32 drop=12 speed=0.401x    
frame=  120 fps= 26 q=29.0 size=N/A time=00:00:02.23 bitrate=N/A dup=35 drop=12 speed=0.479x    
frame=  123 fps= 24 q=29.0 size=N/A time=00:00:02.33 bitrate=N/A dup=35 drop=12 speed=0.451x    
frame=  139 fps= 23 q=29.0 size=N/A time=00:00:02.86 bitrate=N/A dup=38 drop=12 speed=0.483x    
frame=  155 fps= 24 q=29.0 size=N/A time=00:00:03.40 bitrate=N/A dup=41 drop=12 speed=0.527x    
frame=  162 fps= 23 q=29.0 size=N/A time=00:00:03.63 bitrate=N/A dup=42 drop=12 speed=0.52x    
frame=  175 fps= 23 q=29.0 size=N/A time=00:00:04.06 bitrate=N/A dup=44 drop=12 speed=0.53x    
frame=  191 fps= 23 q=29.0 size=N/A time=00:00:04.60 bitrate=N/A dup=47 drop=12 speed=0.561x    
frame=  197 fps= 23 q=29.0 size=N/A time=00:00:04.80 bitrate=N/A dup=48 drop=12 speed=0.55x    
frame=  211 fps= 22 q=29.0 size=N/A time=00:00:05.26 bitrate=N/A dup=50 drop=12 speed=0.557x    
frame=  227 fps= 23 q=29.0 size=N/A time=00:00:05.80 bitrate=N/A dup=53 drop=12 speed=0.582x    
frame=  234 fps= 22 q=29.0 size=N/A time=00:00:06.03 bitrate=N/A dup=54 drop=12 speed=0.574x    
frame=  247 fps= 22 q=29.0 size=N/A time=00:00:06.46 bitrate=N/A dup=56 drop=12 speed=0.578x    
frame=  262 fps= 22 q=29.0 size=N/A time=00:00:06.96 bitrate=N/A dup=59 drop=12 speed=0.594x    
frame=  266 fps= 22 q=29.0 size=N/A time=00:00:07.10 bitrate=N/A dup=59 drop=12 speed=0.581x    
frame=  282 fps= 22 q=29.0 size=N/A time=00:00:07.63 bitrate=N/A dup=62 drop=12 speed=0.597x    
frame=  292 fps= 22 q=29.0 size=N/A time=00:00:07.96 bitrate=N/A dup=64 drop=12 speed=0.598x    
frame=  300 fps= 22 q=29.0 size=N/A time=00:00:08.23 bitrate=N/A dup=65 drop=12 speed=0.593x    
[hls @ 0x55e1d3062a40] Opening '/stream/some_m3_file.m3u8.tmp' for writing
[hls @ 0x55e1d3062a40] Opening '/stream/some_m3_file2.ts' for writing
 

И так далее.. Весь журнал выглядит нормально, похоже, ошибок нет, однако в конце я получаю:

 [h264 @ 0x55e1d31473c0] error while decoding MB 10 17, bytestream -8
[h264 @ 0x55e1d31473c0] concealing 728 DC, 728 AC, 728 MV errors in I frame
[hls @ 0x55e1d3062a40] Opening '/stream/some_m3_file.m3u8.tmp' for writing
frame= 5175 fps= 28 q=-1.0 Lsize=N/A time=00:02:52.50 bitrate=N/A dup=2339 drop=12 speed=0.95x    
video:7533kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[libx264 @ 0x55e1d3029c00] frame I:21    Avg QP:16.43  size: 29243
[libx264 @ 0x55e1d3029c00] frame P:5154  Avg QP:19.38  size:  1377
[libx264 @ 0x55e1d3029c00] mb I  I16..4: 36.3%  0.0% 63.7%
[libx264 @ 0x55e1d3029c00] mb P  I16..4:  2.7%  0.0%  0.6%  P16..4:  8.6%  1.7%  0.4%  0.0%  0.0%    skip:86.0%
[libx264 @ 0x55e1d3029c00] coded y,uvDC,uvAC intra: 33.4% 38.4% 7.4% inter: 2.0% 6.2% 0.3%
[libx264 @ 0x55e1d3029c00] i16 v,h,dc,p: 20% 15% 15% 50%
[libx264 @ 0x55e1d3029c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 18% 27%  3%  6%  5%  5%  3%  3%
[libx264 @ 0x55e1d3029c00] i8c dc,h,v,p: 57% 16% 23%  3%
[libx264 @ 0x55e1d3029c00] ref P L0: 82.7%  9.6%  7.7%
[libx264 @ 0x55e1d3029c00] kb/s:357.73
 

Я перепробовал множество вариантов команд, случайно потерял их историю, однако это последняя созданная мной командная строка, которая работала, но не вела себя по-другому.

 ffmpeg -max_delay 1 -strict 1 -initial_pause 0 -rtsp_transport "tcp" -analyzeduration 20M -probesize 20M -i rtsp://123456:2525 -y -s 854x480 -crf 0 -b:v 25K -movflags  faststart -hls_time 5 -hls_allow_cache 0 -hls_flags delete_segments -start_number 1 -an "/stream/some_m3_file.m3u8" >amp; m3LogFile.txt amp;
 

Не уверен, что на самом деле здесь происходит, мое собственное предположение заключается в том, что поток данных из RTSP слишком медленный, а ffmpeg быстро перенаправляет время, потому что он пытается догнать текущее время, но опять же, я бы предпочел сделать так, чтобы он отставал, но полностью отображал не пропускаемые кадры, однако я не нашел способа его реализовать.