Ich konvertiere Videos mit FFMPEG. Mein Ziel ist es, sie mit AAC- codiertem Audiostream und MPEG-4 Part 10 -codiertem Videostream in das MP4-Containerformat ( MPEG-4 Part 14 ) zu konvertieren .
Ich benutze die folgende Zeile, um die Videos zu konvertieren:
ffmpeg -y -i "{inputFile}" "{outputFile}"
Das konvertierte Video sieht gut aus, jedoch stimmt die Dauer der Streams in der konvertierten Datei und der Eingabedatei nicht immer überein.
Ich habe einige Experimente gemacht und der Unterschied in der Dauer ist zweifellos da, aber es ist nicht so viel - trotzdem teste ich mit kleinen Videos. Hier sind meine Ergebnisse:
| InputFile | InputAudio | InputVideo | OutputAudio | OutputVideo |
|------------|------------|------------|-------------|--------------|
| h.avi | 3s 631ms | 3s 567ms | 3s 668ms | 3s 567ms |
| h.flv | 3s 631ms | 3s 558ms | 3s 668ms | 3s 567ms |
| h.mov | 3s 532ms | 3s 533ms | 3s 682ms | 3s 534ms |
| h.mp4 | 3s 605ms | 3s 534ms | 3s 682ms | 3s 567ms |
| h.mpg | 3s 605ms | 3s 533ms | 3s 563ms | 3s 534ms |
| h.wmv | 3s 620ms | 3s 633ms | 3s 659ms | 3s 567ms |
Da ich eine Software auf FFMPEG aufbauen würde, wäre ich glücklicher, wenn ich zumindest den Grund für diesen Unterschied verstehen könnte. Liegt es an einer unnötigen Transcodierung?
Kann ich in diesem Fall diese Transcodierung deaktivieren, um zu verhindern, dass FFMPEG meine Eingabevideodatei erneut abtastet?
Wenn ich es nicht ausschalten kann, wie kann ich (neben dem Testen) sicher sein, dass dieser Unterschied nicht proportional zur Größe des Videos ist?
Wenn ich zum Beispiel ein 10-Stunden-Video konvertiere, ist eine Differenz von mehreren Sekunden oder sogar Minuten für mich nicht geeignet.