HTML5 视频直播

一、视频基础知识:

内容元素:图像、音频、元信息

编解码器:视频、音频

容器文件格式:MP3、MP4、FLV、AVI


二、flash和video的差别

Flashvideo
移动端兼容性差移动端兼容性好
可以播放直播视频,延迟低可以播放直播视频,延迟高
学习Flash开发语言,有一定成本提供基于js的api,前端开发更容易

三、使用video常见问题


1、视频内联播放

在ios的Safari中无法内联,webview可以定制,解决如下:

webview.allowsInlineMediaPlayback = YES
<video webkit-playsinline src="">

android天然支持内联播放,但不排除部分机型使用系统播放器播放。


2、视频自动播放

设置autoplay属性(ios)

andriod中自动播放需求,事件回调里执行play()

webview.mediaPlaybackRequiresUserAction = No

3、视频宽高设置

单独设置高或宽,保持其纵横比


4、视频全屏问题

伪全屏:通过设置样式和布局将视频内容撑满屏幕,无法覆盖webview;   (弹幕文字

真全屏:一般是调用系统的native播放器来打到全屏观看,覆盖在webview之上。

真全屏的三个事件:

video.webkitEnterFullScreen();

webkitbeginfullscreen事件

webkitendfullscreen事件


5、视频常用事件

canplaythrough当浏览器预计能够在不停袭来进行缓冲的情况下持续播放指定的视频时,会触发。(在ios上兼容良好,但andriod上不兼容)

timeupdate当目前播放位置已更改时会触发。


6、video开源组件推荐

用videoJs解决



四、视频直播结构(PC端)

1、视频录制端   Native、webRTC

2、视频播放端   flash、video、Native

3、视频服务器端  nginx

webRTC是网页实时通信,提供js的api获取视频数据,利用webscoket数据交互

在 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。


五、Native端录制视频(移动端)

1、系统提供丰富的API接口可以调用

2、提供丰富的编解码功能。

3、性能比web页面要好


六、RTMP协议和HLS协议


协议原理延时优点使用场景
RTMP长链接TCP每个时刻收到数据后立即发送2s延时低即时互动
HLS短连接HTTP集合一段时间数据生成ts分片文件更新m3u810s-30s跨平台h5直播


七、移动直播性能指标

1、视频首屏打开耗时

2、直播视频秒开

3、HLS直播延时



PS:

HTTP/2比HTTP1的重大改进:

1、多路复用:允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。

2、二进制分帧:

 3、首部压缩

4、服务器推送:服务器可以对客户端的一个请求发送多个响应。




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值