"ffmpeg -ss" unterstützte Formate für genaues Suchen? mp3 scheint nicht zu funktionieren, nur .wav

"ffmpeg -ss" unterstützte Formate für genaues Suchen? mp3 scheint nicht zu funktionieren, nur .wav

ffmpeg -ss 00:00:00 -i 'input.mp3' -to 00:25:00 -c kopiere output.mp3

Mir ist beim Skripten aufgefallen, dass dieses spezielle Skript für MP3-Dateien funktioniert, aber nicht für WAV-Dateien. Es kopiert (seltsamerweise) in eine 25-minütige MP3-Datei, schneidet den Ton am Ende jedoch automatisch ab. Aus irgendeinem Grund scheint der eigentliche Ton über die 25-Minuten-Grenze hinaus gestreckt zu werden, sodass es zum Abschneiden kommt. Bei WAV-Dateien passiert das jedoch nicht. Beim Durchsuchen der Manpages bin ich auf Folgendes gestoßen:

-ss Position (Eingabe/Ausgabe) Wenn es als Eingabeoption (vor -i) verwendet wird, wird in dieser Eingabedatei nach der Position gesucht.Beachten Sie, dass in den meisten Formaten keine exakte Suche möglich ist. Daher sucht ffmpeg zum nächstgelegenen Suchpunkt vor der Position.Wenn die Transkodierung und -accurate_seek aktiviert sind (Standard), wird dieses zusätzliche Segment zwischen Suchpunkt und Position dekodiert und verworfen. Beim Kopieren des Streams oder wenn -noaccurate_seek verwendet wird, bleibt es erhalten.

Meine Frage ist, dass erstens .mp3 kein unterstütztes Format zu sein scheint, das genau sucht, aber dass .wav-Dateien angesichts dessen, was passiert ist, unterstützt werden. Ist das der Grund, warum der Ton abgeschnitten wurde? Zweitens, gibt es eine Dokumentation zu unterstützten Formaten, die 100 % genaue -ss-Zeiten haben? Ich kann das in keiner der Manpages finden. Vielleicht gibt es eine Dokumentation, aber wenn ja, vermute ich, dass sie in diesem Abschnitt aufgeführt sein sollte. Dies ist eine schlechte Dokumentation zu ffmpeg und sollte aktualisiert werden! Vage Informationen, die nicht hilfreich sind.

Antwort1

Die einzigen Formate, die perfekt durchsuchbar sind, sind nicht komprimierte Formate, also WAV und PCM. Alle komprimierten Formate werden in „Frames“ kodiert (da die Komprimierung so funktioniert). Mit Codec Copy können Sie nur ganze Frames kopieren. Jeder Codec verwendet eine andere Anzahl von Samples pro Frame.

verwandte Informationen