本文基于ssd20x 做ffmpeg移植: 源码下载地址:git clone https://github.com/aaron201912/ffmpeg.git
1、下载源码
git clone https://github.com/aaron201912/ffmpeg.git
2、配置屏参
将7寸屏参头文件拷贝到ffplayer/app/下。并修改ffplayer/app/sd20xpanel.c和ui_app/player/playerWnd.c,将屏参头文件包含进去。
# vi ffplayer/app/sd20xpanel.c
# vi ui_app/player/playerWnd.c
3、编译
# cd ffmpeg-4.1.3/
# sh config_for_ssd20x.sh
# make clean 【可选】
# make -j4
# make install
生成文件位于host目录下:
注: 生成的库文件安装路径在ffmpeg-4.1.3/host下, 开启https/dash等功能需要3rdparty/lib中的第三方动态库支持,并使能相应编译选项.
1. 编辑config_for_ssd20x.sh, 增加--enable-openssl编译选项可开启https协议支持, 默认打开. 如需关闭去掉该编译选项.
使用1.1.0以上的openssl库时, 需编辑configure, 找到enabled openssl, 增加check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto判断条件
2. ffmpeg如果需要支持硬解4K视频, 则在config_for_ssd20x.sh的编译选项中增加如下参数:
cflags+=" -DSUPPORT_4K"
3. 如果ffmpeg与project不在同一级目录, 配置ffmpeg时需要手动设置project路径, 否则编译不过, 如:
sh config_for_ssd20x.sh /home/user/ssd20x
4、验证
编译测试app
# cd ../ffplayer/app
# make clean
# make -j4
生成可执行文件ssplayer。
将ssplayer ssplayer.so 和 ../resources/clock.avi & cuc.flv拷贝到开发板上。
将../../ffmpeg-4.1.3/host/dynamic/ 3rdparty/lib/ 下所有动态库拷贝到开发板/usr/lib目录下。
注意:拷贝之前先查看MMA大小,一般MMA大小设置为16M左右及以上,看需求设置
MMA大小设置请参考:第八章 RAM 配置的调整 - Powered by MinDoc
设置结束重新编译更新系统
# chmod a+x ssplayer
# ./ssplayer ./cuc.flv