• LuatOS-SOC接口文档(air780E)--camera - codec - 多媒体-编解码


    常量

    常量

    类型

    解释

    codec.MP3

    number

    MP3格式

    codec.WAV

    number

    WAV格式

    codec.AMR

    number

    AMR-NB格式,一般意义上的AMR

    codec.AMR_WB

    number

    AMR-WB格式

    codec.create(type, isDecoder)

    创建编解码用的codec

    参数

    传入值类型

    解释

    int

    多媒体类型,目前支持codec.MP3 codec.AMR

    boolean

    是否是解码器,true解码器,false编码器,默认true,是解码器

    返回值

    返回值类型

    解释

    userdata

    成功返回一个数据结构,否则返回nil

    例子

    -- 创建解码器
    local decoder = codec.create(codec.MP3)--创建一个mp3的decoder
    -- 创建编码器
    local encoder = codec.create(codec.AMR, false)--创建一个amr的encoder
    

    codec.info(decoder, file_path)

    decoder从文件中解析出音频信息

    参数

    传入值类型

    解释

    userdata

    解码用的decoder

    string

    文件路径

    返回值

    返回值类型

    解释

    boolean

    是否成功解析

    int

    音频格式

    int

    声音通道数

    int

    采样频率

    int

    采样位数

    boolean

    是否有符号

    例子

    local result, audio_format, num_channels, sample_rate, bits_per_sample, is_signed= codec.get_audio_info(coder, "xxx")
    

    codec.data(decoder, out_buff)

    decoder从文件中解析出原始音频数据,比如从MP3文件里解析出PCM数据,这里的文件路径已经在codec.info传入,不需要再次传入

    参数

    传入值类型

    解释

    userdata

    解码用的decoder

    zbuff

    存放输出数据的zbuff,空间必须不少于16KB

    返回值

    返回值类型

    解释

    boolean

    是否成功解析

    例子

    local result = codec.get_audio_data(coder, zbuff)
    

    codec.encode(coder, in_buffer, out_buffer, mode)

    编码音频数据,由于flash和ram空间一般比较有限,目前只支持amr-nb编码

    参数

    传入值类型

    解释

    userdata

    codec.create创建的编解码用的coder

    zbuff

    输入的数据,zbuff形式,从0到used

    zbuff

    输出的数据,zbuff形式,自动添加到buff的尾部,如果空间大小不足,会自动扩展,但是会额外消耗时间,甚至会失败,所以尽量一开始就给足空间

    int

    amr_nb的编码等级 0~7(即 MR475~MR122)值越大消耗的空间越多,音质越高,默认0

    返回值

    返回值类型

    解释

    boolean

    成功返回true,失败返回false

    例子

    codec.encode(amr_coder, inbuf, outbuf, codec.AMR_)
    

    codec.release(coder)

    释放编解码用的coder

    参数

    传入值类型

    解释

    coder

    codec.create创建的编解码用的coder

    返回值

    例子

    codec.release(coder)
    
  • 相关阅读:
    1335_FreeRTOS中xQueueReceiveFromISR函数的实现
    CLR Via 读书笔记
    Python 列表操作指南3
    流水线上的农民:我在工厂种蔬菜
    Vue实现简单的接口封装
    mojo 笔记 (Python/Cython)
    PDF有限制密码,不能复制怎么办?
    算法金 | 最难的来了:超参数网格搜索、贝叶斯优化、遗传算法、模型特异化、Hyperopt、Optuna、多目标优化、异步并行优化
    1.8 工程相关解析(各种文件,资源访问
    9k+ Star 简洁好用的开源 Linux 运维管理面板
  • 原文地址:https://blog.csdn.net/l531798151/article/details/132941584