直播流IOS无法播放问题排查

346 阅读3分钟

问题:

IOS手机无法播放flv协议视频,改为hls协议后,IOS播放H264视频编码格式正常,但是H265无法播放

解决:

使用 花椒播放器,在IOS上通过 Webassembly编解码,播放flv协议视频解决此问题。

视频插件:花椒播放器 github.com/ErosZy/WXIn…

示例地址:eroszy.github.io/WXInlinePla…

RTMP

Adobe 公司开发的一个基于TCP的**应用层协议**,也就是说,RTMPHTTP/HTTPS一样,是应用层的一个协议族。RTMPTCP通道上一般传输的是flv格式流**。**

FLV

FLV(Flash Video)是Adobe公司推出的一种 **流媒体格式**,由于其封装后的音视频文件体积小、封装简单等特点,非常适合于互联网上使用。目前主流的视频网站基本都支持 flv 。采用flv格式封装的文件后缀为.flv

注意:RTMP是网络传输协议,而flv则是视频的封装格式。

HLS

HLS 全称是 HTTP Live Streaming,是一个由 Apple 公司提出的基于 HTTP**媒体流传输协议**,用于实时音视频流的传输。目前HLS协议被广泛的应用于视频点播和直播领域。

HLS 的工作原理是把整个流分成一个个小的基于 HTTP 的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的 extended M3U (m3u8) playlist文件,用于寻找可用的媒体流。

M3U8

M3U8,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础。

注意:HLS协议视频流,使用的就是M3U8格式。

WebRTC

WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。

WebRTC(Web Real-Time Communications)是一项 实时通讯技术 ,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。

参考:developer.mozilla.org/zh-CN/docs/…

H264、H265

H264H265 都是一种 视频编码 标准。

视频编码:指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。常见的音频视频编码有MPEG系列与H.26X系列。

H.264,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。这个标准通常被称之H.264/AVC。

H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。

H.265,(HEVC,High Efficiency Video Coding,高效率视频编码)是新一代视频编码技术。它围绕现有视频编码标准H.264,保留原来的某些技术,使用新技术对某些方面进行改进优化。