Warum ändert ffmpeg die Bitrate von MP3, wenn es beschleunigt wird?

575
aleskva

Ich habe eine MP3-Datei mit diesen Anweisungen beschleunigt (1,2x), aber die tatsächliche Bitrate wurde von 192 kbps (19 kHz Cut-off) auf 128 kbps (16 kHz cut-off) geändert. Warum? Ist es richtig? Oder muss ich zu ffmpeg zusätzliche Parameter hinzufügen, um ein Audio zu beschleunigen, ohne die Qualität zu beeinträchtigen?

2

1 Antwort auf die Frage

4
Gyan

128 kbps ist wahrscheinlich die Standard-Bitrate. Benutzen

ffmpeg -i input.mp3 -af "atempo=1.2" -b:a 192k output.mp3 
Arbeitet. Die Bitrate ändert sich immer noch ein bisschen, aber dies kann durch die Verarbeitung geschehen. Ich muss jedoch die tatsächliche Bitrate eines Audios kennen, die insbesondere für große Musiksammlungen schwer zu finden ist. Gibt es eine Option, wie kann man die Grenze nicht ändern, zB wenn ich sie nicht kenne? aleskva vor 7 Jahren 1
Die Ausgabe wird CBR sein, aber nicht exakt dieselbe Rate. Die Bitrate bezieht sich streng genommen nicht auf den Cut-off. Der LAME-Encoder (von ffmpeg verwendet) implementiert einen Cutoff, der auf der gewählten Bitrate basiert. Um das Frequenzspektrum einer Audiodatei zu überprüfen, verwenden Sie "ffmpeg -i input.mp3 -lavfi showspectrumpic = s = 1024x1024 input-freq.png" und zeigen Sie die PNG-Datei an. Gyan vor 7 Jahren 0
(Verwenden Sie spek zu sehen oder fakeflac, um den Cut-off zu berechnen, aber es ist immer noch ein zusätzlicher Schritt und nicht wirklich schnell, wenn Sie mit großen Musiksammlungen arbeiten.) Die Bitrate hängt nicht unbedingt mit dem Cut-off zusammen, aber sie hängt leicht davon ab. Deshalb habe ich gefragt, ob diese Änderung schlecht oder korrekt ist (eine Beschleunigung könnte die Bitrate senken - ich weiß es nicht). aleskva vor 7 Jahren 0
Das Ändern des Audiotempos hat keinen Einfluss auf die Bitrate. Das wird separat eingestellt. Der Standardwert ist 128k, kann jedoch immer explizit festgelegt werden. Der Cutoff hat auch nichts mit der Bitrate zu tun. Dies ist eine Wahl des Encoders. Gyan vor 7 Jahren 0
Mir wurde gesagt, dass der Cut-off eine tatsächliche Bitrate anzeigt (anstelle der explizit gesetzten). Wenn eine Audiodatei z. B. 192 KBit / s hat, der Grenzwert jedoch bei 16 kHz liegt, ist die tatsächliche Bitrate niedriger (128 KBit / s). Siehe http://www.wikihow.com/Check-the-Real-Bitrate-of-Audio-files. Deshalb frage ich, denn wenn ffmpeg die mp3s-Bitrate (z. B. von 192 auf 128 kbps) senkt, schneidet es wahrscheinlich seine Grenze (von 19 kHz auf 16 kHz) ab. Und das ist nicht korrektes Verhalten richtig? aleskva vor 7 Jahren 0
Ja, vorausgesetzt, ein intelligenter MP3-Encoder hängt von der gewählten Bitrate ab. So wurde ein 192k-MP3 mit einer 16-kHz-Decke höchstwahrscheinlich von einem 128k-MP3-Format transcodiert. ABER ffmpeg entscheidet nicht oder ändert die Bitrate aufgrund von Geschwindigkeitsänderungen. Sie sind unabhängige Variablen. Die voreingestellte Bitrate von ffmpeg beträgt 128k. Das liegt nicht an der Geschwindigkeitsänderung. Gyan vor 7 Jahren 0
Ich sehe, ich hoffe immer noch, dass es eine einfachere Lösung gibt (z. B. eine andere Bibliothek als ffmpeg, die die Bitrate der Eingabedatei verwendet oder so), als sie durch das Spektrum von fakeflac / spek / ffmpeg zu überprüfen und von Hand anzugeben, aber ich muss mich bei Ihnen bedanken so sehr aleskva vor 7 Jahren 0
Wenn Sie "-q 2" anstelle von "-b: a" verwenden, können Sie den Encoder entscheiden lassen, welche Bitrate verwendet werden soll. Es analysiert die Eingabe und wendet den Cut-Off an. Gyan vor 7 Jahren 0
Funktioniert wie erwartet, aber ist dieser Parameter nicht für eine Konvertierung zwischen CBR und VBR vorgesehen? aleskva vor 7 Jahren 0
Ja, die Ausgabe ist VBR. Bei VBR geht es jedoch darum, Bits nach Bedarf zuzuordnen. Einfachere Audiodaten erhalten weniger Bits und komplexes Audio mehr. Gyan vor 7 Jahren 0
Ja, und ein anderer Ansatz ist, dass einige ältere Audio-Player mit CBR nicht richtig umgehen können. Vielen Dank aleskva vor 7 Jahren 0