2016-09-05 13 views
1

SIPp related questionを調べることによって、rtp_streamアクションを使用してWAVファイルを再生できるようになったことを知りました。SIPpで再生するWAVをエンコードする方法

私はいくつかの異なるWAVファイルを試してみましたが、成功しませんでした。私が得るのは、期待される音ではなく、騒音だけです。

上記の質問の1つのコメントには、WAVファイルを互換性のあるフォーマットに変換する簡単な指示がありますが、うまく機能しませんでした。

また、this fileを変換するためにsoxを使用しようとしましたが、成功しませんでした。

誰も私にSIPpで使用する有効なWAVファイルを生成する方法を教えてもらえますか?

これは遊びのオーディオアクションを含んでいる私のrecv 200 OKコマンドです:

<recv response="200" rtd="true"> 
    <action> 
    <exec rtp_stream="sorry_dave.wav,-1" /> 
    </action> 
</recv> 

答えて

1

私は別のWAVファイルのエンコーディングを探しているとWikipediaにそれらの多くを発見しました。

rtp_stream="8kulaw.wav,-1,0" execパラメータで正しく動作するone file8,000 Hz µ-Law)が見つかりました。

これは、ファイル情報です:

[email protected]:~/$ file 8kulaw.wav 
8kulaw.wav: RIFF (little-endian) data, WAVE audio, ITU G.711 mu-law, mono 8000 Hz 

私はこのSoxのコマンドを使用して、まったく同じ構成にthis fileをエンコードしようとしましたが、それは働いていなかった:

sox -r 8000 -e u-law sorry_dave.wav sorry_dave4.wav 
+0

ただ、コメントのフォローアップ同じ問題。私の場合は、soxやその他のwin/linuxツールでこれを行う方法を完全に調査していませんでしたが、http://g711.org/でオンラインコンバータを使用すると、sipp(3.5バージョン中古)。誰かを助けることを願っています。 – cool

0

申し訳ありません - それはです私はこれをやって以来ずっとずっとずっとぼんやりとしている。私の最高の思い出には、u-lawのエンコーディングはsippでは動作しませんでした。そのため、このスクリプトを使ってa-lawとしてファイルをエンコードしました。私はsoxを使用して変換にいくつかのニュアンスがあることを指摘しました。私の意見では、不一致のSDPを持っているか、ファイルを正しくエンコードしていないので、1つのチャンネルしか使用していないことを確認してください。私が以下に投稿した方法とコードを試してみてください。 54.7kビットレート:64.1k エンコード:義理
チャンネル:1 13ビット@
SAMPLERATE:8000Hz
にReplayGain:オフ

ファイルヘッダが

ファイルサイズをお読みください再生時間:00:00:06.83

または

ファイルサイズ:54.7kビットレート:64.1k エンコード:U 8000Hz
にReplayGain:00:00:06.83

./wav_to_gsm.sh sorry_dave.wavのsorry_dave_alaw
時間オフ14ビット
サンプルレート@ 1:
チャンネル-law。プロジェクトの下のバー8000Hzで を選択し、「別の圧縮形式」としてオーディオをエクスポートします:WAV SOXあなたはSIPPのためのwavファイルをエンコードするためにはAudacityを使用することができます

#!/bin/bash 

if [ -z "$4" ];then 
    echo "usage: $0 [input.wav] [output.gsm] [sox|gst] [alaw|ulaw]" 
    exit 
fi 

    IN=$1 
OUT=$2 
TOOL=$3 
ENC=$4 

function conv1() 
{ 
    if [ $ENC == "alaw" ];then 
     sox $IN -r 8000 -c 1 -e a-law $OUT resample -ql 
    else 
     sox $IN -r 8000 -c 1 -e u-law $OUT resample -ql #default 
    fi 

    #notes: 
    #the output file extension (wav or gsm) will change how sox performs the encoding 
    #use .wav for sipp RTP 
     Encoding: u-law     Encoding: A-law 
     Channels: 1 @ 14-bit    Channels: 1 @ 13-bit 
    #use .gsm for asterisk music on hold 
     Encoding: GSM 
     Channels: 1 @ 16-bit 

} 

function conv2() 
{ 
    if [ $ENC == "alaw" ];then 
     gst-launch filesrc location=$IN \ 
     ! wavparse \ 
     ! audioconvert \ 
     ! audioresample \ 
     ! alawenc \ 
     ! audio/x-alaw, rate=8000, channels=1 \ 
     ! wavenc \ 
     ! filesink location=$OUT 
    else 
     gst-launch filesrc location=$IN \ 
     ! wavparse \ 
     ! audioconvert \ 
     ! audioresample \ 
     ! mulawenc \ 
     ! audio/x-mulaw, rate=8000, channels=1 \ 
     ! wavenc \ 
     ! filesink location=$OUT 
    fi 

    # notes: 
    # file output extension of wav and gsm are interchangeable in the converted format 
} 

if [ $3 == "gst" ];then 
    conv2 
else 
    conv1 
fi 
2

をALAW「オプション」をクリックして、「WAVを選択します(マイクロソフト) 'ヘッダーと' A-Law 'エンコーディング(PCMA用)または' U-Law '(PCMU用)

また、あなたのシナリオファイルを確認する必要があります。SDPメッセージはPCMAまたはPCMUオーディオを持っているし、(PCMAのため)このように「rtpstream_audio_port」を使用する必要があります。私は実際に対処したため

m=audio [rtpstream_audio_port] RTP/AVP 8 
    a=rtpmap:8 PCMA/8000 
関連する問題