You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端GStreamer音频UDP传输报错:not-negotiated(-4)求助

排查GStreamer管道协商失败问题

可能原因及修复方案

  • 明确约束音频源输出并添加采样率转换
    Android平台的autoaudiosrc默认输出格式可能与目标格式不匹配,且缺少采样率转换环节会导致协商失败。调整管道,加入audioresample处理采样率,并优先约束输出格式:

    autoaudiosrc ! audioconvert ! audioresample ! audio/x-raw,channels=1,rate=8000,format=S16LE ! mulawenc ! udpsink host=xxxx port=xxxx
    
  • 使用Android专用音频源
    替换通用autoaudiosrc为GStreamer针对Android优化的androidaudiosrc,提升系统兼容性:

    androidaudiosrc ! audioconvert ! audioresample ! audio/x-raw,channels=1,rate=8000,format=S16LE ! mulawenc ! udpsink host=xxxx port=xxxx
    
  • 添加capsfilter强制格式约束
    在mulawenc前加入capsfilter,明确强制输入格式,避免中间环节格式漂移:

    autoaudiosrc ! audioconvert ! audioresample ! capsfilter caps="audio/x-raw,channels=1,rate=8000,format=S16LE" ! mulawenc ! udpsink host=xxxx port=xxxx
    
  • 启用调试日志定位问题
    在JNI代码中开启GStreamer调试日志,查看具体哪个环节的Caps协商失败:

    gst_debug_set_default_threshold(GST_LEVEL_DEBUG);
    

    运行后重点关注日志中caps negotiation相关输出,定位不匹配的元素输入输出格式。

  • 优化UDP sink配置
    给udpsink添加sync=false参数,避免时钟同步问题导致的流中断:

    ... ! mulawenc ! udpsink host=xxxx port=xxxx sync=false
    

内容的提问来源于stack exchange,提问作者Kai Pham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:43:17