直播
文章平均质量分 83
RTMP、HLS、SRS等
郎涯技术
微信搜一搜:【郎涯技术】关注我。
卖码为生,有代码洁癖。不爱广度,爱深度 — 专注分享Java / 在线教育 / 视音频领域等技术。
想和你一起,每天进步一点点,做一个不凡的人!
展开
-
HLS 直播协议m3u8详解
一、HLS是什么HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTime X和iPhone软件系统的一部分。 它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开...原创 2018-08-24 09:44:16 · 68609 阅读 · 0 评论 -
RTMP规范简单分析
RTMP协议是一个互联网TCP/IP五层体系结构中应用层的协议。RTMP协议中基本的数据单元称为消息(Message)。当RTMP协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(Chunk)。1 消息 消息是RTMP协议中基本的数据单元。不同种类的消息包含不同的Message Type ID,代表不同的功能。RTMP协议中一共规定了十多种消息类型,分别发挥转载 2015-03-25 16:18:09 · 947 阅读 · 0 评论 -
基于RTMP协议的Flash流媒体网页直播播放器
本文记录一些基于Flash技术的网页播放器。基于Flash的网页播放器相比于其他网页播放器来说最大的优势就是“免插件安装”了,这一点可以很大的提高用户的体验质量。主要是几种常用的网页播放器:rtmp_player_adobe: 从Adobe Flash Media Sever提取出来的测试播放器rtmp_player_wowza: 从Wowza服务器中提取原创 2015-03-25 15:10:26 · 14722 阅读 · 0 评论 -
RTMP 利用第三方软件实现数据推流与客户端播放
服务器的搭建Red5 搭建基于RTMP协议的流媒体服务器1.软件数据推流软件 flash_media_live_encoder_3.2客户端播放软件 vlc-2.1.5-win32.14065340962.安装软件直接双击安装即可3.数据推流使用flash encoder软件设置服务器的URL原创 2015-03-24 21:42:09 · 11300 阅读 · 2 评论 -
Web浏览器没有Flash如何播放RTMP协议直播
各大主流浏览器在很早的时候就已声明 2020 年底不支持 Adobe Flash。所以已经线上运行的项目以及涉及直播的项目,都会涉及一个问题 : “没有 Adobe Flash 在 Web 浏览器端如何播放 RTMP 直播流?”还好有先见之明,我参与涉及直播的项目已经在 20 年初提前解决了该问题1、优选方案需要流媒体服务器支持某种播放协议,例如HTTP-FLV、HLS等协议Web 浏览器HTTP-FLV、HLS移动浏览器HLS、FLV(需要考虑兼容性)移动Native or原创 2021-01-20 20:36:12 · 4961 阅读 · 0 评论 -
《直播从零开始》SRS 利用集群提高并发量 支持更多的推流与播放
如何支持更多的人推流?如何支持更多的人观看?这本质上就是系统的水平扩展能力。1、源站集群-更多推流在SRS的角色中,Edge主要解决播放或下行的扩展能力,而Origin则是解决上行或推流的扩展能力,比如需要推1万路流。1.1 Vhost方案如下图所示:此时需要终端指定不同的vhost1.2 源站集群方案基于Origin Cluster源站集群扩展源站,如下图所示:两个Origin服务器之间会互相查询流,若Edge请求的流不在本源站上,会将Edge定向到有流的Origin由于源站原创 2021-01-04 17:09:51 · 2974 阅读 · 1 评论 -
《直播从零开始》SRS 回调授权与管理
1、HTTP回调HttpCallBack事件:发生该事件时,回调指定的HTTP地址HTTP地址:可以支持多个,以空格分隔,SRS会依次回调这些接口数据传输:SRS将数据POST到HTTP接口修改配置文件配置文件需要开启http_hooks:listen 1935;max_connections 1000;vhost __defaultVhost__ { http_hooks { enabled on; on_con原创 2020-11-26 17:06:03 · 2797 阅读 · 0 评论 -
《直播从零开始》SRS Reload不中断服务
SRS 配置支持 Reload,即在不中断服务的前提下替换应用配置文件并生效1、配置方式修改配置文件,相关配置项如下:#do not support reload.daemon off;# Whether auto reload by watching the config file by inotify.inotify_auto_reload on;如果服务器支持使用inotify_auto_reload,则配置文件替换更新后直接生效,无需调用命令行进行手动reload2、应用场景原创 2020-11-26 14:56:23 · 1073 阅读 · 0 评论 -
《直播从零开始》SRS RTMP/HLS低延时模式
RTMP延时特点:延迟较低:比起YY的那种UDP私有协议,RTMP算延迟大的(延迟在1-3秒),比起HTTP流的延时(一般在10秒以上)RTMP算低延时。一般的直播应用,只要不是电话类对话的那种要求,RTMP延迟是可以接受的。在一般的视频会议(参考SRS的视频会议延时)应用中,RTMP延时也能接受,原因是别人在说话的时候我们一般在听,实际上1秒延时没有关系,我们也要思考(话说有些人的CPU处理速度还没有这么快)。有累积延迟:技术一定要知道弱点,RTMP有个弱点就是累积误差,原因是RTMP基于TCP不原创 2020-11-25 21:10:37 · 3736 阅读 · 0 评论 -
《直播从零开始》SRS 部署分发HLS与FLV服务
1、HLS 服务HLS 的主要优势是:性能高:和HTTP一样穿墙:和HTTP一样原生支持很好:IOS上支持完美,Android 3 以上支持。PC/HTML5 or flash上现在也有各种as插件支持HLSHLS的主要劣势是:实时性差:基本上HLS的延迟在10秒以上文件碎片:若分发HLS,码流低,切片较小时,小文件分发不是很友好。特别是一些对存储比较敏感的情况,譬如源站的存储,嵌入式的SD卡编写配置文件hls.conf# 安装后,存在默认的配置文件/usr/local/srs/c原创 2020-11-25 18:58:23 · 1282 阅读 · 0 评论 -
《直播从零开始》SRS 安装与部署RTMP服务
SRS主要运行在Linux系统上,譬如Centos和Ubuntu,包括x86、x86-64、ARM和MIPS。其他的OS可以使用 srs-docker开发和运行,比如macOS、Windows等。SRS可以在一台服务器上运行集群,或者在多台服务器上也可以运行集群。SRS是单进程模型,不支持多进程;您可以使用 go-oryx 支持多进程。1、安装测试环境CentOS 8 x64基于安装包安装下载与安装SRS发布版本提供安装包的下载,访问 ossrs.net 下载安装包,如:SRS-CentOS7原创 2020-11-25 16:10:30 · 2262 阅读 · 0 评论 -
《直播从零开始》SRS 带宽测试
视频很卡,播放不了,缓冲区突然很大,推流上不来,都有可能是带宽过低,SRS支持测试客户端到服务器的带宽。SRS配置SRS配置一般是单独加一个vhost支持测速。SRS的带宽测试默认配置位于安装目录下的conf/bandwidth.conf。譬如:listen 1935;vhost __defaultVhost__ {}vhost bandcheck.srs.com { enabled on; chunk_size 65000;转载 2020-11-17 15:27:08 · 1375 阅读 · 3 评论 -
《直播从零开始》常用的流媒体网络协议
流媒体协议比较常用的有RTMP、HTTP-FLV、HLS等。古老的用于监控的RTSP -> RTMP -> HTTP渐进式下载 -> HTTP流 -> HLS和HDS -> DASH -> 私有的WebSocket等。RTMPS/E/T秒级延迟,广泛应用于低延时直播,常用于PC端或客户端(PC or App)。RTMPS/E是加密协议,RTMPT是HTTP穿墙协议。浏览器播放RTMP源,需要安装Flash插件。在早期的PC时代,浏览器默认都会安装Flash插件。但原创 2020-11-16 17:50:00 · 454 阅读 · 0 评论 -
《直播从零开始》SRS与主流流媒体服务器的对比
目前主流的流媒体服务器主要有 nginx-rtmp、crtmpd、wowza、red5、adobe fms等。https://github.com/winlinvip/srs/tree/3.0release#performance支持的网络协议对比协议是服务器的基础,协议决定了关键应用场景,譬如毫秒级别延时只能用udp,秒级别延迟用RTMP,十秒级别可以用HLS。FeatureSRSNGINXCRTMPDAMSWOWZARTMPStableStableStabl原创 2020-11-13 18:08:10 · 3408 阅读 · 0 评论 -
nginx-rtmp-module 指令详解
译序:截至 Jul 8th,2013 官方公布的最新 Nginx RTMP 模块 nginx-rtmp-module 指令详解。指令Corertmp语法:rtmp { ... }上下文:根描述:保存所有 RTMP 配置的块。server语法:server { ... }上下文:rtmp描述:声明一个 RTMP 实例。rtmp { server {转载 2016-05-23 18:33:32 · 2945 阅读 · 0 评论 -
Linux-CentOS7 Red5流媒体服务器的安装与配置
Red5 is an Open Source Flash Server written in Java that supports:Streaming Video (FLV, F4V, MP4, 3GP)Streaming Audio (MP3, F4A, M4A, AAC)Recording Client Streams (FLV and AVC+AAC in FLV container原创 2015-12-21 14:43:51 · 10436 阅读 · 2 评论 -
Red5 不能使用IP地址连接的问题
Red5服务器上使用IP地址推送RTMP流时,连接失败,但使用localhost成功,导致RTMP的流只能在服务器上访问,非服务器访问不了。修改Red5安装目录conf文件夹下的red5.properties文件 [D:\RTMPServer\Red5\conf\red5.properties]rtmp.host=你的ip地址修改作用于RTMP流的文件夹下的WEB-原创 2015-03-25 11:36:22 · 3192 阅读 · 3 评论 -
Red5 搭建基于RTMP协议的流媒体服务器
1.准备需要使用的软件Red5软件:setup-Red5-1.0.1-java6Jre: jre-6u37-windows-i586oflaDemo2.安装Red5软件设置服务器的IP:设置服务器的端口号:3.安装Jre设置系统的环境变量:JAVA_HOME D:\RTMPSe原创 2015-03-24 21:32:31 · 4803 阅读 · 0 评论