网络直播 你需要先了解这一点
一、直播知识小科普
典型直播流程:录制-编码-网络传输(流媒体-服务器处理-CDN分发)-解码-播放IPB:常见的视频压缩方案,其中I帧代表关键帧,B帧代表前向差异帧,P帧代表一组图片:GOP越长(I帧之间的间隔越大)虽然B帧的压缩比高,但解码时CPU压力会更大。直播音视频质量主要指标:内容延时、流畅度、首帧时长。音视频直播需要克服的主要问题:网络环境、多人连接、主辅路、浏览器兼容性、CDN支持等。MSE(媒体源扩展):W3C标准API,解决HTML5的流问题(HTML5只支持mp4/webm非流格式,不支持FLV),允许JavaScript。您可以使用MediaSource.isTypeSupported()来确定是否支持某个特定的地雷类型。在ios Safari中不受支持。
文件格式/包格式/容器格式:一种承载视频的格式,如flv、avi、mpg、vob、mov、mp4等。视频如何编码和解码与编解码器有关。例如,MP4格式可以根据编解码器的不同分为nMP4和fMP4。NMP4由嵌套的box组成,而fMP4格式由一系列剪辑组成,所以只有后者不需要加载整个文件就可以播放。编解码器:多媒体数字信号编解码器,可压缩(CO)和解压缩(dec)音频和视频。CODEC技术可以有效减少数字存储占用的空间。在计算机系统中,用硬件完成CODEC可以节省CPU资源,提高系统的运行效率。常见的视频编码:MPEG、H264、RealVideo、WMV、QuickTime。常用音频编码:PCM、WAV、OGG、APE、AAC、MP3、Vorbis、Opus。
二、现有方案比较
RTMP协议
基于TCPadobe垄断,国内支持度高的浏览器依靠Flash播放,延时2~5秒
RTP协议
实时Transpo。
rt P
Rotocol,IETF在1996年提出的标准。
基于UDP的视频监控、视频会议、IP电话等实时应用CDN厂商和浏览器不支持
HLS 协议
Http Live Streaming。苹果提出的基于HTTP的流媒体传输协议HTML5直接支持(视频),适用于APP直播。只有Safari和Edge对PC的支持必须是H264 AAC编码,因为剪切的音视频片段都是传输的,导致的大内容延迟。
flv.js
Bilibli开源,解析flv数据,由MSE打包成fMP4并馈入编码为H264 AAC的视频标签,流媒体内容采用HTTP streaming IO(fetch或stream)或WebSocket协议,延时2~5秒,第一帧比RTMP
WebRTC协议
快。
1.谷歌推送已经成为W3C标准。
2.现代浏览器支持潮流,X5也支持(微信、QQ)
3.基于UDP,延迟低,网络抗弱能力强,比flv.js更有优势
4.支持网络上行能力
5.代码是H264 OPUS
6.提供网络地址转换穿透技术
事实上,当用户数量很大时,流媒体设备的性能要求很高,复杂的权限管理很难实现,因此采用P2P架构基本不可行。腾讯课堂针对个人用户提供上游,大量用户只拉流的场景,实施了P2S解决方案。进一步研究可以阅读jaychen的系列文章《WebRTC直播技术》。
三、小程序+直播
技术方案
以RTMP为基地。官方说底层使用的是HTTP/2的内部传输机制,但它是基于UDP的,这让我很困惑。直播推送器和直播播放器不限制第三方云服务直接使用腾讯云的视频直播功能,只需配置推送url和播放url即可推送url:
版权声明:网络直播 你需要先了解这一点是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。