400-056-6681

如今的直播类H5开发应该怎么做?

聚通达 2020-05-30 14:06:12

如今社会智能化应用越来越广,it技术也有很多,也随着微信的不断发展直播类H5开发目前是非常火的,很多商家都急切的蹭一波热度。那么直播类H5开发应该怎么做?

一、视频流协议HLS与RTMP


1. HTTP Live Streaming


HTTP Live Streaming(简称 HLS)是一个基于 HTTP 的视频流协议,由 Apple 公司实现,Mac OS 上的 QuickTime、Safari 以及 iOS 上的 Safari都能很好的支持 HLS,高版本 Android 也增加了对 HLS 的支持。一些常见的客户端如:MPlayerX、VLC 也都支持 HLS 协议。


HLS 协议基于 HTTP,而一个提供 HLS 的服务器需要做两件事:


编码:以 H.263 格式对图像进行编码,以 MP3 或者 HE-AAC 对声音进行编码,最终打包到 MPEG-2 TS(Transport Stream)容器之中;


分割:把编码好的 TS 文件等长切分成后缀为 ts 的小文件,并生成一个 .m3u8 的纯文本索引文件;


浏览器使用的是 m3u8 文件。m3u8 跟音频列表格式 m3u 很像,可以简单的认为 m3u8 就是包含多个 ts 文件的播放列表。播放器按顺序逐个播放,全部放完再请求一下 m3u8 文件,获得包含最新 ts 文件的播放列表继续播,周而复始。整个直播过程就是依靠一个不断更新的 m3u8 和一堆小的 ts 文件组成,m3u8 必须动态更新,ts 可以走 CDN。


HLS 协议本质还是一个个的 HTTP 请求 / 响应,所以适应性很好,不会受到防火墙影响。但它也有一个致命的弱点:延迟现象非常明显。如果每个 ts 按照 5 秒来切分,一个 m3u8 放 6 个 ts 索引,那么至少就会带来 30 秒的延迟。如果减少每个 ts 的长度,减少 m3u8 中的索引数,延时确实会减少,但会带来更频繁的缓冲,对服务端的请求压力也会成倍增加。所以只能根据实际情况找到一个折中的点。


2. Real Time Messaging Protocol


Real Time Messaging Protocol(简称 RTMP)是 Macromedia 开发的一套视频直播协议,现在属于 Adobe。这套方案需要搭建专门的 RTMP 流媒体服务如 Adobe Media Server,并且在浏览器中只能使用 Flash 实现播放器。它的实时性非常好,延迟很小,但无法支持移动端 WEB 播放是它的硬伤。


虽然无法在iOS的H5页面播放,但是对于iOS原生应用是可以自己写解码去解析的, RTMP 延迟低、实时性较好。


浏览器端,HTML5 video,标签无法播放 RTMP 协议的视频,可以通过 video.js 来实现。


3. 视频流协议HLS与RTMP对比


二、H5直播形式


目前直播界面展示形式,页面结构通常可以看到其分成三层:


1. 背景视频层


2. 关注、评论模块


3. 点赞动画


而现行H5直播页面,其可以通过实现方式分为:


1. 底部视频背景使用video视频标签实现播放。


2. 关注、评论模块利用 WebScoket 来实时发送和接收新的消息通过DOM 和 CSS3 实现。


3. 点赞利用 CSS3 动画。


了解完直播形式之后,接下来整体了解直播流程。


三、H5直播整体流程


直播整体流程大致可分为三大流程:


视频采集端:可以是电脑上的音视频输入设备、或手机端的摄像头、或麦克风,目前以移动端手机视频为主。


直播流视频服务端:一台Nginx服务器,采集视频录制端传输的视频流(H264/ACC编码),由服务器端进行解析编码,推送RTMP/HLS格式视频流至视频播放端。


视频播放端:可以是电脑上的播放器(QuickTime Player、VLC),手机端的native播放器,还有就是 H5 的video标签等,目前还是以手机端的native播放器为主。


四、H5录制视频


