Wav audio file compression not working

2020-03-24 06:43发布

Is it possible to compress a wav audio file without reducing the sampling rate?

I have an audio file with 256 bit rate and sampling rate - 8000Hz. I would just like to reduce the bit rate to 128/64 kbs

I tried converting to mp3 and back to wav, ffmpeg -i input.wav 1.mp3 ffmpeg -i "1.mp3" -acodec pcm_s16le -ar 4000 out.wav but this reduced sampling rate as well. ffmpeg -i "1.mp3" -acodec pcm_s16le -ab 128 out.wav has default 256 bit rate

2条回答
Animai°情兽
2楼-- · 2020-03-24 07:00

PCM ("WAV") is uncompressed, so -b:a/-ab is ignored.


Calculating PCM bitrate

Assuming a stereo input, 8000 samples per second, 16 bits per sample:

sample rate × number of channels × bits per sample = bitrate
8000 × 2 × 16 = 256000 bits/s, or 256 kb/s

Determine channels, sample rate, bit depth

You can just view the output of ffmpeg -i input.wav or use ffprobe for a more concise output:

$ ffprobe -loglevel error -select_streams a -show_entries stream=sample_rate,channels,bits_per_sample -of default=nw=1 input.wav 
sample_rate=8000
channels=2
bits_per_sample=16

Reducing bitrate

You can reduce the number of channels, change the sample rate, and/or change the bit depth, but another option is to use a lossless compressed format such as FLAC:

$ ffmpeg -i audio.wav audio.flac
$ ls -alh audio.wav audio.flac
  6.1M audio.flac
   11M audio.wac
查看更多
疯言疯语
3楼-- · 2020-03-24 07:07

I usually do this using Audacity

1) import the wav file to audacity

2) Then File>Export

3) Choose "Constant" and then from the Quality drop-down select your required bit-rate


I haven't tried that with ffmpeg, but the command should be:

ffmpeg -i input.wav -ab 64000 output.wav
查看更多
登录 后发表回答