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

Gstreamer合并异源音视频推流RTMP及麦克风降噪问题问询

问题1:合并音频到RTMP推流命令的实现

你原有的推流命令中已经定义了flvmux name=mux封装元件,只需新增音频采集编码分支,将处理完成的音频流送入mux的音频输入端即可,完整命令如下:

gst-launch-1.0 -e v4l2src device=/dev/v4l/by-path/platform-fe801000.csi-video-index0 ! video/x-raw,format=UYVY,framerate=20/1 ! videoconvert ! videoscale ! video/x-raw, width=1280,height=720 ! videocrop top=0 left=0 right=800 bottom=0 ! videoflip method=counterclockwise ! omxh264enc ! h264parse ! mux. \
alsasrc device="hw:1,0" ! audio/x-raw,format=S16LE,rate=44100,channels=2 ! audioconvert ! audioresample ! voaacenc ! aacparse ! mux. \
flvmux name=mux streamable=true ! rtmpsink sync=true async=true location='rtmp://XXXXX live=true'

参数说明:

  • 音频分支采用AAC编码适配RTMP协议标准要求,若提示找不到voaacenc元件,执行apt install gstreamer1.0-plugins-bad安装对应插件即可
  • 移除了原音频录制命令中的num-buffers=1000参数,避免推流过程中音频提前中断
  • 音视频流都通过后缀.mux绑定到预定义的flvmux元件,完成音视频同步封装后再推送至RTMP服务器

问题2:音频采集噪声大的解决方法

  • 调整硬件输入增益:执行alsamixer命令,按F6选择外接的麦克风声卡,找到麦克风增益调节项,将增益降至70%以下测试,输入增益过高是最常见的噪声来源
  • 新增软件降噪模块:在音频分支的audioconvert元件后添加WebRTC音频处理模块,修改后的音频分支片段如下:
alsasrc device="hw:1,0" ! audio/x-raw,format=S16LE,rate=44100,channels=2 ! audioconvert ! webrtcdsp noise-suppression-level=3 gain-control=true ! audioresample ! voaacenc ! aacparse ! mux.

webrtcdsp支持噪声抑制、自动增益控制,降噪等级可设置1-3,等级越高降噪强度越大。若提示找不到该元件,执行apt install gstreamer1.0-plugins-good安装即可

  • 排查硬件干扰:检查麦克风接线是否接触不良,将音频线远离充电器、主板等电磁辐射源,也可更换带屏蔽层的音频线测试
  • 增加频段滤波:如果存在稳定的低频底噪,可在audioconvert后添加audiowsincband low-frequency=300 high-frequency=3400,过滤人声范围外的无用频段噪声

内容的提问来源于stack exchange,提问作者mevlut topal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:45:03