网页直播/点播播放器支持http-flv/rtmp/m3u8等播放流媒体音视频播放器EasyPlayer-RTMP-iOS使用YUV渲染画面的方法

背景分析

RTMP协议是应用层协议,是要靠底层可靠的传输层协议(通常是TCP)来保证信息传输的可靠性的。在基于传输层协议的链接建立完成后,一个RTMP协议的流媒体推流需要经过以下几个步骤:握手,建立连接,建立流,推流。RTMP连接都是以握手作为开始的。建立连接阶段用于建立客户端与服务器之间的“网络连接”;建立流阶段用于建立客户端与服务器之间的“网络流”;推流阶段用于传输视音频数据。

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

功能特点1.png

EasyPlayer-RTMP方案架构

EasyPlayer-RTMP-iOS-工作流程

EasyPlayerRTMP.png

EasyPlayer-RTMP-Android-工作流程

EasyPlayerRTMP.png

EasyPlayer-RTMP-iOS如何使用YUV渲染画面?

分析问题:

解码后获取的视频帧,需要分解成Y、U、V的值,再送到OpenGL去渲染。

解决问题:

解码后获取的视频帧的数据,添加到KxVideoFrameYUV,并通过

  • (instancetype) handleVideoFrame:(AVFrame *)videoFrame
    videoCodecCtx:(AVCodecContext *)videoCodecCtx;方法,分解出Y、U、V的值:

51.png52.png

最后通过KxMovieGLView渲染:

[kxGlView render:frame]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值