对于H5视频录制,可以使用强大的 webRTC (Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的技术,缺点是只在 PC 的 Chrome 上支持较好,移动端支持不太理想。


虽然Google一直在推WebRTC,目前已有不少成型的产品出现,但是大部分移动端的浏览器还不支持 webRTC(最新iOS 10.0也不支持),所以真正的视频录制还是要靠客户端(iOS,Android)来实现,效果会好一些。


所以主播端建议用iOS原生应用调用摄像头录制视频,其流程大致为:


1. 音视频的采集,利用AVCaptureSession和AVCaptureDevice可以采集到原始的音视频数据流。


2. 对视频进行H264编码,对音频进行AAC编码,在iOS中分别有已经封装好的编码库(x264编码、faac编码、ffmpeg编码)来实现对音视频的编码。


3. 对编码后的音、视频数据进行组装封包。


4. 建立RTMP连接并上推到服务端。


五、服务器端搭建Nginx+Rtmp直播流服务


六、直播流转换格式、编码推流


当服务器端接收到采集视频录制端传输过来的视频流时,需要对其进行解析编码,推送RTMP/HLS格式视频流至视频播放端。通常使用的常见编码库方案,如x264编码、faac编码、ffmpeg编码等。


鉴于 FFmpeg 工具集合了多种音频、视频格式编码,我们可以优先选用FFmpeg进行转换格式、编码推流。


七、H5直播视频播放


移动端iOS和 Android 都天然支持HLS协议,做好视频采集端、视频流推流服务之后,便可以直接在H5页面配置 video 标签播放直播视频。


八、H5直播开发技术方案总结


本方案从视频采集上传,服务器处理视频推流,以及H5页面播放直播视频一整套流程,具体阐述了直播实现原理,实现过程中会遇到很多性能优化问题。


1. H5 HLS 限制必须是H264+AAC编码。


2. H5 HLS 播放卡顿问题,server 端可以做好分片策略,将 ts 文件放在 CDN 上,前端可尽量做到 DNS 缓存等。


3. H5 直播为了达到更好的实时互动,也可以采用RTMP协议,通过video.js实现播放。


以上就是直播类H5开发应该怎么做的介绍了,聚通达科技作为专业的互联网服务商,能够根据客户的需求来进行H5开发定制,深受广大客户的喜爱与信赖。

推荐阅读

聚通达董事长侯战斌先生 再次入选“2022年全球首席营销官(中国区)五十强”

聚通达董事长侯战斌先生 再次入选“2022年全球首席营销官(中国区)五十强”

聚通达荣获“2022年度优秀会员单位”荣誉称号

聚通达荣获“2022年度优秀会员单位”荣誉称号

聚通达董事长侯战斌先生入选《数字中国智慧城市科技创新案例精选(2022)》机构领军人物

聚通达董事长侯战斌先生入选《数字中国智慧城市科技创新案例精选(2022)》机构领军人物

【大事件】2022(第五届)行业信息化技术创新发展峰会成功举办! 聚通达荣获“2022行业信息化优秀解决方案”奖!

2022(第五届)行业信息化技术创新发展峰会成功举办! 聚通达荣获“2022行业信息化优秀解决方案”奖!

【大事件】聚通达董事长侯战斌:数字技术与实体经济融合发展应以满足需求作为出发点

聚通达董事长侯战斌:数字技术与实体经济融合发展应以满足需求作为出发点

聚通达通过2021年度第二批北京市市级企业技术中心认定

科技是第一生产力

中国广告主协会在京成功召开2022年“中国品牌日”专题座谈会

“2023年全球首席营销官(中国区)”候选人推选活动

南通市政府领导莅临聚通达考察交流 旨在升级数字技术赋能智慧城市发展

考察交流

聚通达齐聚交流 朝阳五支部召开“数字经济与文创建设”

聚通达齐聚交流 朝阳五支部召开“数字经济与文创建设”

南通市政府领导莅临聚通达考察交流 旨在升级数字技术赋能智慧城市发展

南通市政府领导莅临聚通达考察交流 旨在升级数字技术赋能智慧城市发展

联系我们

  • 北京 | 总部

    北京朝阳区惠河南街1102号国粹苑A座四层4063-4078

  • 西安

    西安市高新区高新路67号含光佳苑小区A幢1单元308室

  • 上海

    上海市长宁区金钟路633号
    晨讯科技大楼b座716号

  • 广州

    广州市黄埔区科学大道60号
    绿地中央广场A2栋11楼1111单元

  • 沈阳

    沈阳市和平区南五马路3号
    中驰国际大厦5楼521室

  • 青岛

    青岛市李沧区北崂路1022号中
    艺1688创意产业园D3楼420室

  • 成都

    四川省成都市武侯区
    蜀都中心二期1号楼3单元15楼

  • 武汉

    武汉市洪山区佳园路创业广场
    7-5栋3层306室

  • 长春

    长春市净月区生态广场伟峰
    资讯中心4207

  • 新疆

    新疆乌鲁木齐市高新区长春中路
    819号澳龙大厦B座21层2108

17年 聚通达信赖有我
360° 一站式解决方案
19000+ 用户共同见证
7*24 多渠道全面支持
专业服务 强大的定制服务
  • 友情链接
©北京聚通达科技股份有限公司版权所有 京ICP备07504919号-17 增值电信业务经营许可证:B1.B2-20181554 京公网安备11010502039326

联系我们

  • 北京 | 总部

    北京朝阳区惠河南街1102号国粹苑A座四层4063-4078

  • 西安

    西安市高新区高新路67号含光佳苑小区A幢1单元308室

  • 上海

    上海市长宁区金钟路633号晨讯科技大楼b座716号

  • 广州

    广州市黄埔区科学大道60号绿地中央广场A2栋11楼1111单元

  • 沈阳

    沈阳市和平区南五马路3号中驰国际大厦5楼521室

  • 青岛

    青岛市李沧区北崂路1022号中艺1688创意产业园D3楼420室

  • 成都

    四川省成都市武侯区蜀都中心二期1号楼3单元15楼

  • 武汉

    武汉市洪山区佳园路创业广场7-5栋3层306室

  • 长春

    长春市净月区生态广场伟峰资讯中心4207

  • 新疆

    新疆乌鲁木齐市高新区长春中路819号澳龙大厦B座21层2108

长按识别或截图保存关注公众号

©北京聚通达科技股份有限公司版权所有

京ICP备07504919号-17

增值电信业务经营许可证:B1.B2-20181554

京公网安备11010502039326