找回密码
 立即注册
首页 业界区 安全 LVGL之FFmpeg使用

LVGL之FFmpeg使用

肿抢 2025-6-8 12:50:13
FFmpeg是一个开源的多媒体框架,它可以处理各种音频和视频格式的转换、解码、编码和流处理。它提供了一套丰富的库和工具,广泛应用于视频点播、直播、多媒体处理、游戏开发等领域。
FFmpeg的主要组件包括:


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


  • ffmpeg - 命令行工具,用于转换、流处理和播放。
  • ffplay - 一个简单的播放器,使用SDL库。
  • ffprobe - 一个多媒体流分析工具。
LVGL官方文档给出了FFmpeg的使用方法,按照其指导一步一步来就能正常使用了

  • 安装FFmpeg
    1. #clone ffmpeg工程
    2. git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
    3. #进入工程目录
    4. cd ffmpeg
    5. #配置工程
    6. ./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中添加下面这句
  1. target_link_libraries(${PROJECT_NAME} -lavformat -lavcodec -lavutil -lswscale -lm -lz -lpthread)
复制代码

  • 使用
  1. /**
  2. * Open an image from a file
  3. */
  4. void lv_example_ffmpeg_1(void)
  5. {
  6.     lv_obj_t * img = lv_image_create(lv_screen_active());
  7.     lv_image_set_src(img, "./lvgl/examples/libs/ffmpeg/ffmpeg.png");
  8.     lv_obj_center(img);
  9. }
复制代码
注意:
FFmpeg 扩展不使用 LVGL 的文件系统。您可以只需像往常一样在操作中传递图像或视频的路径即可系统或平台。
在使用PNG的时候,文件目录是这样写的:
  1. #define PIC_BOOT_LODA_ADDR   "A:/home/.../picture/boot/%d.png"
复制代码
而因为FFmpeg不使用LVGL的文件系统,因此地址就不能带盘符:
  1. #define PIC_BOOT_LODA_ADDR   "/home/.../picture/boot/%d.png"
复制代码
本文由博客一文多发平台 OpenWrite 发布!

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册