首页
学习
活动
专区
圈层
工具
发布

工具系列 | 视频监控RTSP转HLS解决方案

尝试过nginx+ffmpeg的方案,虽然可行,但是实现单摄像头还行,想不明白如何实现多摄像头预览,尝试过写脚本,同时处理多个摄像头,但结果是服务器卡死。...rtsp协议流,转换为rtmp协议流,推送给nginx的rtmp服务, 然后由nginx的rtmp模块将流切片,转换为m3u8+ts格式片断,然后由nginx对外提供web访问m3u8和ts片段的服务,...4.nginx的rtmp模块接收推送流,进行切片生成ts片段,并生成m3u8格式媒体列表 rtmp{ server{ listen 1935; application...ts文件的服务 server{ listen 8888; #匹配m3u8请求,转发给后端rtmp推流服务 location ~ /hls/([0-9]+)/index\....m3u8 { proxy_pass http://127.0.0.1:8083/$1; } #ts片段文件匹配 location /hls {

6.9K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在HLS上花10倍的代码,SRS值得个球吗?

    接下来可能会陆续的装如下的逼: M3U8/TS到底有什么难的?坑有多大,坑里有多少个球? 除HLS外,HTTP-FLV/MP3也是移动端需要的吗? 为何要为移动端重写HTTP服务器?这个球有多大?...除了TS部分,m3u8其实也是有rfc的;有个地方还不太明白,SRS专门向apple的m3u8标准的维护者发邮件请教,apple回复后澄清了问题。SRS2的hls配置项也增加了不少。...SRS不仅遵守m3u8/ts规范,而且还注明是出自于哪个规范,在哪一页。代码注释就多达23%。 对于HTTP-MP3流呢,有些安卓没法播放纯音频的HLS,但是能播放HTTP-MP3。...CRTMPD是监控时代的产物,NGINX-RTMP是PC时代,SRS才是适应快速变化的产品,目前是移动端,未来可以有很多可能。...这就是SRS,一个把RTMP和HLS吃得很透的服务器,一个在HLS上花了10倍于NGINX-RTMP代码和精力的球。

    69120

    教你如何搭建自己的直播服务器-简易

    我想大家都是有的。但是怎么说呢,对接第三方的缺点也很明显,除去那不可避免的一些事故。最大的缺点就是要钱!!!要钱!!!要钱!!! 对于我们公司来说。一般都是要先上线,在考虑效率。...on; #RTMP服务 rtmp{ server{ listen 1935; #服务端口 chunk_size 4096; #数据传输块的大小.../m3u8File; #切片视频文件存放位置(HLS,m3u8文件存放位置) hls_fragment 2s; #每个视频切片的时长...{ types{ #m3u8 type设置 application/vnd.apple.mpegurl m3u8;...推流 下一步我们进行obs推流 推流后可以让其他端口进行拉流播放; 拉流 拉流的话这里提供两种方式 rtmp地址: 第一种直接原地址rtmp:进行拉流。

    3.8K20

    Nginx零成本、易操作实现网站视频加速

    最近有朋友做了个网站,网站上面放了几个视频,觉得视频播放慢、卡顿,想让我帮忙优化下,今天就介绍个零成本,操作又简单的方法优化网站上视频播放速度 目前很多人网站上放视频,除了用第三方视频平台连接,比如腾讯...一个大的mp4视频文件,就会被切分成自定义分片大小的ts分片文件 这样相当于在自己服务器上,搭建了点播服务,并不需要安装rtmp,并用ffmpeg去做推流,那个是直播的方式,如果推流结束了,视频就无法点击了...,当然,可以在推流的过程中将文件切分,但是这里不做直播的情况下,大可不必,不需要安装rtmp重新编译nginx,这里技术上基本没什么难度 具体实现如下: 首先,将mp4视频转换成m3u8格式,用到工具为...ffmpeg ffmpeg在nux源里,通过源yum安装只能安装到2.8版本,如果是ubuntu系统,可以安装到最新版本(CentOS6只有0.6版本),编译安装比较麻烦,就别折腾了,如果需要用到新版本...最后只需要在网站中将视频地址后缀改为m3u8即可,注意chrome等PC浏览器不支持直接播放m3u8格式,PC端只有safari支持

    4.3K10

    Nginx+FFmpeg打造自己的视频直播服务

    接下来我们执行nginx -V,可以发现已经有了nginx-rtmp-module模块,至此,nginx安装nginx-rtmp-module模块成功!...rtsp测试地址,执行完以上命令之后如下图,则表示转流成功: 转流截图 转流成功后在我们之前配置的nginx rtmp模块的接收路径下(/server/hls)会生成m3u8索引文件,m3u8其实就是...,nginx的rtmp模块帮我们做了这一点来防止内存溢出的问题,生成的文件如下: m3u8 为了可以直接用http访问m3u8文件,我们在nginx的http模块下加入以下配置: server {...的shell 在hls目录下会生成m3u8文件 String shell = "ffmpeg -rtsp_transport tcp -i \"" + rtspUrl + "\" -vcodec...copy -acodec copy -f flv -an -b 1024k -y \"rtmp://127.0.0.1:1935/hls/mystream_" + uuid + "\"";

    6.5K74

    如何开发一款 H5 小程序直播?

    将video.min.js和videojs-contrib-hls.js以及video-js.min.css引入到页面中,source标签的地址写上我们hls的m3u8后缀地址。就可以了。...直播协议 直播目前最常用的三种协议是HLS协议,RTMP协议和HTTP-FLV协议。HLS对应的是hls格式的视频也就是.ts。RTMP和HTTP-FLV都是对应的flv格式的视频。...HLS协议是最简单的也是最常用的,他是苹果推出的一个直播协议,他的工作原理比较简单,H5一般通过video标签,从客户端获取一个M3U8索引文件,这个M3U8会直接放在video的src路径中。...HLS使用非常简单但他的实时性会差一些,也就说他有延时,切片越多延时越大。HTTP-FLV结合了HLS的优点也就是http请求然后又集合了RTMP低延时的特性。...HTTP-FLV相对于RTMP优势有很多,比如可以在一定程度上避免防火墙的干扰,可以很好地兼容HTTP302跳转,做到灵活调度,可以使用HTTPS做加密通道,可以很好的支持移动端(安卓和IOS)。

    4.4K20

    快速搭建自己的直播服务器,完成属于你的直播服务。

    3、使用html5网页播放m3u8流媒体文件。 一、动手搭建流媒体服务器 这里我们选用开源srs流媒体服务器有兴趣的同学也可选用[Adobe Media Server 5],原理都是一样的。...hls_path的作用:直播中会将m3u8文件和ts文件输出hls_path,有了m3u8文件就可以在启动端播放了。.../objs/srs -c conf/hls.conf 二、使用OBS串流 1、新建场景,可以创建视频捕获或者窗口捕获,这里使用窗口捕获 2、在串流中配置自定义流媒体服务器,url为:rtmp:/.../127.0.0.1:1935/live,流密钥为:livestream 3、点击开始串流即可完成串流 4、这时候就会在上面我们配置的hls_path中生成ts和m3u8文件 三、观看直播 1、直播地址分别是...: rtmp url: rtmp://127.0.0.1:1935/live/livestream rtmp可用于电脑端播放,m3u8用于移动端播放。

    5.5K30

    搭建直播系统并实现h5播放rtmp

    推流只能用rtmp协议,拉流可以使用rtmp协议和hls协议。rtmp协议是adobe公司开发的开放协议,hls是苹果公司推出的直播协议。...hls_playlist_length 6s; #HLS播放列表长度 } } } 使用rtmp协议并且监听了9999端口,如果我们的推流地址填写的是rtmp://ip:9999/myapp,那么就是纯粹的...m3u8格式的文件,我们想要用http协议访问这个m3u8文件就需要再配置http模块。...配置http模块 location /live { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } alias /usr...移动端使用rtmp协议拉流 因为苹果不支持flash所以使用rtmp拉流肯定是不行的,但是可能客户给我们的就只有rtmp协议,那么我们就可以用到上面的另外一个地址,把rtmp协议转成hls协议。

    7K20

    Golang流媒体实战之七:hls拉流服务源码阅读

    拉流 在《体验开源项目lal》一文中,咱们先是用rtmp协议推流,然后就行了拉流操作,尽管只用rtmp推流,然而拉流的时候却可以使用多种协议:rtmp、flv、hls,这就有意思了,想必lal在处理推流数据时有特殊处理吧...,所以才能用各种协议来拉流 为了弄明白其中原因,本篇咱们就来阅读hls相关源码,看看rtmp推流时为hls做了什么,以及hls拉流时lal的详细逻辑 关于hls和m3u8的细节,就在本篇展开了,这个仅给出一些关键信息作为参考...推流服务源码阅读》有详细分析,所以这里就不从头说起了,只挑出hls有关代码来看 处理推流时,publish命令由server_session.go#doPublish方法负责处理,调用栈如下 server_session.go...= remux.NewRtmp2MpegtsRemuxer(group) 也就是说,推流阶段,该流对应的group对象,其成员变量rtmp2MpegtsRemuxer是有值的,看名字,这个rtmp2MpegtsRemuxer...拉流服务的源码阅读已经完成,简单来说,就是一路RTMP的推流会在处理每个音视频消息的时候,实时生成m3u8文件,以及多个TS文件,这样每当hls拉流请求到达时,就可以根据指定的文件名返回已经生成的内容了

    1.7K20

    搭建直播系统并实现h5播放rtmp

    推流只能用rtmp协议,拉流可以使用rtmp协议和hls协议。rtmp协议时adobe公司开发的开放协议,hls是苹果公司推出的直播协议。.../usr/local/etc/nginx/html/multimedia/hls目录下生成很多ts格式的视频切片和一个m3u8格式的文件,我们想要用http协议访问这个m3u8文件就需要再配置http模块...配置http模块 location /live {   types {       application/vnd.apple.mpegurl m3u8;       video/mp2t...} 当我们的推流地址填写的是rtmp://ip:9999/live/room1时,使用http://ip:80/live/room1.m3u8就能把rtmp转成hls访问这个直播流了。...移动端使用rtmp协议拉流 因为苹果不支持flash所以使用rtmp拉流肯定是不行的,但是可能客户给我们的就只有rtmp协议,那么我们就可以用到上面的另外一个地址,把rtmp协议转成hls协议。

    8.9K20

    Twitch如何实现转码器比FFmepg性能提升65%?(上)

    在实时流处理流水线内,转码模块负责将输入的RTMP流转换为具有多个版本(如1080p、720p等)的HLS格式。...可以是“宽x高”的形式或尺寸缩写的名称 r用来指定FPS b:v用来指定目标视频比特率,当有带宽限制或要求时,该功能非常有用;另外,b:a用于音频 profile是指H.264的配置文件 sws_flags...file or playlist>.m3u8 转封装源码流是一种有效的技术,但可能会导致输出HLS失去规范兼容性,从而在某些设备上无法正常播放。... .m3u8 如果我们想复合最原始版本,而转码其余的版本,我们可以用先前指定的编解码器副本替换第一个输出配置...软件性能 如图2中所讨论的,我们的RTMP-HLS转码器接收1个流的输入并产生N个流的输出(N = HLS版本的数量,例如,图5中的N = 4)。

    1.8K40

    比nginx-rtmp高三倍性能的SRS的高性能是个什么球?

    nginx在分发HLS,即m3u8文本文件和ts视频文件时,对所有连接发送的都是同一个内容,甚至可以调用sendfile让内核自己发fd去,nginx服务器自己要干的事情很少了;如果nginx必须把每个...这就是RTMP流媒体服务器麻烦的地方了,客官可以自己想下搞个什么样子的算法能最高效发送粗去~ nginx-rtmp是性能最高的服务器,比crtmpd都要高,red5根本就低两个级别,wowza也没有它高...在编译SRS时,就可以打开gcp或者gprof的性能分析选项,灰常方便就可以拿到数据。缩短了改进和优化的开发周期。 第三点,引用计数的msgs避免内存拷贝。...另外,nginx-rtmp有多进程啦。没错,可惜SRS也可以有多进程啦;可以有为何没有做呢?首先,9000个连接还不够么?1Mbps的码率可以到9Gbps了哦,伦家的机房交换机有那么牛逼么?...其次,多进程不是万金油的,不过是一种技术,不是没有多进程就低人一等,有了多进程就高人一等,别那么技术控,关键在于对于客户有啥价值。再次,可以用RTMP302支持多进程,这个是最稳定的多进程技术。

    1K20
    领券