SRS流媒体服务器——WebRTC推拉流


目录

  1. WebRTC推拉流配置
  2. WebRTC拉流演示
  3. WebRTC推流演示

SRS官方WebRTC文档:https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#rtmp-to-rtc

SRS安装部署相关内容:

  1. SRS流媒体服务器——单机环境搭建和源码目录介绍
  2. SRS流媒体服务器——Forward集群搭建和源码分析
  3. SRS流媒体服务器——Edge集群搭建
  4. SRS流媒体服务器——WebRTC推拉流演示
  5. SRS流媒体服务器——SRS4.0 WebRTC⼀对⼀通话环境搭建与逻辑分析

SRS部分源码分析相关内容:

  1. SRS流媒体服务器——基本流程简单分析
  2. SRS流媒体服务器——RTMP端⼝监听逻辑分析
  3. SRS流媒体服务器——RTMP推流、拉流创建连接
  4. SRS流媒体服务器——服务器读取RTMP推流数据
  5. SRS流媒体服务器——服务器给RTMP拉流端转发数据

1. WebRTC推拉流配置

  1. webrtc是默认⽀持的(–rtc=on),使⽤默认的rtc配置(conf/rtc2rtmp.conf)就可以运行。
  2. 默认rtc2rtmp.conf配置如下:
listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;http_server {enabled         on;listen          8080;dir             ./objs/nginx/html;
}http_api {enabled         on;listen          1985;
}
stats {network         0;
}
rtc_server {enabled on;listen 8000; # UDP port# @see https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#config-candidate# candidate $CANDIDATE;candidate 8.141.75.248;
}vhost __defaultVhost__ {rtc {enabled     on;# @see https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#rtmp-to-rtcrtmp_to_rtc on;# @see https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#rtc-to-rtmprtc_to_rtmp on;}http_remux {enabled     on;mount       [vhost]/[app]/[stream].flv;}
}
  1. 其中rtc_server是全局的RTC服务器的配置,部分关键配置包括:

    1. enabled:是否开启RTC服务器,默认是off。
    2. listen:侦听的RTC端口,注意是UDP协议。
    3. candidate:服务器提供服务的IP地址,需要是公网ip地址,否则局域⽹webrtc可以拉流,正式环境⿊屏。
    4. ecdsa:服务器自动生成的证书种类,ECDSA或RSA,是否用ECDSA。
  2. 然后是每个vhost中的RTC配置,部分关键配置包括:
    1. rtc.enabled:是否开启RTC能力,默认是off。
    2. rtc.rtmp_to_rtc:是否开启RTMP转RTC。
    3. rtc.rtc_to_rtmp:是否开启RTC转RTMP。
    4. rtc.stun_timeout:会话超时时间,单位秒。
    5. rtc.nack:是否开启NACK的支持,即丢包重传,默认on。
    6. rtc.twcc:是否开启TWCC的支持,即拥塞控制的反馈机制,默认on。
    7. rtc.dtls_role:DTLS角色,active就是DTLS Client(主动发起),passive是DTLS Server(被动接受)。
  3. 注意:对应端口,比如8000,1985端口必须开启,否则不能进行WebRTC测试。

2. WebRTC拉流演示

  1. 通过RTMP进⾏推流,然后通过WebRTC进⾏拉流。
  2. 启动SRS流媒体服务器:
./objs/srs -c conf/rtc.conf
  1. 使用ffmpeg命令进⾏推流(注意:ip需要换成自己的):
ffmpeg -re -i time.flv -vcodec copy -acodec copy -f flv -y rtmp://8.141.xxx.248/live/livestream
  1. 推送流成功之后,使⽤srs⾃带的rtc_player播放器进⾏播放,直接请求srs服务的8080端⼝即可。

    1. http://8.141.xxx.248:8080/players/rtc_player.html
    2. 下图是用WebRTC播放和RTMP播放对比。

3. WebRTC推流演示

  1. WebRTC推流器:http://8.141.75.248:8080/players/rtc_publisher.html
  2. 点击开始推流报错,推流需要是HTTPS或者localhost,如下图:
  3. 如果是window系统,可以Chrome的启动参数。方法:
    1. 找到Chrome图表
    2. 右键图标,选择属性
    3. 找到”目标”文本框,里面的内容是你的Chrome程序路径,类似这样:C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe
      在这段文本的后面输入一个空格,然后输入–ignore-certificate-errors --allow-running-insecure-content --un
      safely-treat-insecure-origin-as-secure=“http://8.141.75.248:8080”(ip换成自己的)
    4. 点击确定,重新打开Chrome浏览器
  4. mac系统没找到对应方法,可以配置一台Nginx,申请个免费的HTTPS证书,并配置转发。
  5. 然后就可以使用WebRTC或者RTMP进行播放。

SRS流媒体服务器——WebRTC推拉流演示相关推荐

  1. 开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享

    开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享 一.优秀的流媒体博客资源 1.1 EasyNVR:专注于安防视频互联网化的技术 1 ...

  2. 安卓基于SRS的Webrtc推拉流

    安卓基于SRS的Webrtc推拉流 文章目录 安卓基于SRS的Webrtc推拉流 Https必须需要域名 httpx-static 配置 https 代理 基于SRS 配置文件支持 https And ...

  3. 音视频开发-音视频面试必问的直播延迟分析丨FFmpeg|SRS流媒体服务器|webrtc|Android NDK开发|HTTP-FLV|RTSP

    音视频面试必问的直播延迟分析 1.直播延迟500ms是极限吗,加上WebRTC能做到多少 2.推流的延迟分析 3.流媒体服务器延迟分析 4.拉流的延迟分析 视频讲解如下,点击观看: 音视频开发-音视频 ...

  4. 【SRS】流媒体服务器(推流+拉流+转流)

    文章目录 前言 安装 推流 拉流 转流 前言 课程作业需要搭建一个视频流服务器,最初我采用的是HLS推流方式,发现那延迟卡的我一愣一愣的,这主要还是由于HLS需要等待切片完成.那行吧,那就换一个吧,一 ...

  5. nms之——流式服务器(直播推拉流等)

    nms之流式服务器 nms--Go语言开发的高性能流媒体服务端 下载安装 配置文件(config.ini) ffmpeg推流.拉流 NMS 推流(NMS v3支持RTMP, HTTP-FLVT推流) ...

  6. SRS流媒体服务器——RTMP推流、拉流创建连接

    SRS流媒体服务器--RTMP推流.拉流创建连接 目录 识别客户端,然后获取或者创建SrsLiveSource 启动推流 启动拉流 SRS安装部署相关内容: SRS流媒体服务器--单机环境搭建和源码目 ...

  7. SRS流媒体服务器——服务器读取RTMP推流数据

    SRS流媒体服务器--服务器读取RTMP推流数据 目录 处理RTMP推流video message 处理RTMP推流audio message 处理RTMP推流onMetaData message S ...

  8. 音视频学习之rtsp推拉流学习2(流媒体服务器ZLMediaKit)

    公司项目需要实现一个只是rtsp推流和rtsp拉流的业务机制,据说ZLMediaKit能满足rtsp推拉流的相关业务. 对ZLMediaKit流媒体服务器进行安装以及了解. 0:从开源库Readme中 ...

  9. Nginx搭建RTMP推拉流服务器

    如题,今天就来实现一个推拉流服务器,模拟下推流后被客户端拉流看到效果. 详细步骤如下 - 安装Nginx - 安装FFmpeg - 安装VLC客户端 安装Nginx 在Mac上有一个很好用的包管理插件 ...

最新文章

  1. kali2020安装中文输入法(切换中文输入法)
  2. tensorflow打印模型结构_社区分享 | 详解 TensorFlow 中 Placement 的最后一道防线 — Placer 算法...
  3. 智能型住宅自动控制与管理系统分析
  4. Codeforces Round #670 (Div. 2)
  5. 解决firebug报“illegal character错误的问题
  6. ftp文档服务器设置,ftp服务器基本设置
  7. 信息学奥赛一本通(1251:仙岛求药)
  8. iOS面试中经常问的点 - RunTime
  9. NIO系列六:流行 NIO Framework netty 和 mina 性能测评与分析
  10. bzoj 4516: [Sdoi2016]生成魔咒
  11. Unix系统中Shell概述
  12. 高分屏笔记本,如何处理程序提示“文本缩放比率要求为100%”
  13. 影响力最大化——CELF算法的简介与python实现
  14. 关于无穷级数收敛的充要条件的猜想
  15. 问卷调查:自定义表单设计vue
  16. mysql navicat视图_navicat怎么创建视图
  17. FALL_20_NOTE EDAV「Exploratory Data Analysis and Visualization」图像可视化
  18. SQL Server事务日志分析
  19. jsp汽车销售系统带前端
  20. 握手,交流从掌心开始

热门文章

  1. 《物联网开发实战》18 场景联动:智能电灯如何感知光线?(上)(学习笔记)
  2. 【深度学习训练之Batch】
  3. 【MOT】多目标追踪学习笔记之MOTR
  4. 使用 OpenCV 进行对象跟踪的几种算法解读
  5. c语言考研知识,c语言考研应如何准备
  6. FPGA verilog 临近插值任意比例视频缩小代码(多像素并行,能支持8K60)
  7. html添加轮盘,CSS+JS实现一个轮盘时钟
  8. 我在公司做的一个小游戏的总结感想
  9. Hive删除分区语法
  10. 从消费者角度评估RestFul的意义