2017-04-27 6 views
10

ffmpeg로 오디오 (opus 코덱)를 직접 안드로이드 장치로 스트리밍하고 싶습니다. PC에stream opus audio rtp to anroid devices

는 내가 스트림을 시작합니다

./ffmpeg -re -stream_loop -1 -i akgld-c8mxm.opus -acodec libopus -ac 1 -ab 96k -vn -f rtp rtp://192.168.0.100:6000 

경우 192.168.0.100 - 내 전화의 지역 와이파이 주소.

E/AudioRecord: AudioFlinger could not create record track, status: -1 
E/AudioGroup: cannot initialize audio device 

무엇 IM 잘못을하고 : 로그 캣에서

public void tryPlayStream() { 
     String ip = Utils.wifiIpAddress(this); 
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitNetwork().build(); 
     StrictMode.setThreadPolicy(policy); 
     AudioManager audio = (AudioManager) getSystemService(AUDIO_SERVICE); 
     audio.setMode(AudioManager.MODE_IN_COMMUNICATION); 
     audioGroup = new AudioGroup(); 
     audioGroup.setMode(AudioGroup.MODE_ECHO_SUPPRESSION); 
     InetAddress inetAddress; 
     try { 
      inetAddress = InetAddress.getByName(ip); 
      audioStream = new AudioStream(inetAddress); 
      audioStream.setCodec(AudioCodec.PCMA); 
      audioStream.setMode(RtpStream.MODE_RECEIVE_ONLY); 
      InetAddress inetAddressRemote = InetAddress.getByName(ip); 
      audioStream.associate(inetAddressRemote, 6000); 
      audioStream.join(audioGroup); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

난 다음 라인을 참조하십시오

는 안드로이드 장치에 내가 스트림을 재생하려고? 어떤 도움 주셔서 감사합니다

+0

<사용 권한 android : name = "android.permission.RECORD_AUDIO">? – fionbio

답변

1

RTP를 사용하면 PC에서 스트리밍 서버를 시작할 수 있습니다. 당신은 RTP/RTSP 클라이언트가 필요합니다 안드로이드 측면에서

./ffmpeg -re -stream_loop -1 -i akgld-c8mxm.opus -acodec libopus -ac 1 -ab 96k -vn -f rtp rtp://YOUR_PC_S_IP_ADDRESS:6000 

: 그래서 당신는 FFmpeg 명령 행에서 당신은 목표를 PC의 IP 주소를 지정해야하지. 시도해 보겠습니다 : https://github.com/pedroSG94/rtmp-rtsp-stream-client-java

+0

안드로이드 클라이언트에서 ffmpeg 명령 줄에서 PC의 IP 주소를 지정해야합니까, 아니면 자신의 IP 주소를 사용해야합니까? – gregm

+0

예 - Android 클라이언트는 PC의 IP 주소가 포함 된 ffmpeg 명령 줄에 지정된 URL을 사용해야합니다. –