rtsp

Web 播放 RTSP 推流最佳方案实践

背景

最近接到一个需求,前端需要接一段视频流播放,刚接到的时候感觉这不挺简单的吗,立刻祭出我的 video.js 大法,不过当我拿到后端发给我的视频流地址的时候 rtsp://video-stream/god 我有点蒙,不知道此为何物,但是我还是尝试着用 <video srd="rtsp://video-stream/god" /> 挣扎了一下,结果却是不尽如人意,随后我在官方仓库也是得到了认证:…

浏览器播放rtsp视频流:4、jsmpeg+go实现局域网下的rtsp视频流web端播放

1.前言

之前的rtsp转webrtc的方案存在如下缺陷:1.只支持h264;2.受限于webrtc的理解难度以及搭建turn/stun的p2p服务等问题,对于局域网下的业务需求来说有些杀猪用牛刀的意思;3.ios不支持webrtc。

基于以上原因,我又找到了一些其它的方案进行了测试,目前看jsmpeg的方案更加适合我们的需求,而且普通压缩大小为135kb,gzip方式压缩后仅仅42kb,在嵌入式场景下也可以使用。只是转码服务需要ffmpeg,在不进程裁剪开发的情况下,需要在设备或者PC或者局域网路由器设备等上安装的该插件服务会比较大。…

一文读懂RTSP协议-【RTSP协议详解】

RTSP简介

RTSP(Real Time Streaming Protocol)是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制。服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。而且允许同时多个串流需求控制(Multicast),除了可以降低服务器端的网络用量,还可以支持多方视频会议(Video onference)。 因为与HTTP1.1的运作方式相似,所以代理服务器《Proxy》的快取功能《Cache》也同样适用于RTSP,并因RTSP具有重新导向功能,可视实际负载情况来转换提供服务的服务器,以避免过大的负载集中于同一服务器而造成延迟。…

来自具有低延迟的 RTSP IP 摄像机的基于浏览器的 WebRTC 流

来自具有低延迟的 RTSP IP 摄像机的基于浏览器的 WebRTC 流

rtsp-低延迟-webrtc

据报道,如今已安装数亿台视频监控 IP 摄像机。当然,并非所有这些都需要低延迟视频播放。视频监控通常是静态的——流记录到存储中并被分析以检测运动。有很多软件和硬件视频监控解决方案可以很好地完成它们的工作。

在本文中,我们将介绍IP 摄像机的稍微不同的用法,即 -需要低延迟通信的应用程序中的在线广播。

首先,让我们来解决关于网络摄像头和 IP 摄像头的常见术语误解。

 

网络摄像头是一种没有自己的 CPU 和网络接口的视频捕获设备。网络摄像头需要连接到计算机、智能手机或任何其他设备才能使用其网络功能和 CPU。

应用程序中的在线广播

IP 摄像机是一个独立的设备,具有自己的网络接口和一个 CPU,用于压缩捕获的视频并将其发送到网络。因此,IP 摄像机是一台独立的微型计算机,可以连接到网络,不需要任何其他设备。也就是说,它直接向 Internet 广播。

低延迟是 IP 摄像机和在线广播的罕见要求。当视频信号源与该流的观众交互时,就会出现对低延迟连接的需求。

IP 摄像机和在线广播

低延迟通常是各种游戏使用场景的要求。例如:实时视频拍卖、真人荷官视频赌场、带主播的交互式在线电视节目、远程四轴飞行器控制等。

游戏使用场景

现场赌场经销商在工作。

    

在html5页面上播放 RTSP 的 7 种方法

在页面上流式传输 RTSP 的 7 种方法

在页面上流式传输 RTSP 的 7 种方法

在本文中,我们展示了 7 种不同的技术方法,用于在浏览器的网页上显示来自支持 RTSP 的 IP 摄像机的视频流。

通常,浏览器不支持 RTSP,因此使用中间服务器为浏览器转换视频流。

 

方法 1 – RTMP

浏览器不支持 RTMP 协议,但猜猜谁支持?忠实的老版Flash Player,虽然不支持所有浏览器,但运行良好,因此可以显示视频流。

Flash播放器

播放器的代码基于 Action Script 3 构建,如下所示:

1
2
3
var nc:NetConnection = nc.connect("rtmp://192.168.88.59/live",obj);
var subscribeStream:NetStream =
                    

使用OBS-Studio软件推流直播教程,支持RTMP及RTSP两种协议

一、基于RTMP协议的推流直播

首先需要手动搭建RTMP流服务器,搭建过程可以借鉴我的另外一篇文章 传送门 的第章节。
打开OBS软件,新建 场景->新建 来源

image.png

控件位置有个设置,选择服务,填写服务器串流密钥,点击确定

image.png

控件位置,点击开始推流,就OK了
接下来使用VLC软件进行测试下效果
输入网络URL,这块跟上图设置的一致

image.png

看看效果

image.png

搞定!!!

二、基于RTSP协议的推流直播

这个要稍微复杂一点,需要借助OBS的插件去实现该功能。软件地址附上:https://github.com/iamscottxu/obs-rtspserver/releases
另外,OBS还有很多插件,有兴趣的可以去深入学习,具体可以参考

            

网络摄像头RTSP视频流WEB端实时播放实现方案

IPC视频流怎么实时在WEB浏览器播放,视频流格式是RTSP。
下面我整理了自己实现的方案以及网上看到的一些方案

一、FFmpeg + nginx 将转 hls 通过 video.js 在支持h5浏览器播放(我实现的)

参见:Nginx+FFmpeg实现rtsp流转hls流,在WEB通过H5 video实现视频播放

不足:hls延迟较rtmp、http-flv大

二、FFmpeg + nginx-rtmp-module + h5 video,rtsp转rtmp播放

https://blog.csdn.net/gui66497/article/details/78590190
https://blog.csdn.net/LLittleF/article/details/81111713

注:通过video.js播放rtmp流。需要将代码放到服务器,本地windows电脑无法播放

不足:需要浏览器开启flash

三、FFmpeg + nginx-http-flv-module + flv.js,rtsp转rtmp,直接播放flv格式

基于nginx-rtmp-module,通过配置将rtmp转为flv,最后通过flv.js播放。
https://github.com/winshining/nginx-http-flv-module/blob/master/README.CN.md
https://segmentfault.com/a/1190000016043297
https://blog.csdn.net/qq_22633333/article/details/96288603#comments

这种方式是最理想的,我目前找到的方案。当然单指不想花钱买收费方案的。

四、WebRTC

https://github.com/lulop-k/kurento-rtsp2webrtc
https://www.jianshu.com/p/1ddfa72de165