我正在使用ffmpeg 2.2.2(Windows)将实时摄像头流导出为JPG帧。 我正在使用命令行:
ffmpeg -err_detect aggressive -i rtsp://[ip address]:554/11 -r 1 -s 640x320 -an -f image2 c:\temp\snapshots\snapshot-%03d.jpg
这会启动一个连续的过程,从实时流中导出大约每秒1帧。然而,在导出过程中的不同时间,ffmpeg会抛出如下错误:
[h264 @ 00037ae0] RTP: missed 2 packets=00:01:09.00 bitrate=N/A dup=0 drop=1186
[h264 @ 02fbc340] Cannot use next picture in error concealment
[h264 @ 02fbc340] concealing 4386 DC, 4386 AC, 4386 MV errors in P frame
[h264 @ 00037ae0] RTP: missed 13 packets
[h264 @ 02fbf7a0] left block unavailable for requested intra mode at 0 15p=1196
[h264 @ 02fbf7a0] error while decoding MB 0 15, bytestream 128288
[h264 @ 02fbf7a0] concealing 6409 DC, 6409 AC, 6409 MV errors in I frame
然而,它继续创建了一个损坏的jpg文件。例如,文件顶部是正常的,但是相同的像素向下涂抹整个图像。以下是一个例子: 我该如何强制FFmpeg执行以下操作之一:1)在保存后丢弃这些损坏的图像,或者2)在出现此类错误后根本不将图像写入文件?
我认为err_detect标志可能有所帮助,但似乎没有任何区别。