ok113i平台——多媒体播放器适配
- IT业界
- 2025-08-27 21:21:01

1. 视频播放支持 1.1 在Linux平台交叉编译ffmpeg动态库,详情查看《ok113i平台——交叉编译音视频动态库》
提取如下动态库:
libavcodec.so.58.134.100 libavdevice.so.58.13.100 libavfilter.so.7.110.100 libavformat.so.58.76.100 libavutil.so.56.70.100 libswresample.so.3.9.100 libswscale.so.5.9.100实际程序运行时关联的动态库不是上面这些名字,但文件是上面这些,只需将名字改为如下即可:
libavcodec.so.58 libavdevice.so.58 libavfilter.so.7 libavformat.so.58 libavutil.so.56 libswresample.so.3 libswscale.so.5为什么改为这个名字?可以在Ubuntu下编译qt程序,得到可执行文件后,用ldd命令查看可执行程序的关联库; 接着再把这几个动态库放到开发板的/usr/lib中验证; 播放视频适配完成;
1.2 为了出厂系统就包含ffmpeg动态库,需要将上面的文件复制到如下目录:/home/forlinx/OK113i-linux-sdk/platform/framework/auto/rootfs/usr/lib/ 重新编译系统就能更新到系统镜像里;
1.3 问题视频播放卡顿,因为cpu解码视频时导致cpu占用100%
2 音频播放支持 2.1 音频打开失败报错信息: Couldn’t set hardware audio parameters: Operation not permitted gpt解释是:SDL2 可能会尝试设置的音频采样率与系统支持的采样率不兼容。尝试使用不同的采样率配置(例如 44100Hz 或 48000Hz)来创建音频设备。 解决方案:SDL_OpenAudioDevice调用时指定采样率为48000HZ,但是如果音频文件是其他采样率的,则声音会变; 声音会变的原因是重解码时采样次数计算错误了;将下面代码改一下就可以:
// 原始代码,采样次数计算错误 int nb_samples = av_rescale_rnd(swr_get_delay(swrCtx, in_sample_rate) + aFrame->nb_samples, out_sample_rate, in_sample_rate, AV_ROUND_UP); // 更改后 int nb_samples = aFrame->nb_samples;上面采样次数计算错误的公式是gpt和文心一言都推荐的计算方法,且它在x86_64平台运行的很正常;在t113i就是会错误;
2.2 问题报错信息:ALSA lib pcm.c:8424:(snd_pcm_recover) underrun occurred 当视频卡顿时,声音会一顿一顿的,此时就会这个报错。这就是由于卡顿导致的。只要不卡顿就不会有报这个错误信息;
ok113i平台——多媒体播放器适配由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“ok113i平台——多媒体播放器适配”
下一篇
【iOS】Blocks