OpenHarmony音视频—opus

简介

Opus是一种用于在互联网上进行交互式语音和音频传输的编解码器。它可以从低比特率窄带语音扩展到非常高的高品质立体声音乐。

下载安装

直接在OpenHarmony-SIG仓中搜索opus并下载。

使用说明

以OpenHarmony 3.1 Beta的rk3568版本为例

  1. 将下载的opus库代码存在以下路径:./third_party/opus

  2. 修改添加依赖的编译脚本,路径:/developtools/bytrace_standard/ohos.build

    {
    "subsystem": "developtools",
    "parts": {
    "bytrace_standard": {
    "module_list": [
    "//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core",
    "//developtools/bytrace_standard/bin:bytrace_target",
    "//developtools/bytrace_standard/bin:bytrace.cfg",
    "//developtools/bytrace_standard/interfaces/kits/js/napi:bytrace",
    "//third_party/opus:opus_targets",
    ],
    "inner_kits": [
    {
    "type": "so",
    "name": "//developtools/bytrace_standard/interfaces/innerkits/native:bytrace_core",
    "header": {
    "header_files": [
    "bytrace.h"
    ],
    "header_base": "//developtools/bytrace_standard/interfaces/innerkits/native/include"
    }
    }
    ],
    "test_list": [
    "//developtools/bytrace_standard/bin/test:unittest"
    ]
    }
    }
    }

  3. 编译:./build.sh --product-name rk3568 --ccache

  4. 生成库文件和一些可执行测试文件,路径:out/rk3568/developtools/profiler

接口说明

  1. 解码多流Opus数据包: opus_multistream_decode()
  2. 使用浮点输出解码多流Opus数据包: opus_multistream_decode_float()
  3. 分配和初始化多流解码器状态: opus_multistream_decoder_create()
  4. 在多流Opus解码器上执行CTL功能: opus_multistream_decoder_ctl()
  5. 释放已分配的OpusMSDecoder: opus_multistream_decoder_destroy()
  6. 获取OpusMSDecoder结构的大小: opus_multistream_decoder_get_size()
  7. 初始化以前分配的解码器状态对象: opus_multistream_decoder_init()
  8. 对多流Opus帧进行编码: opus_multistream_encode()
  9. 从浮点输入对多流Opus帧进行编码: opus_multistream_encode_float()
  10. 分配和初始化多流编码器状态: opus_multistream_encoder_create()
  11. 在多流Opus编码器上执行CTL功能: opus_multistream_encoder_ctl()
  12. 释放已分配的OpusMSEncoder: opus_multistream_encoder_destroy()
  13. 获取OpusMSEncoder结构的大小: opus_multistream_encoder_get_size()
  14. 初始化以前分配的多流编码器状态: opus_multistream_encoder_init()

约束与限制

在下述版本验证通过:

DevEco Studio 版本:3.1 Beta1(3.1.0.200),SDK:API9 Beta5(3.2.10.6)

目录结构

|---- opus
|     |---- celt                                 #低延迟CELT
|     |---- doc                                  #资源文件及说明文档
|     |---- include                              #头文件
|     |---- m4                                   #预处理文件
|     |---- scripts                              #脚本文件
|     |---- silk                                 #语音编解码器Silk
|     |---- src                                  #opus实现                      
|           |---- opus_decoder.c                 #opus解码器
|           |---- opus_demo.c                    #opus示例
|           |---- opus_encoder.c                 #opus编码器
|           |---- opus_multistream_decoder.c     #opus多流解码器
|           |---- opus_multistream_encoder.c     #opus多流编码器
|     |---- tests                        #测试文件
|     |---- win32                        #win32项目和生成自动化
|     |---- README.md                    #安装使用方法

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ......

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ......

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ......

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题

2.性能优化方向

3.架构方向

4.鸿蒙开发系统底层方向

5.鸿蒙音视频开发方向

6.鸿蒙车载开发方向

7.鸿蒙南向开发方向

相关推荐
芥末的无奈2 小时前
GStreamer 简明教程(九):插件开发,以一个音频特效插件为例
音视频·gstreamer
蓝枫amy8 小时前
HarmonyOS快速入门
华为·harmonyos
程序猿阿伟12 小时前
《探秘鸿蒙Next:如何保障AI模型轻量化后多设备协同功能一致》
人工智能·华为·harmonyos
程序猿阿伟13 小时前
《探秘鸿蒙Next:人工智能助力元宇宙高效渲染新征程》
人工智能·华为·harmonyos
GY-9313 小时前
Harmonyos之多目标构建产物实践
harmonyos
深海的鲸同学 luvi17 小时前
【HarmonyOS NEXT】华为分享-碰一碰开发分享
华为·harmonyos·碰一碰·华为分享
winxp-pic18 小时前
视频行为分析系统,可做安全行为检测,比如周界入侵,打架
安全·音视频
沅霖1 天前
鸿蒙harmony json转对象(2)
harmonyos
学习嵌入式的小羊~1 天前
RV1126+FFMPEG推流项目(11)编码音视频数据 + FFMPEG时间戳处理
ffmpeg·音视频
刘大猫.1 天前
vue3使用音频audio标签
音视频·audio·preload·加载音频文件·vue3使用audio·vue3使用音频·audio标签