RKMEDIA--AENC/ADEC使用

本节介绍rkmedia中aenc/adec模块的使用

音频编解码是通过对rkaudio的封装实现,目前支持

编码:G711A/G711U/G726/MP2

解码:G711A/G711U/G726

因为版权等问题,已经不支持aac和mp3格式

编码初始化:

  AENC_CHN_ATTR_S aenc_attr;
  aenc_attr.enCodecType = RK_CODEC_TYPE_MP2;
  aenc_attr.u32Bitrate = 64000;
  aenc_attr.u32Quality = 1;
  aenc_attr.stAencMP3.u32Channels = 2;
  aenc_attr.stAencMP3.u32SampleRate = 16000;
  ret = RK_MPI_AENC_CreateChn(mpp_chn_aenc.s32ChnId, &aenc_attr);
  if (ret) {
    printf("Create AENC[0] failed! ret=%d\n", ret);
    return -1;
  }

解码初始化:

  ADEC_CHN_ATTR_S stAdecAttr = {0};
  stAdecAttr.enCodecType = code_type;
  if (code_type == RK_CODEC_TYPE_G711A) {
    stAdecAttr.stAdecG711A.u32Channels = u32ChnCnt;
    stAdecAttr.stAdecG711A.u32SampleRate = u32SampleRate;
  } else if (code_type == RK_CODEC_TYPE_G711U) {
    stAdecAttr.stAdecG711U.u32Channels = u32ChnCnt;
    stAdecAttr.stAdecG711U.u32SampleRate = u32SampleRate;
  }

  ret = RK_MPI_ADEC_CreateChn(0, &stAdecAttr);
  if (ret) {
    printf("ERROR: Create ADEC[0] failed! ret=%d\n", ret);
    return -1;
  }

只有g711a/u需要配置u32Channels、u32SampleRate参数,其他只需配置enCodecType参数即可。

编解码g726时注意只能配置成8khz单声道。

rkmedia提供编解码demo:rkmedia_ai_aenc_test 、rkmedia_adec_ao_test

执行时一般只要配置-r -c -o -t -l 选项即可,-f -d选项保持默认即可。

编码g726:rkmedia_ai_aenc_test -r 8000 -c 1 -t 4 -o aenc.g726

解码g726:rkmedia_adec_ao_test -i aenc.g726 -r 8000 -c 1 -t 4

提供ffmpeg电脑端解码命令,用于测试验证编码数据。

1、解码播放g726:ffplay -f g726 -ar 8000 -ac 1 -code_size 2 -i aenc.g726  (code_size 范围2-5对应16kbps,24kbps,32kbps,40kbps)
2、解码播放g711a:ffplay -f alaw -ar 16000 -ac 2 -i aenc.g711a
3、解码播放g711u:ffplay -f mulaw -ar 16000 -ac 2 -i aenc.g711u
4、播放pcm数据:ffplay -ar 44100 -ac 1 -f s16le -i test.pcm

-ar表示采样率
-ac表示音频通道数
-i表示输入文件
-abbitrate 设置音频码率
-f表示格式

如有其他问题,可以在评论区一起探讨。

文章汇总:RKMEDIA使用简介_未_定的博客-CSDN博客

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值