Descargo de responsabilidad: soy un principiante en todo esto, esta pregunta puede ser estúpida
Estoy intentando cambiar la profundidad de bits de un archivo mp3 de 32 a 16 y también cambiar la tasa de bits.
Este es mi comando:
ffmpeg -i input.mp3 -sample_fmt s16p -vsync 2 -b:a 256k output2.mp3
la tasa de bits cambia correctamente pero la profundidad de bits no.
Estos son los resultados.
Fichero de entrada:
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
Archivo de salida:
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
O de otra manera esto es lo que me da el codec multimedia de VLC: Información de medios actual
Podemos ver fltp que creo que después de una búsqueda en Google significa 32 bits.
Ahora esto está usandos16ppero si lo intentos16Obtengo lo siguiente:
[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
Interesante, porque si escribo ffmpeg -sample_fmts
me sale esto:
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
¿Lo que parece significar que s16 debería funcionar, no? ¿Me estoy perdiendo algo por completo aquí? ¿Qué está pasando?
Respuesta1
Los datos comprimidos en un archivo MP3 están codificados para que no tengan ningún formato de almacenamiento inherente ni profundidad de bits. Se Supported sample formats
refiere a los formatos de muestra que el codificador acepta para su procesamiento.
El formato de muestra que se muestra para salida.mp3 es lo que emite el decodificador. De forma predeterminada, ffmpeg utiliza el decodificador mp3float que genera muestras de punto flotante de precisión simple. Para obtener un entero de 16 bits, fuerce el decodificador de punto fijo de mp3,
ffmpeg -c:a mp3 -i output.mp3
(ffprobe no admite especificaciones de decodificador personalizadas)