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侧的绑定及回调

相关推荐
安卓开发者1 小时前
鸿蒙NEXT应用接入快捷栏:一键直达,提升用户体验
java·harmonyos·ux
HMS Core1 小时前
消息推送策略:如何在营销与用户体验间找到最佳平衡点
华为·harmonyos·ux
Brianna Home2 小时前
【案例实战】鸿蒙分布式调度:跨设备协同实战
华为·wpf·harmonyos
Bert丶seven2 小时前
鸿蒙Harmony实战开发教学(No.4)-RichText组件基础到高阶介绍篇
华为·harmonyos·arkts·鸿蒙·鸿蒙系统·arkui·开发教程
鸿蒙小白龙3 小时前
openharmony之分布式蓝牙实现多功能场景设备协同实战
分布式·harmonyos·鸿蒙·鸿蒙系统·open harmony
爱吃水蜜桃的奥特曼4 小时前
玩Android Harmony next版,通过项目了解harmony项目快速搭建开发
android·harmonyos
鸿蒙小白龙5 小时前
openharmony之分布式购物车开发实战
分布式·harmonyos·鸿蒙·鸿蒙系统·open harmony
鸿蒙小白龙5 小时前
openharmony之分布式相机开发:预览\拍照\编辑\同步\删除\分享教程
分布式·harmonyos·鸿蒙·鸿蒙系统·open harmony
安卓开发者7 小时前
鸿蒙NEXT鼠标光标开发完全指南
华为·计算机外设·harmonyos
●VON13 小时前
重生之我在大学自学鸿蒙开发第九天-《分布式流转》
学习·华为·云原生·harmonyos·鸿蒙