SRS视频媒体服务器-docker启动:更换默认端口时的错误

这篇具有很好参考价值的文章主要介绍了SRS视频媒体服务器-docker启动:更换默认端口时的错误。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概述

在使用srs视频服务器时,一直都是使用默认的端口配置。但是,这些默认端口在某些时候可能已经被占用了,就需要更改端口了。

注意注意注意:使用docker启动srs,在更换端口一定要下面的内容。

二、使用docker启动srs,换端口时错误的方式

网络拓扑图:

SRS视频媒体服务器-docker启动:更换默认端口时的错误,音视频

 

启动命令:外部端口1936映射内部1935  和 外部端口8001映射内部8000端口

docker run  -it --name srs4.0-test --restart=always -v C:\5G\5GApi\static\DVR-video:/usr/local/srs/static/DVR-video  -p 1936:1935 -p 1985:1985 -p 8080:8080 -p 10080:10080/udp  -p 8001:8000/udp registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4  ./objs/srs -c conf/rtmp2rtc.conf

修改rtmp2rtc.conf配置文件:

1、给容器安装vim

#查看运行的docker
docker ps

#新开一个终端进入docker容器
docker exec -it srs4.0-test /bin/bash

#先更新apt-get
apt-get update

#安装vim
apt-get install vim -y

2、配置容器可以访问宿主机的域名

进入下面的目录:
C:\Windows\System32\drivers\etc

修改hosts文件:添加
127.0.0.1  host.docker.internal

#就可以在容器中通过  http://host.docker.internal:8888 访问到宿主机上部署的服务了

3、修改srs的配置文件

docker exec -it srs4.0 /bin/bash 
#修改配置文件(修改步骤1中默认的配置文件)
vi conf/rtmp2rtc.conf  

###########配置文件内容

listen              1935;  #必须有,rtmp协议,公网必须开放这个端口
max_connections     1000;
daemon              off;
srs_log_tank        console;

http_api {
    enabled         on; 
    #必须有,webrtc播放需要,可以在nginx配置转发,location /rtc {},无需开放该端口
    listen          1985;
}

http_server {
    enabled         on;
    listen          8080;
    #开发阶段需要,这个是srs自带的web页面,可以使用nginx代理
    dir             ./objs/nginx/html;

   
}


rtc_server {  #webrtc服务,必须开放公网8000端口
    enabled on;
    listen 8000;
    candidate 公网IP地址;
}

# @doc https://github.com/ossrs/srs/issues/1147#issuecomment-577607026
vhost __defaultVhost__ {
    
    #这个是rtc配置,开启rtmp转rtc
    rtc {
       enabled     on;
        rtmp_to_rtc on;
        rtc_to_rtmp on;
    }
   
    #开启http-flv
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
   
    #rtmp的低时延配置
    tcp_nodelay     on;
    min_latency     on;

    play {
        gop_cache       off;
        queue_length    10;
        mw_latency      100;
    }

    publish {
        mr off;
    }


   #视频录制功能
   dvr {
        enabled             on;
        dvr_path            /usr/local/srs/static/DVR-video/[app]/[01]-[2006]/[02]-day/[stream]-[2006]-[01]-[02]_[15]_[04]_[05].mp4;
        dvr_plan            session; #存一次推流中的所有的视频
        dvr_duration        30;
        dvr_wait_keyframe   on;
    }
    
    http_hooks {
	    #回调函数,on是启动,off是中止
        enabled         off;
        on_dvr          http://host.docker.internal:8888/srs/dvr;
        #视频录制的回调函数,一个视频录制完成后,会向给url发起post请求
        on_publish      http://host.docker.internal:8888/srs/publish;
        on_unpublish    http://host.docker.internal:8888/srs/un_publish;
        on_play         http://host.docker.internal:8888/srs/play;
        on_stop         http://host.docker.internal:8888/srs/stop;

    }

}

此时推流rtmp到srs服务器时,在使用srs自带的播放器拉取webrtc流,就会发现拉取不到,你可以停止推流rtmp。

