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

GStreamer中通过RTSP传输L16音频时filesrc报错求助

问题原因与解决方法

核心原因

filesrc是一次性读取指定文件,当文件内容被读完后,整个流就会终止。而RTSP服务器需要持续可用的媒体流来响应客户端的连接请求——如果客户端连接时文件已经读完,服务端就没有数据可以推送,直接返回503 Service Unavailable错误。

而audiotestsrc是持续生成实时音频数据的源,不会出现流中断的情况,所以客户端能正常连接播放。

修复方案

给filesrc添加loop=true参数,让文件循环播放,保持流持续可用:

修改后的服务端管线:

./test-launch.out "filesrc location=L16.raw loop=true ! audio/x-raw,format=L16,channels=2,rate=44100 ! audioconvert ! audio/x-raw,format=S16BE,channels=2,rate=44100 ! rtpL16pay pt=96 name=pay0"

额外优化:可以在filesrc后直接指定原始音频的格式caps(audio/x-raw,format=L16,channels=2,rate=44100),让GStreamer更明确文件的格式,减少自动探测的潜在问题。

新手排查小技巧

  1. 给GStreamer命令添加GST_DEBUG=3环境变量,查看更详细的调试日志,比如:
    GST_DEBUG=3 ./test-launch.out "你的管线"
    
    日志里会显示流何时终止、元素间的caps匹配情况等关键信息。
  2. 单独测试服务端管线是否能正常播放:用gst-launch-1.0直接运行服务端的内部管线(去掉test-launch.out部分),验证文件和管线本身的有效性:
    gst-launch-1.0 filesrc location=L16.raw ! audio/x-raw,format=L16,channels=2,rate=44100 ! audioconvert ! autoaudiosink
    

内容的提问来源于stack exchange,提问作者K G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 23:47:10