前言 本板资源特别适合多媒体终端等应用场景开发,本篇基于ffmpeg的ffplay实现视频播放器的Demo。
我们基于WIN11+WSL2+UBUNTU的方式搭建开发环境,搭建过程可以网上搜索,这里不再赘述。需要安装必要的工具,比如sudo apt-get install gcc-aarch64-linux-gnu等。
PC端- git clone https://github.com/FFmpeg/FFmpeg.git/
- cd FFmpeg/
-
- make clean
- ./configure --disable-x86asm --prefix=/home/lhj/opt/ffmpeg/win --enable-shared
- make -j8
- make install
安装位于/home/lhj/opt/ffmpeg/win
包括库,头文件
- lhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/win
- bin include lib share
生成了两个工具位于/home/lhj/opt/ffmpeg/win/bin/下
- lhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/win/bin/
- ffmpeg ffprobe
-
我们看到没有生成ffplay,需要先安装SDL2,再重新构建。
- sudo apt-get install libsdl2-2.0
- sudo apt-get install libsdl2-dev
此时生成了ffplay
- lhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/win/bin/
- ffmpeg ffplay ffprobe
sudo vi /etc/profile 添加路径
- PATH=$PATH:/home/lhj/opt/ffmpeg/win/bin
- PATH=$PATH:/home/lhj/opt/ffmpeg/win/lib
- source /etc/profile
- sudo cp ~/opt/ffmpeg/win/lib/* /usr/lib
就可以使用ffmpeg,ffplay,ffprobe三个工具了。
开发板端由于开发板运行了Ubuntu20系统,且已经联网支持apt-get安装各种包。
且开发板性能足够,所以可以直接在开发板上构建。
安装sdl- //git clone https://github.com/libsdl-org/SDL.git
- wget https://www.libsdl.org/release/SDL2-2.0.14.tar.gz
- tar -zxvf SDL2-2.0.14.tar.gz
- cd SDL2-2.0.14/
- ./configure --prefix=/root/opt/sdl
- make -j4
- make install
-
- cp /root/opt/sdl/lib/lib* /usr/lib
- cp /root/opt/sdl/include/SDL2/* /usr/include/
安装xcb-shm- wget https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.15.tar.gz
- tar -zxvf xcb-proto-1.15.tar.gz
- cd xcb-proto-1.15
- ./configure --prefix=/root/opt/proto
-
- wget https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.15.tar.gz
- tar -zxvf libxcb-1.15.tar.gz
- cd libxcb-1.15
- sudo apt-get install pkg-config
- sudo apt-get install xcb-proto
- apt install python3-xcbgen
- ./configure --prefix=/root/opt/xcb
构建ffmpeg
- sudo apt-get update
- sudo apt-get upgrade
-
- git clone https://github.com/FFmpeg/FFmpeg.git/
- cd FFmpeg/
- sudo apt-get install libsdl2-2.0
- sudo apt-get install libsdl2-dev
-
- ./configure --prefix=/root/opt/ffmpeg
-
- //vi ./ffbuild/config.mak
- //!CONFIG_FFPLAY=yes
- //改为
- //CONFIG_FFPLAY=yes
-
- make -j4
-
- make install
-
生成文件位于
- root@ok3588:~/FFmpeg# ls /root/opt/ffmpeg/
- bin include lib share
-
- cp /root/opt/ffmpeg/bin/* /usr/bin/
- cp /root/opt/ffmpeg/lib/lib* /usr//lib
- cp -rf /root/opt/ffmpeg/include/* /usr/include/
使用编译好的二进制文件从https://github.com/BtbN/FFmpeg-Builds/releases/tag/latest下载编译好的二进制文件
解压bin目录下即为可执行文件
- root@ok3588:~# ls ffmpeg-master-latest-linuxarm64-gpl-shared/bin/
- ffmpeg ffplay ffprobe
- root@ok3588:~#
使用ffplay播放视频可以从https://sample-videos.com/index.php#sample-mp4-video下载测试视频
播放视频
- ffplay SampleVideo_1280x720_20mb.mp4
见顶部视频,可以看到要基于本板实现视频播放终端是非常简单的,这得益于开发板完善的系统和强劲的资源性能。
总结
以上实现了ffmpeg ffplay视频播放开发环境的搭建,得益于开发板强劲的性能,运行了Ubuntu20系统,且支持apt安装包,所以可以直接在开发板上构建,避免了繁琐的交叉编译,构建速度也和PC上差不太多。和PC端对比性能测试看到基本是PC端性能的一半,可以看到是非常强悍的,基本可以作为开发PC来使用了。