到:C:\5G\5GApi\static\DVR-video  目录下查看是否有录制的视频,发现有该视频。

总结:

1、这种配置,可以录制,但是不能播放。

2、具体原因在于公网IP只将8001和1936端口映射个宿主机,而宿主机又是将8001和1936映射给srs容器的8000和1935,最致命的是srs服务器是根据配置文件中的8000和1935端口来生成对应可以播放webrtc流的验证数据,导致无法播放

三、正确的方法

1、启动srs容器:宿主机端口和容器端口映射时,保持端口一致

docker run  -it --name srs4.0-test  --restart=always  -v C:\5G\5GApi\static\DVR-video:/usr/local/srs/static/DVR-video -p 1936:1936 -p 1985:1985 -p 8080:8080 -p 10080:10080/udp  -p 8001:8001/udp registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4  ./objs/srs -c conf/rtmp2rtc.conf

2、配置srs配置文件:使用宿主机端口启动

listen              1936;  #必须有,rtmp协议,公网必须开放这个端口
max_connections     1000;
daemon              off;
srs_log_tank        console;

http_api {
    enabled         on; 
    #必须有,webrtc播放需要,可以在nginx配置转发,location /rtc {},无需开放该端口
    listen          1985;
}

http_server {
    enabled         on;
    listen          8080;
    #开发阶段需要,这个是srs自带的web页面,可以播放webrtc等视频,公网无需开发这个端口
    dir             ./objs/nginx/html;

   
}

srt_server { #没有使用到srt服务,无需开发10080端口
    enabled on;
    listen 10080;
    maxbw 1000000000;
    connect_timeout 4000;
    latency 20;
    peerlatency 20;
    recvlatency 20;
}

rtc_server {  #webrtc服务,必须开放公网8000端口
    enabled on;
    listen 8001;
    candidate 112.94.31.117;
}

# @doc https://github.com/ossrs/srs/issues/1147#issuecomment-577607026
vhost __defaultVhost__ {
    
    #这个是rtc配置,开启rtmp转rtc
    rtc {
       enabled     on;
        rtmp_to_rtc on;
        rtc_to_rtmp on;
    }
   
    #开启http-flv
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
   
    #rtmp的低时延配置
    tcp_nodelay     on;
    min_latency     on;

    play {
        gop_cache       off;
        queue_length    10;
        mw_latency      100;
    }

    publish {
        mr off;
    }


   #视频录制功能
   dvr {
        enabled             on;
        dvr_path            /usr/local/srs/static/DVR-video/[app]/[01]-[2006]/[02]-day/[stream]-[2006]-[01]-[02]_[15]_[04]_[05].mp4;
        dvr_plan            session; #存一次推流中的所有的视频
        dvr_duration        30;
        dvr_wait_keyframe   on;
    }
    
    http_hooks {
	#回调函数,on是启动,off是中止
        enabled         off;
        on_dvr          http://host.docker.internal:8888/srs/dvr;
        #视频录制的回调函数,一个视频录制完成后,会向给url发起post请求
        on_publish      http://host.docker.internal:8888/srs/publish;
        on_unpublish    http://host.docker.internal:8888/srs/un_publish;
        on_play         http://host.docker.internal:8888/srs/play;
        on_stop         http://host.docker.internal:8888/srs/stop;

    }

}

这样配置时,就可以正常拉取webrtc的视频流了。文章来源地址https://www.toymoban.com/news/detail-636619.html

