Harmony OS原生端渲染RTMP流功能实现

前段时间公司收到鸿蒙的邀请,希望我们加入鸿蒙的生态应用。领导要求我们将原先安卓SDK实现的功能在鸿蒙生态上1:1还原。相信这也是当前很多公司在做的事情。

我们项目原先有获取硬件实时视频流展示的需求,这块功能也耗费了两周的时间才打通测试完毕,抽时间整理一下之鸿蒙上播放Rtmp流所经历的各个步骤及遇到的问题。

首先我们需要在建立一个native工程

原先在安卓项目中,我们渲染opengl的数据采用的是GLSurfaceView,依赖Render去逐帧渲染。在harmony os中,渲染这类数据只能依赖XComponent这个控件,或者直接采用三方播放器ijkplayer去播放。最终我们采用XComponent实现了rtmp流的播放。

首先准备工作:

我们要基于鸿蒙的交叉编译环境编译出我们所需要的ffmpeg库,我是基于ffmpeg4.2编译出来的库,对应链接地址:https://download.csdn.net/download/Crazy9599/89886706

下面是鸿蒙交叉编译的步骤,大家可参考自行编译:

按步骤从环境搭建到编译命令可按顺序操作

​​​​​​​https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/lycium/doc/ohos_use_sdk/OHOS_SDK-Usage.md

https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/lycium/README.md#/openharmony-sig/tpc_c_cplusplus/blob/master/lycium/template/HPKBUILD
https://gitee.com/openharmony-sig/tpc_c_cplusplus/tree/master/thirdparty/FFmpeg

这里注意集成的方式,编译出的.so文件并不是直接粘出来就能够使用的。在鸿蒙工程中需要有两处存放.so文件的地方,编译出的.so.1这样的文件需要通过命令判断使用的是哪个so文件

下面就是将XComponent控件与native侧的视图进行绑定即可渲染出相应的rtmp流,具体等后面一篇文档再详细说明XComponent与native侧的绑定及回调

相关推荐
小冷爱学习!4 小时前
华为动态路由-OSPF-完全末梢区域
服务器·网络·华为
2501_904447745 小时前
华为发力中端,上半年nova14下半年nova15,大力普及原生鸿蒙
华为·智能手机·django·scikit-learn·pygame
MarkHD5 小时前
第十八天 WebView深度优化指南
华为·harmonyos
塞尔维亚大汉6 小时前
OpenHarmony(鸿蒙南向)——平台驱动开发【MIPI CSI】
harmonyos·领域驱动设计
别说我什么都不会6 小时前
鸿蒙轻内核M核源码分析系列十五 CPU使用率CPUP
操作系统·harmonyos
feiniao86517 小时前
2025年华为手机解锁BL的方法
华为·智能手机
塞尔维亚大汉8 小时前
OpenHarmony(鸿蒙南向)——平台驱动开发【I3C】
harmonyos·领域驱动设计
VVVVWeiYee8 小时前
BGP配置华为——路径优选验证
运维·网络·华为·信息与通信
今阳10 小时前
鸿蒙开发笔记-6-装饰器之@Require装饰器,@Reusable装饰器
android·app·harmonyos
余多多_zZ10 小时前
鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )
学习·华为·harmonyos·鸿蒙·鸿蒙系统