鲍渔爱好者 2024-04-16 16:29 采纳率: 33.3%
浏览 783
已结题

docker模式webrtc-streamer 无法播放公网rtsp

github地址 https://github.com/mpromonet/webrtc-streamer
测试环境:centos7 + docker
犹豫直接部署webrtc-streamer 需要升级gcc和若干系统依赖,比较麻烦,所以采用docker方式部署,同样turn公网穿透服务也采用docker方式部署,经测试服务turn服务正常
目前的问题:可以正常播放局域网rtsp,但是无法播放公网rtsp,一直没有找到问题

img


img


webrtc-streamer docker启动命令
局域网模式:docker run --network host -p 8000:8000 --name webrtc-streamer -itd mpromonet/webrtc-streamer
公网模式:docker run -itd --network host --name webrtc-streamer mpromonet/webrtc-streamer -o -H 192.168.1.66:8000 -Tadmin:abc123456@116.162.XXX.XXX:3478
turn服务启动命令
docker run -itd --name turnserver -e EXTERNAL_IP=116.162.xxx.xxx -e TURN_USERNAME=admin -e TURN_PASSWORD=abc12345 -p 3478:3478 -p 3478:3478/udp passerma/turnserver

turn服务测试正常

img


在容器内部测试连接turn服务是通的,服务器上的防火墙都是关闭的,云上防火墙也全部放通的

播放测试时一直转圈播放不了,js日志都显示ice已连接上了,局域网rtsp可以正常播放,求指点

img

img


这是容器启动日志,不知道是否跟着错误有关系,局域网模式启动也是一样的问题,但是可以正常播放

  • 写回答

15条回答 默认 最新

  • qq_230177505762 优质创作者: 嵌入式与硬件开发技术领域 2024-04-16 16:31
    关注

    以下参考免费微信小程序:皆我百晓生 作答,并由妄北y整理回复。

    从你提供的信息来看,webrtc-streamer在局域网内可以正常工作,但在处理公网RTSP流时存在问题。以下是一些可能的解决方案:

    1. 确保公网RTSP流可用:首先确认公网RTSP流本身是可访问的。你可以通过VLC或其他媒体播放器尝试播放公网RTSP流来验证这一点。

    2. 检查TURN服务器配置:确保TURN服务器配置正确,并且公网IP地址是正确的。你可以在webrtc-streamer的配置文件中检查这些设置。

    3. 检查防火墙设置:确保服务器上的防火墙(以及云服务提供商的防火墙)允许通过相应的端口。TURN协议通常使用3478和3478/udp端口。

    4. 检查STUN/TURN服务器的外部IP:在docker run命令中,你使用了EXTERNAL_IP环境变量来设置TURN服务器的外部IP。确保这个变量被正确解析为公网IP地址。

    5. 检查WebRTC配置:在webrtcstreamer.js中,你设置了ICE服务器,但是没有明确指定STUN服务器。可以尝试添加一个STUN服务器以提高连接的成功率。

    6. 调试信息:你已经提供了一些调试信息,但是可能还需要更详细的日志来诊断问题。可以在WebRtcStreamer类的实现中添加更多的console.log语句,以便跟踪连接过程中的每一步。

    7. 检查网络连接:使用网络抓包工具(如Wireshark)来监控webrtc-streamer容器和TURN服务器之间的网络流量,以确定是否有数据包被发送和接收。

    8. 检查容器网络模式:你使用了--network host来运行webrtc-streamer和TURN服务器的容器。这可能会导致一些网络问题,因为容器会共享宿主机的网络命名空间。可以尝试不使用host网络模式,而是使用默认的桥接网络,并确保容器间的网络连通性。

    9. 更新Docker镜像:确保你使用的webrtc-streamer和turnserver的Docker镜像是最新的,因为旧版本可能存在已知的问题。

    如果上述方法都不能解决问题,你可能需要深入研究WebRTC的工作原理,或者寻求社区的帮助。在GitHub的webrtc-streamer项目页面上,你可以提交issue来寻求开发者的帮助。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月17日
  • 赞助了问题酬金15元 4月16日
  • 修改了问题 4月16日
  • 创建了问题 4月16日