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

使用Amazon Kinesis Video Streams推送RTSP摄像头流时遇资源访问错误

问题分析与解决办法

先看日志里的核心错误:

Error received from element source: Not found
Debugging information: gstrtspsrc.c(6536): gst_rtspsrc_send (): /GstPipeline:rtsp-kinesis-pipeline/GstRTSPSrc:source:
Not Found (404)

从日志流程能确定,Amazon Kinesis Video Streams相关操作完全正常:客户端创建成功、CCTVStream流状态为ACTIVE、流端点和令牌已获取、流就绪。问题出在GStreamer的rtspsrc组件访问RTSP URL时返回404——虽然VLC和ffplay能播放,但两者的RTSP客户端实现与GStreamer不同,需从以下方向排查:

1. 先验证GStreamer本身能否访问RTSP流

直接用GStreamer测试播放,排除KVS的干扰:

gst-launch-1.0 rtspsrc location=rtsp://myrtspUrl ! decodebin ! autovideosink

如果这个命令也报404,说明是GStreamer与RTSP服务器的兼容性问题,和KVS无关。

2. 检查RTSP URL格式与权限

  • 若URL包含特殊字符(空格、@、!等),必须做URL编码(比如空格替换为%20),GStreamer对格式要求比VLC严格
  • 带用户名密码的URL,确保格式为rtsp://用户名:密码@IP:端口/路径,密码中的特殊字符也要编码
  • 尝试将IP与域名互换,部分RTSP服务器对访问方式有特定要求

3. 调整GStreamer RTSP插件参数

VLC的RTSP客户端实现与GStreamer的rtspsrc不同,可强制使用TCP传输(默认可能为UDP,部分服务器不支持):
如果kvs_gstreamer_sample支持自定义管道,执行以下命令:

AWS_ACCESS_KEY_ID=myAccessKey AWS_SECRET_ACCESS_KEY=MySecretKey ./kvs_gstreamer_sample CCTVStream "rtspsrc location=rtsp://myrtspUrl protocols=tcp ! rtph264depay ! h264parse ! video/x-h264,stream-format=avc,alignment=au ! kvssink stream-name=CCTVStream"

若不支持自定义管道,需修改kvs_gstreamer_sample源码中的GStreamer管道配置,给rtspsrc添加protocols=tcp参数。

4. 排查网络环境

  • 运行kvs_gstreamer_sample的机器,能否ping通RTSP服务器IP?
  • 防火墙/安全组是否放行该机器访问RTSP服务器端口(通常为554或自定义端口)?
  • 必须在同一台机器上测试VLC与GStreamer,排除跨机器的网络差异

5. 确认RTSP流编码格式

kvs_gstreamer_sample默认仅支持H.264(AVC)格式视频流,用ffprobe查看流的详细信息:

ffprobe rtsp://myrtspUrl

若流为H.265或其他格式,需修改管道添加转码步骤,比如用x264enc转成H.264后再推送给KVS。


内容的提问来源于stack exchange,提问作者Ashish Mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:01:12