Es ist mir oft passiert, dass ich in beschädigten Videodateien landen konnte:
- Video von offiziellen Quellen heruntergeladen, aber mit Torrent und aus irgendeinem Grund sind nicht alle Teile in .mkv, .ts oder .mp4 vorhanden
- Datensätze im .ts-Format, bei denen zu einem bestimmten Zeitpunkt die Daten fehlen
- kopierte Videos von einer alten Festplatte mit beschädigten Sektoren
Wenn ich diese Videos mit VLC oder anderen Playern abspiele, werden sie bis zu einem bestimmten Punkt abgespielt und dann sofort beendet. Manchmal kann ich versuchen, den schlechten Teil zu überspringen, aber ich könnte einen anderen schlechten Sektor treffen und mich wieder zurückziehen.
Die Frage ist:
Kann ich diese Probleme (ich nehme an, Stream und Keyframes hängen zusammen) mit ffmpeg und möglicherweise in einer -c-Kopie beheben, damit ich nicht alles neu komprimieren muss?
Was ich erreichen möchte, ist ein Video in voller Länge, bei dem die fehlenden Teile übersprungen werden. Ich bevorzuge einen Fehler, anstatt dass meine Videos abstürzen.
Antworten:
Wenn sich Teile der Datei auf physisch fehlerhaften Sektoren befinden oder aus irgendeinem Grund das Betriebssystem nicht die gesamte Datei an FFmpeg liefern kann, kann FFmpeg natürlich nichts dagegen tun. Sie sollten ein Dienstprogramm erhalten, das diese Teile ignorieren und die wiederherstellbaren Teile in eine neue Datei wie ddrescue schreiben kann .
Wenn das Dateiprotokoll keine Fehlerursache ist, können Sie es versuchen
quelle
-c copy
. Überraschend, dass es beim Recodieren nicht funktioniert.Invalid data found when processing input
- und ffmpeg gibt auf.Auf der Suche nach einer besseren Antwort könnte ein möglicher Weg sein:
Ich bin mir jedoch ziemlich sicher, dass es einige zusätzliche Optionen gibt, die das Ergebnis noch verbessern können.
quelle