Haftungsausschluss: Ich bin ein Anfänger in all dem, diese Frage könnte dumm sein
Ich versuche, die Bittiefe einer MP3-Datei von 32 auf 16 zu ändern und auch die Bitrate zu ändern
Dies ist mein Befehl:
ffmpeg -i input.mp3 -sample_fmt s16p -vsync 2 -b:a 256k output2.mp3
Die Bitrate ändert sich erfolgreich, die Bittiefe jedoch nicht.
Dies sind die Ergebnisse.
Eingabedatei:
ffprobe -i input.mp3
Duration: 00:04:40.08, start: 0.025056, bitrate: 323 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
Ausgabedatei:
ffprobe -i output.mp3
Duration: 00:04:40.08, start: 0.025056, bitrate: 283 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 256 kb/s
Oder anders ausgedrückt: Das ist es, was mir der Mediencodec von VLC bietet: AktuelleMedienInformationen
Wir können fltp sehen, was meiner Meinung nach nach einer Google-Suche 32 Bit bedeutet
Dies verwendet nuns16paber wenn ich es versucheStaffel 16Ich erhalte folgendes:
[libmp3lame @ 000001645fdcaec0] Specified sample format s16 is not supported by the libmp3lame encoder
[libmp3lame @ 000001645fdcaec0] Supported sample formats:
[libmp3lame @ 000001645fdcaec0] s32p
[libmp3lame @ 000001645fdcaec0] fltp
[libmp3lame @ 000001645fdcaec0] s16p
Interessant, denn wenn ich ffmpeg -sample_fmts
das hier eingebe, erhalte ich Folgendes:
name depth
u8 8
s16 16
s32 32
flt 32
dbl 64
u8p 8
s16p 16
s32p 32
fltp 32
dblp 64
s64 64
s64p 64
Das scheint zu bedeuten, dass S16 doch funktionieren sollte, oder? Übersehe ich hier etwas komplett? Was ist hier los?
Antwort1
Die komprimierten Daten in einer MP3-Datei sind codiert, sodass sie kein inhärentes Speicherformat oder keine Bittiefe aufweisen. Dies Supported sample formats
bezieht sich auf die Beispielformate, die der Encoder zur Verarbeitung akzeptiert.
Das für output.mp3 angezeigte Beispielformat ist das, was der Decoder ausgibt. Standardmäßig verwendet ffmpeg den mp3float-Decoder, der Gleitkomma-Samples mit einfacher Genauigkeit ausgibt. Um 16-Bit-Ganzzahlen zu erhalten, erzwingen Sie den mp3-Festkomma-Decoder.
ffmpeg -c:a mp3 -i output.mp3
(ffprobe unterstützt keine benutzerdefinierte Decoderspezifikation)