当前位置: 首页 > news >正文

ok113i平台——多媒体播放器适配

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
当视频卡顿时,声音会一顿一顿的,此时就会这个报错。这就是由于卡顿导致的。只要不卡顿就不会有报这个错误信息;

相关文章:

  • “让App玩捉迷藏:Android教育平板的‘隐身术’开发实录”
  • 尚硅谷爬虫note009
  • 第一章:前端性能的定义与指标
  • DeepSeek联网搜索
  • Docker:3、在VSCode上安装并运行python程序或JavaScript程序
  • windows系统本地部署DeepSeek-R1全流程指南:Ollama+Docker+OpenWebUI
  • GitLab 概念
  • Python自动化测试
  • 【分布式理论12】事务协调者高可用:分布式选举算法
  • 详解Virtualhome环境搭建教程 | 智能体
  • ES12的逻辑操作符 ,数字分隔符,字符串的replaceAll,FinalizationRegistry的用法以及使用场景
  • transfmer学习认识
  • 【iOS】Blocks
  • Mysql-------事务
  • PWM(脉宽调制)技术详解:从基础到应用实践示例
  • 动态规划之背包问题
  • 正式页面开发-登录注册页面
  • 阿里云k8s服务部署操作一指禅
  • ECharts极简入门
  • 基于STM32设计的自动追光系统(系统资料)
  • 文化润疆|为新疆青少年提供科普大餐,“小小博物家(喀什版)”启动
  • 反犹、资金与抗议:特朗普的施压如何撕裂美国大学?|907编辑部
  • “远践”项目启动公益生态圈,上海青少年公益力量蓬勃生长
  • 中国一直忽视欧盟经贸问题关切?外交部:事实证明中欧相互成就,共同发展
  • 泽连斯基表示将在土耳其“等候”普京
  • 泽连斯基:乌克兰已做好与俄罗斯举行会谈的准备