1

Opus コーデックをgit repoからダウンロードし、を実行し./autogen.shopus の例のページからサンプル ファイルを でエンコードしました。./configuremake./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 で再生しようとしても、再生されません (再生時間が 1 秒未満で、音やフィードバックがないと表示されます)。

仮想マシン (VirtualBox) で Ubuntu 14.04 32 ビットを実行しています。私の問題にリモートでさえ関連していることがわかった唯一のリンクは、ファイル以外のものに関連するthisです。opus_demo

これは、opus_demo シェル コマンドからの出力です。

$ ./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 ファイルに変換するために、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

于 2015-07-17T09:22:08.243 に答える