0

この質問に書かれた回答によると、RTPペイロードをamrファイルに正常に書き込んだところ、正常に動作しました。

https://stackoverflow.com/questions/61961965/convert-rtp-payload-payload-type-107-amr-wb-16khz-1channel-to-wav 

ドキュメント RFC 4867 に従って、5.2 章に従ってマルチチャネル ファイルを書き込もうとしましたが、失敗しました。ファイルを受け入れるデコーダーはありません。私は 2 チャンネル (ステレオ) を持っています。

ファイル内の音声データの正確性は確認済みです。そして、それらは正しいようです。最初に、5.2 章に従ってヘッダーを配置します。

https://www.rfc-editor.org/rfc/rfc4867#section-5.2

確認したマジックナンバーは正しい。次に、chan-desc-field を追加します。これは、私が理解している範囲内である必要があります。

b'\x00\x00\x00\x02'

オーディオファイルでは、同じ値を読み取りました。これは正しいです?audiodata は 5.3 (第 1 段落) に従って保存されます。

1.pack_chan1 1.pack_chan2, 2.pack_chan1 2.pack_chan2, etc

ここで amr ファイル (または awb) をクリックすると、デコーダーはエラーが発生したことを通知します。それどころか、チャプター 5.1 および 5.3 に従ってファイルに 1 つのチャネルを書き込むだけでは、すべて正常に動作します。Windows VLC-MEDIA PLAYER と Linux Ubuntu のビデオで再生できます。

私の間違いはどこですか?

感謝と敬意

更新: RFC4867 の第 3.5 章の2 番目の段落には、通常、コーデックはマルチチャンネル オーディオ コンテンツの単一ビットストリームへのエンコードをサポートしていないため、個々のチャンネルを個別にエンコードおよびデコードするために使用できることが記載されています。

では、2 チャンネルでステレオ サウンドを生成するにはどうすればよいでしょうか。

4

0 に答える 0