ffmpeg+SDL2编译生成ffplay播放器
SDL2:
Simple DirectMedia Layer 是一个跨平台开发库,旨在通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、游戏杆和图形硬件的低级访问。它被视频播放软件、模拟器和流行游戏使用,包括Valve的获奖目录和许多Humble Bundle游戏。
SDL 正式支持 Windows、Mac OS X、Linux、iOS 和 Android。可以在源代码中找到对其他平台的支持。
SDL官网:https://www.libsdl.org/index.php
ffmpeg:
FFmpeg 是领先的多媒体框架,能够解码、编码、 转码、复用、解复用、流、过滤和播放人类和机器创造的几乎任何东西。它支持最前沿的最晦涩的古代格式。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的可移植性:FFmpeg在各种构建环境、机器架构和配置下编译、运行并通过我们的测试基础设施 FATE,跨越 Linux、Mac OS X、Microsoft Windows、BSD、Solaris 等。
ffmpeg官网:https://ffmpeg.org/
一、编译生成ffplay播放器首先需要安装SDL2的库文件
SDL2安装(联网):
sudo apt-get install libsdl2-2.0
sudo apt-get install libsdl2-dev
apt-get install libsdl2-mixer-dev
sudo apt-get install libsdl2-image-dev
sudo apt-get install libsdl2-ttf-dev
sudo apt-get install libsdl2-gfx-dev
二、编译ffmpeg
编译安装ffmpeg方式有很多,这里介绍下载指定版本安装包编译。
安装包官网获取:https://ffmpeg.org/download.html
1、解压ffmepeg
[root@node1 ffmpeg]# ls
ffmpeg-3.4.8.tar.gz
[root@node1 ffmpeg]# tar zxvf ffmpeg-3.4.8.tar.gz
2、进入解压出来的目录
[root@node1 ffmpeg]# ls
ffmpeg-3.4.8 ffmpeg-3.4.8.tar.gz
[root@node1 ffmpeg]# cd ffmpeg-3.4.8
[root@node1 ffmpeg-3.4.8]# ls
Changelog COPYING.LGPLv3 libavdevice libswscale RELEASE_NOTES
compat CREDITS libavfilter LICENSE.md tests
configure doc libavformat MAINTAINERS tools
CONTRIBUTING.md ffbuild libavresample Makefile VERSION
COPYING.GPLv2 fftools libavutil presets
COPYING.GPLv3 INSTALL.md libpostproc README.md
COPYING.LGPLv2.1 libavcodec libswresample RELEASE
3、设置配置项
./configure --enable-ffplay --enable-shared --prefix=/usr/local/ffmpeg --disable-x86asm
4、编译和安装
执行编译:make -j 4
执行安装:make install
5、安装完成后要配置FFmpeg动态库的路径
sudo vi /etc/ld.so.conf
末尾添加一行:
/usr/local/ffmpeg/lib
重启生效:
sudo ldconfig
#运行ffplay播放器
ffplay [视频文件名]
#查看视频文件信息
ffprobe [视频文件名]
视频文件格式转换
ffmpeg -i xxx.xxx -threads 8 -preset ultrafast xxx.xxx
6、测试ffplay播放器
ffplay 3.mp4