在将RTP流复制到文件

时间:2017-09-01 16:24:40

标签: c# ffmpeg vlc rtp

我有和RTP视频广播流(使用NOVUS - H.264 / MPEG-4 HD / SD广播编码器)。我有一个Windows Server 2012(Intel Xeon E5-2690,128Gb RAM),其服务正在将此流记录到文件中(使用最新的FFmpeg,将其称为外部进程)。每隔2-5分钟录制停止并再次开始新文件。

视频中有时存在显着(而非)滞后。这些滞后最多位于起始文件中,有时位于中心/末尾。关于日志,有丢包。

可能是网络问题,但是:

我从控制台手动运行另一个ffmpeg实例并开始按时间分段记录相同的广播流。在这种情况下,录音非常好(错过数据包1..5非常非常少),没有滞后。在第一时间,当第一个ffmpeg记录第二个ffmpeg时没有问题。

这种行为可能是什么原因?两个ffmpeg实例并行运行并读取相同的udp输入,但是当第二个感觉良好时,第一个错过数据包。没有内存问题,没有硬盘问题,没有CPU过载。我也试图设置第一个ffmpeg进程的最高优先级,但它没有帮助。我看到的唯一区别是第一个ffmpeg是从服务运行的,第二个是从本地管理员运行的。说实话,我之前使用vlc作为录音机,但它也遇到了同样的问题......而且我可以肯定地说视频流是可以的,因为它在另一台PC上24小时不间断地在VLC播放器中播放...

这就是我从windows服务(C#)运行ffmpeg的方法:

_process = new Process();
var startInfo = new ProcessStartInfo(@"ffmpeg\ffmpeg.exe");
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.Arguments = "-loglevel debug -y -ss 1 -i \"" + _url + "\" -vcodec copy -y -an \"" + _outputFileName + "\"";
startInfo.CreateNoWindow = true;

从Windows服务自动录制视频的命令:

ffmpeg.exe -loglevel debug -y -ss 1 -i "rtp://225.1.1.1:1024" -vcodec copy -y -an "Session-021221.ts"

手动录制视频的命令。

D:\ffmpeg\ffmpeg -i "rtp://225.1.1.1:1024" -vcodec copy -an -f segment -strftime 1 -segment_time 300 "novus-%Y-%m-%d_%H-%M-%S.ts"

这是其中一个损坏记录的日志的一部分(附加了一些其他完整日志):

...
2017.09.01 18R:22:56.171  frame=  172 fps= 45 q=-1.0 size=    2816kB time=00:00:03.45 bitrate=6674.9kbits/s speed=0.909x    
2017.09.01 18R:22:56.174  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:22:56.686      Last message repeated 26 times
2017.09.01 18R:22:56.687  frame=  199 fps= 46 q=-1.0 size=    3072kB time=00:00:03.99 bitrate=6297.7kbits/s speed=0.926x    
2017.09.01 18R:23:04.554  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:04.571      Last message repeated 26 times
2017.09.01 18R:23:04.571  frame=  226 fps= 47 q=-1.0 size=    3584kB time=00:00:04.53 bitrate=6472.7kbits/s speed=0.939x    
2017.09.01 18R:23:04.571  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:04.572      Last message repeated 26 times
2017.09.01 18R:23:04.572  frame=  253 fps= 47 q=-1.0 size=    4096kB time=00:00:05.07 bitrate=6610.4kbits/s speed=0.948x    
2017.09.01 18R:23:04.572  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:04.572  frame=  254 fps= 21 q=-1.0 size=    4096kB time=00:00:05.09 bitrate=6584.5kbits/s speed=0.418x    
2017.09.01 18R:23:04.572  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:04.655      Last message repeated 5 times
2017.09.01 18R:23:04.684  [rtp @ 0000000000a3a9a0] max delay reached. need to consume packet
2017.09.01 18R:23:04.684  [rtp @ 0000000000a3a9a0] RTP: missed 4147 packets
2017.09.01 18R:23:04.685  [rtp @ 0000000000a3a9a0] RTP: PT=21: bad cseq a237 expected=9204
2017.09.01 18R:23:04.685  [rtp @ 0000000000a3a9a0] max delay reached. need to consume packet
2017.09.01 18R:23:04.685  [rtp @ 0000000000a3a9a0] RTP: missed 4148 packets
2017.09.01 18R:23:04.685  [rtp @ 0000000000a3a9a0] Continuity check failed for pid 256 expected 8 got 15
2017.09.01 18R:23:04.686  [rtp @ 0000000000a3a9a0] Continuity check failed for pid 272 expected 10 got 15
2017.09.01 18R:23:04.686  [rtp @ 0000000000a3a9a0] Continuity check failed for pid 32 expected 13 got 4
2017.09.01 18R:23:04.686  [rtp @ 0000000000a3a9a0] Continuity check failed for pid 0 expected 14 got 6
2017.09.01 18R:23:04.767  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:05.255      Last message repeated 25 times
2017.09.01 18R:23:05.256  frame=  286 fps= 22 q=-1.0 size=    4608kB time=00:00:12.51 bitrate=3016.0kbits/s speed=0.971x    
2017.09.01 18R:23:05.257  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:05.77      Last message repeated 26 times
2017.09.01 18R:23:05.77  frame=  313 fps= 23 q=-1.0 size=    5120kB time=00:00:13.05 bitrate=3212.5kbits/s speed=0.974x    
2017.09.01 18R:23:05.773  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:06.287      Last message repeated 26 times
2017.09.01 18R:23:06.288  frame=  340 fps= 24 q=-1.0 size=    5376kB time=00:00:13.59 bitrate=3239.2kbits/s speed=0.977x    
2017.09.01 18R:23:06.29  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:06.803      Last message repeated 26 times
2017.09.01 18R:23:06.804  frame=  367 fps= 25 q=-1.0 size=    5888kB time=00:00:14.13 bitrate=3412.2kbits/s speed=0.979x    
2017.09.01 18R:23:06.808  [NULL @ 0000000000a89ee0] ct_type:0 pic_struct:0
2017.09.01 18R:23:07.324      Last message repeated 26 times
2017.09.01 18R:23:07.324  frame=  394 fps= 26 q=-1.0 size=    6144kB time=00:00:14.67 bitrate=3429.5kbits/s speed=0.981x   
... 

一些完整日志:

Full log #1

Full log #2

0 个答案:

没有答案