文章目录
- 1.ubuntu安装ffmpeg
- 1.1 源码安装
- 1.1 克隆ffmpeg源码
- 1.2 配置编译条件,编译,安装
- 1.2 直接安装依赖包
- 2.下载lvgl源码
- 2.1 测试原始代码
- 2.2 运行lv_example_ffmpeg_2()例程
- 2.2.1 配置 LV_USE_FFMPEG 为 1
- 2.2.2 lv_example_ffmpeg_2()替换lv_demo_widgets()
- 2.2.3 链接库增加ffmpeg的库目录和库名
- 2.2.4 《lv_ffmpeg.c》增加一行代码 av_register_all()
- 2.2.5 视频文件传入路径
- 3.源码链接
参考文章:
1.百问网: 3rd party libraries(第 3 方库) » FFmpeg support
1.ubuntu安装ffmpeg
1.1 源码安装
1.1 克隆ffmpeg源码
git clone https://github.com/FFmpeg/FFmpeg.git
1.2 配置编译条件,编译,安装
#1.配置
./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
#2.编译
make
#3.安装
sudo make install
1.2 直接安装依赖包
我由于先安装了源码,再安装依赖包,现在都不知道是不是直接安装依赖包就可以了。
sudo apt install libsdl2-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libswresample-dev
2.下载lvgl源码
2.1 测试原始代码
使用这个版本https://github.com/lvgl/lv_port_pc_eclipse的源码。
#1.下载源码
git clone https://github.com/lvgl/lv_port_pc_eclipse.git
#2.进入目录
cd lv_port_pc_eclipse
#3.下载子模块
git submodule update --init --recursive
此时,默认显示配置使用SDL,可以直接编译运行,默认运行《lv_demo_widgets()》:
2.2 运行lv_example_ffmpeg_2()例程
2.2.1 配置 LV_USE_FFMPEG 为 1
在顶层目录下的 《lv_conf.h》 配置 LV_USE_FFMPEG 为 1:
2.2.2 lv_example_ffmpeg_2()替换lv_demo_widgets()
// lv_demo_widgets();
lv_example_ffmpeg_2();
2.2.3 链接库增加ffmpeg的库目录和库名
LDLIBS := -lSDL2 -lm -L/uar/local/ffmpeg/lib -lavutil -lavformat -lavcodec -lswscale -lswresample
2.2.4 《lv_ffmpeg.c》增加一行代码 av_register_all()
《lvgl\src\extra\libs\ffmpeg\lv_ffmpeg.c》 需要增加一行代码,才能正常工作:
在上面的函数中,没有av_register_all()就会导致avformat_open_input()出错;或许av_register_all()应该放置在更合理的地方(比如ffmpeg初始化时),放置这里只是临时解决方案。
从上面图片中689行的代码:
if(avformat_open_input(&(ffmpeg_ctx->fmt_ctx), path, NULL, NULL) < 0) {
可以推断,视频文件的路径path是linux系统路径,不用理会lvgl自身的路径。
2.2.5 视频文件传入路径
本例程中,使用的文件系统驱动是STDIO ,lvgl自身的文件目录的命名都没有起作用,直接使用ubuntu的文件目录。
比如我播放的视频是 bird.mp4 ,在ubuntu中的路径是 /mnt/hgfs/linux-D1/app/birds.mp4,直接传入例程:
void lv_example_ffmpeg_2(void)
{
/*birds.mp4 is downloaded from http://www.videezy.com (Free Stock Footage by Videezy!)
*https://www.videezy.com/abstract/44864-silhouettes-of-birds-over-the-sunset*/
lv_obj_t * player = lv_ffmpeg_player_create(lv_scr_act());
lv_ffmpeg_player_set_src(player, "/mnt/hgfs/linux-D1/app/birds.mp4");
lv_ffmpeg_player_set_auto_restart(player, true);
lv_ffmpeg_player_set_cmd(player, LV_FFMPEG_PLAYER_CMD_START);
lv_obj_center(player);
}
3.源码链接
https://gitee.com/huangweide001/lvgl-ffmpeg