audio ffmpeg wav pcm

¿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