RK1126_对ai进行mp3存储
由于没有找到RK1126_SDK对音频进行mp3编码的解决办法。猜想是没有对该编码格式的支持,于是采用第三方开源库进行mp3编码存储。用到了简洁高效,并且API接口调用也十分方便的libmp3lame库。
一、下载编译lame库
官网下载:https://lame.sourceforge.io/download.php
tar -xzf lame-3.100.tar.gz
cd lame-3.100
编译成功,并安装后,只需用到头文件和so库
二、在example中进行测试
直接在示例rkmedia_ai_test.c 中添加对lame库的调用,方便直接取PCM数据并送到lame进行编码。
首先对CMakeFiles中的rkmedia_ai_test.dir的link.txt进行修改,在最后一行添加:
-L/opt/lame/_install/lib -lmp3lame 代码
并拷贝 -L/opt/lame/_install/include/lame/lame.h 到 rkmedia/include中
先确保对lame接口的调用没问题:
rkmedia_ai_test.c添加lame.h头文件
在线程函数 GetMediaBuffer(void *path) 中添加lame接口:
确保rkmedia_ai_test编译成功。
三、开发板上运行
将编译的libmp3lame.so.0.0.0 拷贝到 开发板 /oem/usr/lib下,并生成软链接:
ln -s libmp3lame.so.0.0.0 libmp3lame.so.0
ln -s libmp3lame.so.0.0.0 libmp3lame.so
在源代码中调用lame_encode_buffer_interleaved接口进行立体声编码,直接采用默认参数
根据需求可进行简单参数设置:
最后成功编码:
搞定音频编码,下一步进行视频编码,并将音视频打包到mp4.
考虑到mp4在封装的时候,如果突然断电会导致整个mp4因记录的信息不完整会无法播放。所以需要更改mp4打包方式,保证断电不损坏mp4信息头,和尾部信息。
- 分享
- 举报
-
浏览量:880次2024-01-06 16:49:28
-
浏览量:2643次2024-01-22 11:16:26
-
浏览量:5243次2021-04-27 16:32:49
-
浏览量:1934次2019-05-21 15:35:56
-
浏览量:5460次2021-04-27 16:31:59
-
浏览量:10863次2021-03-20 13:22:58
-
浏览量:2136次2019-09-01 11:17:25
-
浏览量:1591次2020-04-24 10:35:10
-
浏览量:766次2023-11-01 11:19:15
-
浏览量:3693次2022-03-02 09:00:13
-
浏览量:3514次2020-08-03 19:28:14
-
浏览量:2147次2020-08-04 20:32:16
-
浏览量:9959次2020-08-12 09:42:10
-
浏览量:3972次2021-04-02 09:47:41
-
浏览量:2514次2020-08-12 09:32:32
-
浏览量:9088次2020-11-26 16:31:52
-
浏览量:874次2023-06-03 16:03:15
-
浏览量:2039次2019-09-20 09:15:55
-
浏览量:2627次2020-08-12 09:33:36
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
Daiker
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明