飞凌嵌入式
直播中

jf_1137202360

8年用户 1379经验值
擅长:嵌入式技术
私信 关注
[技术]

【飞凌RK3588开发板试用】ffmpeg开发系列之四——基于ffplay的视频播放器

Rec 0003

前言
   本板资源特别适合多媒体终端等应用场景开发,本篇基于ffmpegffplay实现视频播放器的Demo
我们基于WIN11+WSL2+UBUNTU的方式搭建开发环境,搭建过程可以网上搜索,这里不再赘述。需要安装必要的工具,比如sudo apt-get install gcc-aarch64-linux-gnu等。
PC端
  1. git clone https://github.com/FFmpeg/FFmpeg.git/

  2. cd FFmpeg/



  3. make clean

  4. ./configure --disable-x86asm --prefix=/home/lhj/opt/ffmpeg/win --enable-shared

  5. make -j8

  6. make install
安装位于/home/lhj/opt/ffmpeg/win
包括库,头文件
  1. lhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/win

  2. bin  include  lib  share

生成了两个工具位于/home/lhj/opt/ffmpeg/win/bin/
  1. lhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/win/bin/

  2. ffmpeg  ffprobe


我们看到没有生成ffplay,需要先安装SDL2,再重新构建。
  1. sudo apt-get install libsdl2-2.0

  2. sudo apt-get install libsdl2-dev

此时生成了ffplay
  1. lhj@lhj:~/FFmpeg$ ls /home/lhj/opt/ffmpeg/win/bin/

  2. ffmpeg  ffplay  ffprobe

sudo vi /etc/profile 添加路径
  1. PATH=$PATH:/home/lhj/opt/ffmpeg/win/bin

  2. PATH=$PATH:/home/lhj/opt/ffmpeg/win/lib

  3. source /etc/profile


  4. sudo cp ~/opt/ffmpeg/win/lib/* /usr/lib

就可以使用ffmpeg,ffplay,ffprobe三个工具了。
开发板
由于开发板运行了Ubuntu20系统,且已经联网支持apt-get安装各种包。
且开发板性能足够,所以可以直接在开发板上构建。
安装sdl
  1. //git clone https://github.com/libsdl-org/SDL.git

  2. wget https://www.libsdl.org/release/SDL2-2.0.14.tar.gz

  3. tar -zxvf SDL2-2.0.14.tar.gz

  4. cd SDL2-2.0.14/

  5. ./configure --prefix=/root/opt/sdl

  6. make -j4

  7. make install



  8. cp /root/opt/sdl/lib/lib* /usr/lib

  9. cp /root/opt/sdl/include/SDL2/* /usr/include/

安装xcb-shm
  1. wget https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-1.15.tar.gz

  2. tar -zxvf xcb-proto-1.15.tar.gz

  3. cd xcb-proto-1.15

  4. ./configure --prefix=/root/opt/proto



  5. wget https://xorg.freedesktop.org/archive/individual/lib/libxcb-1.15.tar.gz

  6. tar -zxvf libxcb-1.15.tar.gz

  7. cd libxcb-1.15

  8. sudo apt-get install pkg-config

  9. sudo apt-get install xcb-proto

  10. apt install python3-xcbgen

  11. ./configure --prefix=/root/opt/xcb

构建ffmpeg
  1. sudo apt-get update

  2. sudo apt-get upgrade



  3. git clone https://github.com/FFmpeg/FFmpeg.git/

  4. cd FFmpeg/

  5. sudo apt-get install libsdl2-2.0

  6. sudo apt-get install libsdl2-dev



  7. ./configure --prefix=/root/opt/ffmpeg



  8. //vi ./ffbuild/config.mak

  9. //!CONFIG_FFPLAY=yes

  10. //改为

  11. //CONFIG_FFPLAY=yes



  12. make -j4



  13. make install


生成文件位于
  1. root@ok3588:~/FFmpeg# ls /root/opt/ffmpeg/

  2. bin  include  lib  share



  3. cp /root/opt/ffmpeg/bin/* /usr/bin/

  4. cp /root/opt/ffmpeg/lib/lib* /usr//lib

  5. cp -rf /root/opt/ffmpeg/include/* /usr/include/

使用编译好的二进制文件
https://github.com/BtbN/FFmpeg-Builds/releases/tag/latest下载编译好的二进制文件
图片1.png
选择linuxARM64版本
解压bin目录下即为可执行文件
  1. root@ok3588:~# ls ffmpeg-master-latest-linuxarm64-gpl-shared/bin/

  2. ffmpeg  ffplay  ffprobe

  3. root@ok3588:~#

使用ffplay播放视频
可以从https://sample-videos.com/index.php#sample-mp4-video下载测试视频
播放视频
  1. ffplay SampleVideo_1280x720_20mb.mp4
图片2.png

见顶部视频,可以看到要基于本板实现视频播放终端是非常简单的,这得益于开发板完善的系统和强劲的资源性能。

总结

  以上实现了ffmpeg ffplay视频播放开发环境的搭建,得益于开发板强劲的性能,运行了Ubuntu20系统,且支持apt安装包,所以可以直接在开发板上构建,避免了繁琐的交叉编译,构建速度也和PC上差不太多。和PC端对比性能测试看到基本是PC端性能的一半,可以看到是非常强悍的,基本可以作为开发PC来使用了。

更多回帖

发帖
×
20
完善资料,
赚取积分