¿Puede ffmpeg convertir audio de PCM en bruto a WAV?
(4)
Debajo del código debería estar el trabajo:
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
Puedo convertir archivos wav a pcm
ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
¿Cómo puedo revertir esta operación?
El contenedor wav solo agrega un encabezado simple a los datos de PCM en bruto. El encabezado incluye el formato, la frecuencia de muestreo y la cantidad de canales. Como los datos de PCM en bruto no incluyen esta información, deberá especificarla en la línea de comando. Las opciones se especifican antes del archivo al que se aplican, de modo que las opciones antes del archivo de entrada se pueden usar para especificar el formato del archivo de entrada y las opciones después del archivo de entrada y antes de que el archivo de salida se pueda usar para especificar el formato deseado de la salida archivo. Si desea los mismos bits / muestra, frecuencia de muestreo y número de canales en el archivo de salida, entonces no necesita ninguna opción de salida en este caso; el formato del contenedor wav ya está indicado por la extensión del archivo.
Ejemplo para convertir PCM en bruto a WAV:
ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav
-
-f s16le
... firman muestras little endian de 16 bits -
-ar 44.1k
... frecuencia de muestreo 44.1kHz -
-ac 2
... 2 canales (estéreo) -
-i file.pcm
... archivo de entrada -
file.wav
... archivo de salida
Tenga cuidado con el formato de datos RAW
-f u8 no tiene firma de 8 bits, s16 está firmado por si acaso hay otros
$ ffmpeg -formats | grep PCM
DE alaw PCM A-law
DE f32be PCM 32-bit floating-point big-endian
DE f32le PCM 32-bit floating-point little-endian
DE f64be PCM 64-bit floating-point big-endian
DE f64le PCM 64-bit floating-point little-endian
DE mulaw PCM mu-law
DE s16be PCM signed 16-bit big-endian
DE s16le PCM signed 16-bit little-endian
DE s24be PCM signed 24-bit big-endian
DE s24le PCM signed 24-bit little-endian
DE s32be PCM signed 32-bit big-endian
DE s32le PCM signed 32-bit little-endian
DE s8 PCM signed 8-bit
DE u16be PCM unsigned 16-bit big-endian
DE u16le PCM unsigned 16-bit little-endian
DE u24be PCM unsigned 24-bit big-endian
DE u24le PCM unsigned 24-bit little-endian
DE u32be PCM unsigned 32-bit big-endian
DE u32le PCM unsigned 32-bit little-endian
DE u8 PCM unsigned 8-bit
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav