Beim separaten Extrahieren von Audio und Video aus einer mp4-Datei und erneutem Kombinieren
ffmpeg -accurate_seek -ss 30 -t 10 -i input.mp4 -vn output-audio.mp4
ffmpeg -accurate_seek -ss 30 -t 10 -i input.mp4 -an output-video.mp4
ffmpeg -i output-audio.mp4 -i output-video.mp4 output-combine.mp4
die drei mp4-s haben laut ffprobe unterschiedliche längen:
ffprobe output-video.mp4
Duration: 00:00:10.00, start: 0.000000, ...
ffprobe output-audio.mp4
Duration: 00:00:10.03, start: 0.033333, ...
ffprobe output-combine.mp4
Duration: 00:00:10.08, start: 0.033333, ...
beim Kombinieren von Audio und Video mit-shortest
ffmpeg -i output-audio.mp4 -i output-video.mp4 test-combine.mp4
die Länge ist
ffprobe output-combine.mp4
Duration: 00:00:10.04, start: 0.033333, ...
Wie kann der Start-Offset (0.033333) vermieden werden, damit alle Teile die gleiche Länge haben und der ursprüngliche Teil durch die Kombination von Audio und Video wiederhergestellt werden kann?
Korrektur: statt
ffmpeg -i output-audio.mp4 -i output-video.mp4 test-combine.mp4
es sollte sein
ffmpeg -i output-audio.mp4 -i output-video.mp4 -shortest output-combine.mp4
Art der Antwort:
ffmpeg -i output-video.mp4 -itsoffset 0.033333 -t 9.966666 -i output-audio.mp4 output-combine.mp4
scheint die Aufgabe zu erfüllen, obwohl sich das Ergebnis in der Dateigröße geringfügig von einer direkten Extraktion (direkt ist größer als kombinieren) unterscheidet
ffmpeg -accurate_seek -ss 30 -t 10 -i input.mp4 output-direct.mp4
Gyan
ffmpeg -i input.mp4