
音视频
文章平均质量分 88
未央千城
这个作者很懒,什么都没留下…
展开
-
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(四)
nginx-http-flv-module 的两个更新记录。原创 2023-01-12 23:52:08 · 569 阅读 · 0 评论 -
nginx-rtmp-module 的缺陷分析(四)
Nginx一般情况下都是以多进程方式(一个 master 进程和多个 worker 进程)运行的,但是nginx-rtmp-module模块对多进程方式的支持很不成熟。前面的文章提到过以多进程方式运行 Nginx 时,由于nginx-rtmp-module 本身不支持 Vhost 功能,再加上它使用 Unix domain socket(没有端口信息)转发媒体流到其他的 worker 进程,导致其他的 worker 进程无法知道转发的媒体流需要匹配的是哪个 server 配置。Nginx 从...原创 2021-01-17 00:42:20 · 589 阅读 · 0 评论 -
在nginx-http-flv-module中支持H.265(HEVC)
众所周知,FLV规范不支持H.265,并且近年来各大浏览器都逐渐不支持Flash,Adobe也宣布到2020年底不再支持Flash。作为FLV相关技术的所有者,Adobe估计也没动力更新规范来支持H.265;外加H.265标准的一些专利所有者的授权方案被指抢钱,更加打击了很多软件厂商的积极性。从H.265标准出来没多久,就有人请求Adobe在FLV规范中加入对H.265的支持:https:...原创 2019-09-23 21:58:06 · 9181 阅读 · 6 评论 -
高性能流媒体服务器nginx-http-live-module
nginx-rtmp-module实现了开创性的工作,但是,实际上它的完成度并不高,缺少的功能和很多缺陷在前面的文章中已有提及。如果要在实际生产环境中使用,必须进行大量的修改。 nginx-http-flv-module部分解决了一些问题,由于我自身有些知识和测试环境所限,有些问题的解决周期很长甚至无法解决。不管怎样,nginx-http-flv-module能成...原创 2019-06-25 13:59:46 · 12106 阅读 · 4 评论 -
nginx-rtmp-module的缺陷分析(三)
VHOST(虚拟主机)就是一址多域的意思,主流的Web服务器都有这个功能,它解决了运行Web的主机在同一个IP地址情况下可以为不同域名的请求提供服务的问题。假设有两个域名A和B,在DNS上A和B都指向同一个A记录(IPv4)或者AAAA记录(IPv6),Web服务器通过不同的域名信息解析到不同的配置,从而为A和B提供不同的服务。Nginx根据请求的信息(端口,IP地址和域名)匹配到对应的配置的大概...原创 2019-05-11 22:42:03 · 2414 阅读 · 0 评论 -
nginx-rtmp-module的缺陷分析(二)
nginx-rtmp-module使用指令push和pull来relay媒体流数据,以便分布式部署服务。当nginx-rtmp-module作为边缘服务器(一般不会向边缘服务器推流)时,使用pull从源服务器获取媒体流数据,俗称“回源”。先看原理图:注意:上图是单进程模式的pull回源图。可以看出,多个连接请求同一个媒体流(RTMP的URL格式为:rtmp://host[:port]/...原创 2019-04-24 16:18:52 · 3555 阅读 · 2 评论 -
nginx-rtmp-module的缺陷分析
Arut最初在开发nginx-rtmp-module的时候只实现了单进程模式,好处是架构简单,推送和播放,数据统计,流媒体控制等都在一个进程上完成。但是这显然浪费了Nginx多进程(在Linux和FreeBSD平台上每个进程都可以绑定一个CPU核心,以减少进程切换带来的开销)的处理能力。但是,如果开启多进程模式,推送和播放如果不在同一个进程上,会造成播放失败的问题:另外,请求数据统计信息也...原创 2019-04-14 11:41:35 · 3242 阅读 · 1 评论 -
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(三)
接上一篇《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)》内容。 项目地址:https://github.com/winshining/nginx-http-flv-module,欢迎大家下载测试,返回bug和提交PR。2018-10-28:现在nginx-htt-flv-module还...原创 2018-08-08 17:58:06 · 11380 阅读 · 21 评论 -
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(一)
本文后续的内容将在这里更新:《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)》。注意:下文的配置很多已经不能用了,因为现在的实现跟早期的实现相差有点大。而为了看到整个项目的变迁史,所以保留了下来,下文的更新中提到了为什么有些配置项不能再使用的原因。现在使用的配置可查找下文中的README.CN.md。另外,除非你...原创 2018-02-07 22:23:29 · 59299 阅读 · 95 评论 -
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)
由于《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(一)》内容已经很长,所以后续的更新将记录在这儿。非常感谢网友们的测试反馈和代码提交!项目地址:https://github.com/winshining/nginx-http-flv-module。有问题或者建议,可以加Q群:711969608详聊。目前已经有很多个...原创 2018-03-09 01:50:41 · 39759 阅读 · 39 评论 -
I帧,P帧和B帧以及DTS和PTS的关系
基本概念:I frame:帧内编码帧,又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。P frame:前向预测编码帧,又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,转载 2017-05-19 18:52:01 · 704 阅读 · 0 评论 -
SPS/PPS/IDR
H.264码流第一个 NALU 是 SPS(序列参数集Sequence Parameter Set)对应H264标准文档 7.3.2.1 序列参数集的语法进行解析H.264码流第二个 NALU 是 PPS(图像参数集Picture Parameter Set)对应H264标准文档 7.3.2.2 序列参数集的语法进行解析H.264码流第三个转载 2017-05-15 22:54:03 · 1050 阅读 · 0 评论