网页直播/点播播放器支持http-flv/rtmp/m3u8等播放音视频流媒体播放器EasyPlayer-RTMP-iOS播放视频宽高变化导致播放器停止运行的问题解决

背景分析

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。

RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。

网页直播/点播播放器支持http-flv/rtmp/m3u8等播放音视频流媒体播放器EasyPlayer-RTMP-iOS播放视频宽高变化导致播放器停止运行的问题解决

EasyPlayer-RTMP播放器是一套RTMP专用的播放器,包括有:Windows、Android、iOS三个平台,区别于市面上大部分的通用播放器,EasyPlayer-RTMP系列始于成熟的商业项目,得到了各行各业(尤其是安防行业)的广泛应用,EasyPlayer-RTMP更加精炼、更加专注,具备非常低的延时,非常高RTMP协议兼容性,编码数据解析等方面,都有非常大的优势,尤其是在有特殊参数/私有自定义字段的情况下,非常容易进行定制和兼容。

网页直播/点播播放器支持http-flv/rtmp/m3u8等播放音视频流媒体播放器EasyPlayer-RTMP-iOS播放视频宽高变化导致播放器停止运行的问题解决

EasyPlayer-RTMP-iOS播放视频宽高变化了,播放器崩溃

分析问题

播放过程中,当视频宽高变化了,解码器会崩溃,导致app停止运行。

解决问题

视频帧解码前,当获取到关键帧I帧时,当前帧的宽高需要和之前帧的宽高作比较,并记录下是否有变化:

网页直播/点播播放器支持http-flv/rtmp/m3u8等播放音视频流媒体播放器EasyPlayer-RTMP-iOS播放视频宽高变化导致播放器停止运行的问题解决

当isInit为YES时,需要重新初始化解码器:

网页直播/点播播放器支持http-flv/rtmp/m3u8等播放音视频流媒体播放器EasyPlayer-RTMP-iOS播放视频宽高变化导致播放器停止运行的问题解决

 

上一篇:C语言程序员都是乐于思考的,为什么逐项赋值没有memcpy() 快?


下一篇:Vue-cli3项目引入网页视频流媒体播放器EasyPlayer.JS报videojs not definde错误如何解决?