gpt4 book ai didi

android - 将 opus 音频 rtp 流式传输到 android 设备

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:13:48 29 4
gpt4 key购买 nike

我想使用 ffmpeg 将音频(opus 编解码器)直接流式传输到 android 设备。

在 PC 上我开始直播:

  ./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 - 我手机的本地 wifi 地址。

在 Android 设备上我尝试播放流:

 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();
}
}

在 logcat 中我看到下一行:

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

我做错了什么?感谢您的帮助

最佳答案

使用 RTP,您可以在 PC 上启动流媒体服务器。所以在你的 ffmpeg 命令行中你必须指定你的 PC 的 IP 地址而不是目标:

./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

在 Android 端,您需要一个 RTP/RTSP 客户端。我会尝试: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java

关于android - 将 opus 音频 rtp 流式传输到 android 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43656892/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com