将使用 opus_demo 解码的 PCM 文件转换为 WAV
Convert PCM file decoded with opus_demo to WAV
我用 ./opus_demo -e voip 48000 1 8000 -cbr -bandwidth NB -complexity 0 -forcemono speech_orig.wav speech_encoded.bit
从他们的 git repo, ran ./autogen.sh
, ./configure
, make
, and then encoded a sample file from the opus examples page 下载了 Opus 编解码器。
然后我尝试用 ./opus_demo -d 48000 1 speech_encoded.bit speech_48khz.wav
解码它。当我尝试用 VLC 播放它时,它没有播放它(显示播放时间不到一秒,没有 sound/feedback)。
我在虚拟机 (VirtualBox) 上 运行 Ubuntu 14.04 32 位。我发现唯一 link 甚至与我的问题有远程关系的是 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
在此先感谢您的帮助!
解决了!发布我为未来的读者所做的事情,以防有人遇到同样的问题。
问题是我传递给编码器 (opus_demo -e
) 的文件是 .wav 文件。编码器严格要求.pcm文件,解码器严格输出.pcm文件。为了将 .wav 文件转换为 .pcm 文件,我为 windows 下载了 ffmpeg,并且 运行 以下命令:
要将 .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
我用 ./opus_demo -e voip 48000 1 8000 -cbr -bandwidth NB -complexity 0 -forcemono speech_orig.wav speech_encoded.bit
从他们的 git repo, ran ./autogen.sh
, ./configure
, make
, and then encoded a sample file from the opus examples page 下载了 Opus 编解码器。
然后我尝试用 ./opus_demo -d 48000 1 speech_encoded.bit speech_48khz.wav
解码它。当我尝试用 VLC 播放它时,它没有播放它(显示播放时间不到一秒,没有 sound/feedback)。
我在虚拟机 (VirtualBox) 上 运行 Ubuntu 14.04 32 位。我发现唯一 link 甚至与我的问题有远程关系的是 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
在此先感谢您的帮助!
解决了!发布我为未来的读者所做的事情,以防有人遇到同样的问题。
问题是我传递给编码器 (opus_demo -e
) 的文件是 .wav 文件。编码器严格要求.pcm文件,解码器严格输出.pcm文件。为了将 .wav 文件转换为 .pcm 文件,我为 windows 下载了 ffmpeg,并且 运行 以下命令:
要将 .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