OH-stream v1
OH!直播是一款基于OpenHarmony系统开发的实时视频直播跨平台应用。项目利用ArkUI-X框架、FFmpeg和OpenGL ES技术,支持RTSP协议的视频流拉取、解码和渲染,提供高清流畅的视频播放体验。应用旨在推动国产化系统生态发展,为核心技术自主可控贡献力量。
avformat_open_input
avcodec_send_packet
avcodec_receive_frame
glTexImage2D
glDrawElements
SetSurfaceId
DestroySurface
ChangeSurface
GetXComponentStatus
├── entry/ │ ├── src/ │ │ ├── main/ │ │ │ ├── cpp/ │ │ │ │ ├── common/ # 公共头文件 │ │ │ │ ├── manager/ # PluginManager模块 │ │ │ │ ├── render/ # OpenGL渲染模块 │ │ │ │ ├── thirdparty/ # FFmpeg库 │ │ │ │ ├── types/ # 类型定义 │ │ │ │ ├── napi_init.cpp # NAPI接口实现 │ │ │ │ ├── video_stream_handler.cpp # 视频流处理模块 │ │ │ ├── ets/ │ │ │ │ ├── entryability/ # 主界面逻辑 │ │ │ │ ├── pages/ # 页面定义 │ │ ├── mock/ # 测试用例 │ │ ├── ohosTest/ # 测试模块 │ │ ├── test/ # 单元测试 ├── build-profile.json5 # 构建配置 ├── obfuscation-rules.txt # 混淆规则
ArkUI-X是一个自渲染引擎的跨平台UI框架,可以让开发者使用ArkTS编写跨端UI,它具备简洁自然的UI信息语法、丰富的UI组件、多维的状态管理,以及实时界面预览等相关能力,帮助提升应用开发效率,并能在多种设备上实现生动而流畅的用户体验。目前支持OpenHarmony、HarmonyOS、Android、iOS四个平台,后续会逐步增加更多平台支持。开发者基于一套主代码,就可以构建支持多平台的精美、高性能应用。 实时视频流播放在直播、安防等场景下应用非常普遍,本赛题要求参赛者使可以使用Xcomponet和ffmpeg开发一个基于ArkUI-X跨平台框架的实时视频直播应用,直播的视频流来源不限制,需要使用如RTP/RTSP协议接收。
晏国淇 yanguoqi1@huawei.com 刘 龙 long.liu@huawei.com
ArkUI-X跨平台项目介绍:https://gitcode.com/arkui-x/docs/blob/master/zh-cn/README.md XComponent介绍:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-xcomponent-V5
OpenHarmony社区可提供软硬件开发资源
https://www.chaspark.com/#/races/competitions/1136107857761329152
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
OH!直播 - 基于OpenHarmony的实时视频直播跨平台应用
项目简介
OH!直播是一款基于OpenHarmony系统开发的实时视频直播跨平台应用。项目利用ArkUI-X框架、FFmpeg和OpenGL ES技术,支持RTSP协议的视频流拉取、解码和渲染,提供高清流畅的视频播放体验。应用旨在推动国产化系统生态发展,为核心技术自主可控贡献力量。
功能特性
技术栈
核心模块
视频流拉取与解码模块
avformat_open_input连接RTSP流。avcodec_send_packet和avcodec_receive_frame完成视频解码。视频数据渲染模块
glTexImage2D上传YUV数据到GPU纹理,并调用glDrawElements完成渲染。视频播放模块
插件管理模块
SetSurfaceId: 创建或获取Native窗口和视频渲染器,并初始化渲染环境。DestroySurface: 销毁指定Surface的资源,释放内存。ChangeSurface: 动态调整Surface的尺寸。GetXComponentStatus: 获取XComponent的初始化状态。项目结构
性能优化
贡献者
赛题题目:实时视频直播跨平台应用开发
赛题说明:
ArkUI-X是一个自渲染引擎的跨平台UI框架,可以让开发者使用ArkTS编写跨端UI,它具备简洁自然的UI信息语法、丰富的UI组件、多维的状态管理,以及实时界面预览等相关能力,帮助提升应用开发效率,并能在多种设备上实现生动而流畅的用户体验。目前支持OpenHarmony、HarmonyOS、Android、iOS四个平台,后续会逐步增加更多平台支持。开发者基于一套主代码,就可以构建支持多平台的精美、高性能应用。 实时视频流播放在直播、安防等场景下应用非常普遍,本赛题要求参赛者使可以使用Xcomponet和ffmpeg开发一个基于ArkUI-X跨平台框架的实时视频直播应用,直播的视频流来源不限制,需要使用如RTP/RTSP协议接收。
赛题要求:
性能 30 流畅度 跨平台代码复用 20
代码规范性 10 代码符合OpenHarmony社区规范,按照规范类型扣分点,每条减少1分,直至为0 文档质量 10 文档能将从架构和技术实现角度,说明架构和技术竞争力。
赛题联系人:
晏国淇 yanguoqi1@huawei.com 刘 龙 long.liu@huawei.com
参考资料:
参赛资源支持:
赛题交流讨论链接:
https://www.chaspark.com/#/races/competitions/1136107857761329152