it-swarm.dev

ffmpeg에서 원시 PCM의 오디오를 WAV로 변환 할 수 있습니까?

Wav 파일을 pcm으로 변환 할 수 있습니다

ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm

이 작업을 어떻게 되돌릴 수 있습니까?

32
xXx_CodeMonkey_xXx

WAV 컨테이너는 단순한 PCM 데이터에 간단한 헤더를 추가합니다. 헤더에는 형식, 샘플 속도 및 채널 수가 포함됩니다. 원시 PCM 데이터에는이 정보가 포함되어 있지 않으므로 명령 행에서 해당 정보를 지정해야합니다. 옵션은 파일이 적용되기 전에 지정되므로 입력 파일 앞의 옵션을 사용하여 입력 파일의 형식을 지정하고 입력 파일 뒤 및 출력 파일을 사용하여 원하는 출력 형식을 지정할 수 있습니다 파일. 출력 파일에서 동일한 비트/샘플, 샘플 속도 및 채널 수를 원하는 경우이 경우 출력 옵션이 필요하지 않습니다. wav 컨테이너 형식은 파일 확장자로 이미 표시되어 있습니다.

원시 PCM을 WAV로 변환하는 예 :

ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav
  • -f s16le… 16 비트 리틀 엔디 언 샘플에 서명
  • -ar 44.1k… 샘플링 레이트 44.1kHz
  • -ac 2… 2 채널 (스테레오)
  • -i file.pcm … 입력 파일
  • file.wav … 결과물 파일
57
mark4o
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
6
olegog

RAW 데이터 형식에주의하십시오

-f u8은 부호없는 8 비트, s16은 다른 부호가있는 경우를 대비하여 부호가 붙습니다.

 $ 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
5
barney

아래 코드는 작동해야합니다.

ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
0
Jerry Dai