2017-08-31 8 views
1

Ich benutze ffmpeg 2.2.2 (Windows), um einen Live-Kamera-Stream in JPG-Frames zu exportieren. Ich benutze die Befehlszeile:ffmpeg jpg frame capture - Wie beschädigte Frames zu verwerfen

Dies startet einen kontinuierlichen Prozess, der etwa 1 Bild pro Sekunde aus dem Live-Stream exportiert. Jedoch zu verschiedenen Zeiten während der Export, ffmpeg wirft Fehler wie folgt aus:

[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 

Aber es geht eine jpg-Datei zu erstellen, die beschädigt ist. Zum Beispiel ist der obere Teil der Datei in Ordnung, aber dann schmieren die gleichen Pixel den Rest des Bildes. Hier ein Beispiel: enter image description here

Wie kann ich ffmpeg zwingen, entweder 1) verwerfen diese korrupte Bilder nach dem Speichern oder 2) einfach „nicht schreiben“, um das Bild in einer Datei nach einem Fehler wie dies der Fall ist?

Ich dachte, das Err_detect-Flag könnte helfen, aber es scheint keinen Unterschied zu machen.

Antwort

4

Sie können das discardcorrupt Flag am Eingang versuchen. Die vollständige Befehlszeile wäre:

ffmpeg -err_detect aggressive -fflags discardcorrupt -i rtsp://[ip address]:554/11 -r 1 -s 640x320 -an -f image2 c:\temp\snapshots\snapshot-%03d.jpg