2016-09-05 3 views
1

또 다른 SIPp related question을 조사하여 rtp_stream 작업을 사용하여 WAV 파일을 재생할 수 있다는 것을 알게되었습니다.SIPp로 재생할 WAV 인코딩 방법

여러 WAV 파일을 시도했지만 성공하지 못했습니다. 내가 얻는 것은 예상되는 소리 대신에 약간의 잡음이다.

위의 질문에 대한 한 가지 의견에는 WAV 파일을 호환 가능한 형식으로 변환하는 간단한 지침이 있지만 작동하지 않았습니다.

또한 sox를 ​​사용하여 this file을 변환하지 않으려 고 시도했습니다.

아무도 SIPp와 함께 사용할 올바른 WAV 파일을 생성하는 방법을 가르쳐 줄 수 있습니까?

이 재생 오디오 조치를 포함 내 recv 200 OK 명령입니다 : 내가 다른 WAV 파일 인코딩을 찾고 Wikipedia에 그들을 많이 발견

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

답변

1

.

rtp_stream="8kulaw.wav,-1,0" exec 매개 변수와 함께 올바르게 작동하는 one file (8,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

죄송합니다 - 그것은이다 조금 지나치게 길었던 것처럼 막연하게 보였습니다. 내가 작성한이 스크립트를 사용하여 a-law로 파일을 인코딩 했으므로 내 최고의 회상을 위해 u-law 인코딩이 sipp에서 작동하지 않았습니다. 나는 sox를 ​​사용하여 변환에 약간의 뉘앙스가 있음을 지적했다. 제 의견으로는 SDP가 일치하지 않거나 파일을 잘못 인코딩하는 경우 하나의 채널 만 사용해야합니다. 아래에 게시 한 방법과 코드를 사용해보십시오. 54.7k 비트 레이트 : 64.1k 인코딩 : A-법
채널 : 1 13 비트 @
Samplerate : 8000Hz
리플레이 : 오프

파일 헤더는

파일 크기를 읽어야합니다 재생 시간 : 00 : 00 : 06.83

또는

파일 크기 : 54.7k 비트 레이트 : 64.1k 인코딩 : U
채널 -law 1 14 비트 @
Samplerate을 : 8000Hz
리플레이를 :
오프 시간 : 00 : 00 : 06.83

./wav_to_gsm.sh sorry_dave.wav의 sorry_dave_alaw한다.웨이브 삭스 ALAW

#!/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
당신은 SIPP에 대한 WAV를 인코딩하는 대담을 사용할 수 있습니다

: 프로젝트의 하단 바 8000Hz에서 선택하고 '또 다른 압축 포맷'으로 오디오를 보냅니다 : '옵션'을 클릭하고 'WAV를 선택 (Microsoft) '헤더 및'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 
관련 문제