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

LVGL之FFmpeg使用

FFmpeg是一个开源的多媒体框架,它可以处理各种音频和视频格式的转换、解码、编码和流处理。它提供了一套丰富的库和工具,广泛应用于视频点播、直播、多媒体处理、游戏开发等领域。

FFmpeg的主要组件包括:

  1. libavformat - 用于音频和视频的多媒体容器的多路复用和解复用。支持多种格式,如MP4、MKV、AVI等。
  2. libavcodec - 提供对许多流行编解码器的访问,包括H.264, H.265, VP9, MP3等。
  3. libavutil - 包含一些公共的工具函数,如随机数生成器、数据结构等。
  4. libswscale - 用于颜色空间转换和缩放的库。
  5. libpostproc - 用于后期处理的库,如去块、去噪等。
  6. libavfilter - 用于创建和处理音频和视频过滤器的框架。

FFmpeg的主要工具包括:

  • ffmpeg - 命令行工具,用于转换、流处理和播放。
  • ffplay - 一个简单的播放器,使用SDL库。
  • ffprobe - 一个多媒体流分析工具。

LVGL官方文档给出了FFmpeg的使用方法,按照其指导一步一步来就能正常使用了

  1. 安装FFmpeg
     #clone ffmpeg工程git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg#进入工程目录cd ffmpeg#配置工程./configure --disable-all --disable-autodetect --disable-podpages --disable-asm --enable-avcodec --enable-avformat --enable-decoders --enable-encoders --enable-demuxers --enable-parsers --enable-protocol='file' --enable-swscale --enable-zlib
    #执行make
    make
    #安装ffmpeg
    sudo make install
  2. 将其添加到项目中

在CMakeList.txt中添加下面这句

target_link_libraries(${PROJECT_NAME} -lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread)
  1. 使用
/*** Open an image from a file*/
void lv_example_ffmpeg_1(void)
{lv_obj_t * img = lv_image_create(lv_screen_active());lv_image_set_src(img, "./lvgl/examples/libs/ffmpeg/ffmpeg.png");lv_obj_center(img);
}

注意: FFmpeg 扩展不使用 LVGL 的文件系统。您可以只需像往常一样在操作中传递图像或视频的路径即可系统或平台。 在使用PNG的时候,文件目录是这样写的:

#define PIC_BOOT_LODA_ADDR   "A:/home/.../picture/boot/%d.png"

而因为FFmpeg不使用LVGL的文件系统,因此地址就不能带盘符:

#define PIC_BOOT_LODA_ADDR   "/home/.../picture/boot/%d.png"

本文由博客一文多发平台 OpenWrite 发布!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 扬尘监测算法全套源码扬尘监测算法识别训练样本展示
  • 视频提取字幕的软件有哪些?5款高识别率工具任你选
  • git 主要命令
  • element的el-steps里的数据处理用switch 循环,处理的数据不要vue响应式的值
  • Leetcode 131.分割回文串 回溯 C++实现
  • Linux下qt程序缺少中文字库,中文显示为框框
  • 【Java设计模式】非循环访问者模式:简化对象交互
  • Git下载安装配置
  • Apache + Tomcat + ajp 协议配置
  • Android13禁用Settings里面的Force Stop 強制停止按钮
  • 浏览器精度问题
  • Vue3常见知识**MS【4】
  • 【案例56】安全设备导致请求被拦截
  • 【PGCCC】PostgreSQL线程池技术揭秘:从原理到实战应用
  • Broadcast Hash Join
  • hexo+github搭建个人博客
  • 【笔记】你不知道的JS读书笔记——Promise
  • download使用浅析
  • flask接收请求并推入栈
  • Java IO学习笔记一
  • JavaScript 一些 DOM 的知识点
  • Java小白进阶笔记(3)-初级面向对象
  • Java新版本的开发已正式进入轨道,版本号18.3
  • KMP算法及优化
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 创建一种深思熟虑的文化
  • 力扣(LeetCode)56
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 数据科学 第 3 章 11 字符串处理
  • 通过npm或yarn自动生成vue组件
  • 为什么要用IPython/Jupyter?
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 硬币翻转问题,区间操作
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • AI算硅基生命吗,为什么?
  • 阿里云重庆大学大数据训练营落地分享
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​2021半年盘点,不想你错过的重磅新书
  • # Kafka_深入探秘者(2):kafka 生产者
  • #mysql 8.0 踩坑日记
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (12)Linux 常见的三种进程状态
  • (55)MOS管专题--->(10)MOS管的封装
  • (7)摄像机和云台
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)ABI是什么
  • *1 计算机基础和操作系统基础及几大协议
  • ..回顾17,展望18
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET Core 成都线下面基会拉开序幕
  • .net php 通信,flash与asp/php/asp.net通信的方法