视频流的解决方案(RTSP、RTMP、HLS、FLV)

本文探讨了如何将RTSP流转换为RTMP和HLS以在浏览器中播放,以及FLV格式的使用。RTMP依赖Flash,而HLS虽支持HTTP但有延迟问题,FLV虽无延迟但受限于Flash插件。

1.RTSP
RTSP流不能直接在浏览器播放,所以需要转码

2.RTSP 转 RTMP
RTMP的流需要在浏览器中用flash播放器,但是谷歌已经在2020年底带头不支持flash插件了

3.RTSP 转 HLS
HLS:HTTP Live Streaming,是由苹果公司提出的基于HTT的流媒体网络传输协议。他的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从不同的备用源中以不同的速率下载同样的资源。在开始一个流媒体会话时,客户端会下载一个包含源数据的extended M3U(m3u8)playlist文件,用于寻找可用的媒体流。

HLS的出现是为了解决苹果原生环境中的流媒体播放。在苹果的相关系统上Safari浏览器是可以直接打开m3u8地址的。在别的系统上需要借助h5的video标签,前端在处理HLS的视频流时,引入了video.js。【后端将视频转成HLS流,以m3u8后缀结尾。通过浏览器用video.js可以正常播放,但是发现和原视频存在5秒左右的延迟,不符合项目的实时性需求,所以有实时视频的需求不建议用HLS流播放。 】

优点:客户端支持简单,只需要支持HTTP请求即可,方便通过防火墙或者代理服务器。因为他会将数据分割成多个片段,所以客户端可以很快的实现码率切换,以适应不同的带宽,主要应用于手机端。

缺点:因其自己的实现方式,需要多次请求,HLS存在延迟的延迟比别的协议会高,不适用于直播,HLS对于网络质量的要求比较高。

4.RTSP 转 FLV (采用)
FLV:FLASH VIDEO,基于flash来播放,是目前增长最快、最为广泛的视频传播格式。

优点: flv用http服务器即可实现传统的流媒体服务器的功能。flv文件体积小,视频质量良好。众多视频网站均采用此视频格式。

缺点:要基于flash插件,当浏览器未安插或禁用flash插件,就不能播放。
 

//flv
this.videoPlayer = Videojs(document.querySelector('#mmiid'),{
       autoplay: 'muted',//自动播放
        controls: true,//用户可以与之交互的控件
        loop:true,//视频一结束就重新开始
        muted:false,//默认情况下将使所有音频静音
        aspectRatio:"16:9",//显示比率
        fullscreen:{
            options: {navigationUI: 'hide'}
        },
        techOrder: ["html5", "flvjs"],// 兼容顺序
        flvjs: {
            mediaDataSource: {
                isLive: false,
                cors: true,
                withCredentials: false
            }
        },
        sources: [{ src: urlList[0].url, type: "video/x-flv" }]
    })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值