到了这里,关于SRS视频媒体服务器-docker启动:更换默认端口时的错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SRS流媒体服务器——Forward集群搭建和源码分析

    Forward集群原理 RTMP流转发(Forward)部署实例 Forward集群源码分析 Forward 表示向前、前头的、发送等意思。 在SRS中可以理解为把Master节点获得直播流⼴播(转发)给所有的Slave节点,master节点由多少路直播流,那么在每个slave节点也会多少路直播流。 注:在SRS中还有另外⼀种集

    2023年04月11日
    浏览(79)
  • SRS流媒体服务器——SRS4.0 WebRTC一对一通话环境搭建与逻辑分析

    环境搭建 SRS4.0 WebRTC1对1通话逻辑分析 1. 安装go语⾔环境 在Go语⾔官⽹找到对应的安装包(Downloads - The Go Programming Language) 下载和解析(使用的是阿里云的Ubuntu系统): 3.需要配置 GOROOT 和 PATH环境变量,在/etc/profile中配置。 4. 然后使用 source /etc/profile 命令使配置文件生效,就

    2023年04月08日
    浏览(31)
  • 如何用P2P技术为SRS媒体服务器节省带宽成本

        直播流的重要性在当今社会已无需多言,动辄上百万人同时在线的直播场景也已屡见不鲜。随着越来越多的观众收看直播,如何有效降低带宽成本,提升播放体验已成为各大视频厂商和创业者共同面对的技术难题。假设有 10,000 名观众观看相同 1Mbps 比特率流的直播场景

    2024年02月22日
    浏览(28)
  • 流媒体服务器SRS的搭建及QT下RTMP推流客户端的编写

        目前市面上有很多开源的流媒体服务器解决方案,常见的有SRS、EasyDarwin、ZLMediaKit和Monibuca。这几种的对比如下: (本图来源:https://www.ngui.cc/zz/1781086.html?action=onClick)     SRS(Simple Real-time Server)是一个开源的流媒体服务器,它支持RTMP、HLS、HTTP-FLV等多种流媒体协议

    2024年02月11日
    浏览(34)
  • Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS)

    若只是实现一对一通信,仅使用webrtc就足够了。但有时间需要进行多个人的直播会议,当人比较多时,建议使用一个流媒体服务器,笔者使用的是SRS。 这个开源项目资料比较全,笔者仅在此记录下搭建过程 1.操作系统ubuntu22.04 64位 x86架构(建议更新到最新) 2.安装编译器相

    2024年02月09日
    浏览(44)
  • 华为云云耀云服务器L实例评测|将rtmp延迟降低到500ms以内-srs流媒体服务器测试(rtmp、http-flv、webrtc)

    最近华为云提供华为云-云耀云服务器出了一项 征文活动,可以免费试用。于是本人也迫不及待的白嫖体验一下华为云云耀云服务器L实例,该实例配置如下图,系统版本为 本次测试方向是使用SRS开源服务。SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB2

    2024年04月14日
    浏览(29)
  • Docker RTMP服务器搭建与视频流推送示例(流媒体服务器tiangolo/nginx-rtmp,推流客户端ffmpeg)

    在这篇文章中,我将详述如何搭建一个RTMP(Real-Time Messaging Protocol)服务器,并使用ffmpeg技术进行本地视频的推流。最后,我们将使用VLC播放器来播放这个RTMP流。 首先,我们需要搭建一个RTMP服务器。为了方便起见,我们将选择Docker作为服务器的环境。Docker的轻量化和可移植

    2024年01月17日
    浏览(35)
  • Windows-docker集成SRS服务器的部署和使用

    一、Windows Docker安装 Docker Desktop 官方下载地址: https://docs.docker.com/desktop/install/windows-install/ 下载windows版本的就可以了。 注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版! 安装 Hyper-V 我们开启Hyper-V。 我们安装好Docker for Windows后,可以在CMD中执

    2024年02月10日
    浏览(28)
  • 媒体服务器与视频服务器有什么区别

    媒体服务器与视频服务器有什么区别 流媒体服务器用在远程教育,视频点播、网络电台、网络视频等方面。 直播过程中就需要使用流媒体服务器,一个完整的直播过程,包括采集、处理、编码、封包、推流、传输、转码、分发、解码、播放等过程,流媒体服务器主要负责采

    2024年02月11日
    浏览(30)
  • 流媒体服务器与视频服务器有什么区别?

    流媒体服务器与视频服务器有什么区别? 流媒体服务器用在远程教育,视频点播、网络电台、网络视频等方面。 直播过程中就需要使用流媒体服务器,一个完整的直播过程,包括采集、处理、编码、封包、推流、传输、转码、分发、解码、播放等过程,流媒体服务器主要负

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包