1

我从他们的git repo下载了 Opus 编解码器,运行./autogen.sh, ./configure, make,然后使用../opus_demo -e voip 48000 1 8000 -cbr -bandwidth NB -complexity 0 -forcemono speech_orig.wav speech_encoded.bit

然后我尝试用./opus_demo -d 48000 1 speech_encoded.bit speech_48khz.wav. 当我尝试使用 VLC 播放它时,它不会播放(它显示为播放不到一秒钟而没有声音/反馈)。

我在虚拟机(VirtualBox)上运行 Ubuntu 14.04 32 位。我发现与我的问题甚至远程相关的唯一链接是this,它与opus_demo文件以外的其他内容有关。

这是 opus_demo shell 命令的输出:

$ ./opus_demo -e voip 48000 1 8000 -cbr -bandwidth NB -complexity 0 -forcemono speech_orig.wav speech_encoded.bit
libopus 1.1.1-beta-38-gfc0276f
Encoding 48000 Hz input at 8.000 kb/s in narrowband with 960-sample frames.
average bitrate:               8.000 kb/s
maximum bitrate:               8.000 kb/s
active bitrate:                8.000 kb/s
bitrate standard deviation:    0.000 kb/s
$ ./opus_demo -d 48000 1 speech_encoded.bit  speech_48khz.wav
libopus 1.1.1-beta-38-gfc0276f
Decoding with 48000 Hz output (1 channels)
average bitrate:               8.000 kb/s
maximum bitrate:               8.000 kb/s
bitrate standard deviation:    0.000 kb/s

提前感谢您的帮助!

4

1 回答 1

4

解决了!发布我为未来读者所做的事情,以防有人遇到同样的问题。

问题是我传递给编码器 ( opus_demo -e) 的文件是 .wav 文件。编码器严格要求.pcm文件,解码器严格输出.pcm文件。为了将 .wav 文件转换为 .pcm 文件,我下载了ffmpeg for windows,并运行以下命令:

要将 .wav 文件转换为 .pcm 文件:

ffmpeg -i input.wav -f s16le -acodec output.pcm

要将 .pcm 文件转换为 .wav 文件:

ffmpeg -f s16le -ar 48k -ac 1 -i input.pcm output.wav

于 2015-07-17T09:22:08.243 回答