前言
本篇博客是基于前两篇关于ffmpeg交叉编译下,进行再次编译操作。ubuntu下ffmpeg的交叉编译环境搭建可以参看以下我的这篇博客:https://blog.csdn.net/linyibin_123/article/details/108759367 ; ubuntu下交叉编译openssl及交叉编译支持openssl的ffmpeg库可以参看另外一篇我的博客:https://blog.csdn.net/linyibin_123/article/details/126301301 。
一、SDL库下载
1.访问官网:https://github.com/libsdl-org/SDL/releases/tag/release-2.26.3,
2.拷贝到ubuntu下解压后:
以上就是编译好的SDL库,无需额外进行编译SDL
二、交叉编译支持SDL库的ffmpeg
1.切换到ffmpeg目录下,执行配置命令:
./configure --enable-static --enable-shared --enable-version3 --enable-gpl --enable-nonfree --enable-openssl --enable-protocols --enable-protocol=https --extra-cflags=“-I/home/ipc/ffmpeg/ffmpeg-421/openssl-build/include” --extra-ldflags=“-L/home/ipc/ffmpeg/ffmpeg-421/openssl-build/lib” --disable-pthreads --enable-w32threads --enable-cross-compile --target-os=mingw32 --arch=x86 --enable-small --prefix=/home/ipc/ffmpeg/ffmpeg-421/opensdk/ffmpeg-build --extra-version=avbuild --disable-doc --enable-runtime-cpudetect --disable-ptx-compression --enable-mediafoundation --disable-vulkan --disable-postproc --disable-htmlpages --cross-prefix=i686-w64-mingw32- --disable-indevs --disable-outdevs --disable-debug --disable-filter=scale_cuda --enable-ffplay --extra-libs=-lSDL2 --extra-cflags=“-I/home/ipc/ffmpeg/ffmpeg-421/SDL2-2.26.3/i686-w64-mingw32/include/SDL2” --extra-ldflags=“-L/home/ipc/ffmpeg/ffmpeg-421/SDL2-2.26.3/i686-w64-mingw32/lib”
注意:openssl与SDL库目录需要改成你自己的
2.修改config.h 与 config.mak文件
config.h位于ffmpeg根目录, config.mak位于ffmpeg的build目录下,更改CONFIG_FFPLAY与 CONFIG_SDL2如下:
3.编译
依次执行make 、make install 命令
4.执行后生成ffplay.exe
三、测试ffplay
拷贝ffmpeg生成文件到windows,测试ffplay。
1. ffplay播放:按键控制
播放控制:
逐帧播放 : S ;
向后 / 向前拖动 10 秒 : Left / Right 箭头按钮 ;
向后 / 向前拖动 1 分钟 : Down / Up 箭头按钮 ;
暂停播放 : P , 空格 ; 按下 P 或 空格键 , 可以暂停播放 ;
停止播放 : Q , Esc ; 开始播放后 , 按下 Q 或 Esc 按键 , 可以退出播放 ;
全屏切换 : F 按键可以切换全屏 ; 鼠标左键双击 也可以进行全屏切换 ;
音量控制:
静音 : M 键可切换 静音 / 非静音 状态 ;
减少音量 : 9 或 / 按键 , 减少音量 ;
增加音量 : 0 或 * 按键 , 增加音量 ;
2. ffplay播放:命令行控制
1)播放网络流
ffplay rtsp://admin:xmsx1234@192.168.8.123:554/main
2)播放本地文件
ffplay demo.mp4
3)旋转与翻转
旋转:ffplay -i demo.mp4 -vf transpose=1 //2、3
翻转: ffplay demo.mp4 -vf hflip //水平翻转
ffplay demo.mp4 -vf vflip //垂直翻转
4)变速播放
音频变速:ffplay -i demo.mp4 -af atempo=2
视频变速:ffplay -i demo.mp4 -vf setpts=PTS/2
音视频变速:ffplay -i demo.mp4 -vf setpts=PTS/2 -af atempo=2
5)循环播放:
ffplaydemo.mp4 -loop 3 //循环播放3遍
6)播放完成自动退出
ffplay -autoexit demo.mp4
7)指定宽高播放
ffplay -x 320 -y 240 demo.mp4
8)指定窗口标题
ffplay -window_title “test-rtsp” rtsp://admin:xmsx1234@192.168.8.123:554/main
9)音视频同步方式
ffplay demo.mp4 -sync audio // 视频同步音频播放
ffplay demo.mp4 -sync video //音频同步视频播放
ffplay demo.mp4 -sync ext //以外部时钟为基准,音视频同步播放
10)强制解码器
ffplay -vcodec h264 demo.mp4 // 强制h264解码器
11)YUV文件播放
ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 320x240.yuv
12)RGB文件播放
ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24_320x240.rgb
13)PCM文件播放
ffplay -ar 48000 -ac 2 -f f32le demo.pcm//采样率48000 通道数2 采样格式f32le
3. ffplay测试结果展示:
四、ffmpeg库下载
下载链接:https://download.csdn.net/download/linyibin_123/87506252