1、安装ffmpeg
在自己的虚拟机上拉取相关的代码并解压
wget http://www.ffmpeg.org/releases/ffmpeg-3.4.8.tar.gz
tar -zxvf ffmpeg-3.4.8.tar.gz
cd ffmpeg-3.4.8/
安装ffmpeg过程中,执行./configure时,报yasm/nasm not found or too old. Use --disable-yasm for a crippledbuild错误,分析、解决如下:
分析:yasm是汇编编译器,ffmpeg为了提高效率使用了汇编指令,如MMX和SSE等。所以系统中未安装yasm时,就会报上面错误。
解决:安装yasm编译器或者直接–disable-yasm。安装方法如下:
在Index of /projects/yasm/releases/下面找到适合自己平台的yasm版本。然后进行安装。举例如下:
//下载
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
//解压并进入解压目录
tar -zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
//配置
./configure
//编译和安装
make
make install
然后对ffmpeg配置并编译
sudo ./configure --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=/home/tang/linux/LuckFox_RV1106/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf- --enable-shared --prefix=/usr/lib/ffmpeg
make
make install
--cross-prefix 选择自己编译器的位置
--prefix 是输出文件的位置
就会生成我们需要的可执行文件和一些需要用到的库,如下:
我们将这个文件夹拷贝到到我们的板子上就行了。这里需要拷贝到SDCARD中
2、播放视频测试
我们用ffmpeg时候,先将bin里面的文件拷贝到系统的/usr/bin目录下。因为挂载的设备里面的文件不具有执行权限。
然后指出我们ffmpeg相关库所在的位置。
导出环境变量export LD_LIBRARY_PATH=<your-lib-path>:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/mnt/sdcard/ffmpeg/lib
- ffmpeg -i /mnt/sdcard/ABC.mp4 -r 30 -vf scale=240:240 -pix_fmt rgb565le -f fbdev /dev/fb0
- 运用以上命令进行播放
- -vf scale=240:240是播放视频的分辨率,这里使用的是240*240分辨率的屏幕
- -pix_fmt rgb565le 播放MP4是运用这样的格式
- -f fbdev /dev/fb0 把画面放到设备fb0上面