ubuntu编译FFMPEG和ffplay
本文于2045天之前发表,文中内容可能已经过时。
最近突然又想研究音视频了,当然作为音视频领域必备技能FFMPEG是要了解的,本文从编译开始,希望这次能有点建树…
下载源码
到官网上下载,FFMPEG官网
推荐使用git
1 | git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg |
Linux环境
准备
- 不管三七二十一直接开干
1
./configure
1 | sudo apt install yasm |
- 安装SDL安装完后再配置会自动的能产生ffplay
1
sudo apt install libsdl2-dev
配置
1 | ./configure --enable-ffplay |
如果想支持ssl请加上 –enable-openssl 并且安装 openssl, libssl-dev
编译
为了加快编译速度,加上-j参数
1 | make -j8 |
安装
1 | sudo make install |
测试程序
1 | //命令行测试:ffmpeg -version |
Qt 相关
首先说下环境,使用ubuntu 21.10 Qt5.15.12 要安装以下两个包,好多教程还使用gstream0.1 或者 gstream-ffmpeg(还要额外添加源,烦人),终于一阵乱撸发现可以通过以下命令解决
先测试Qt的多媒体后端是否好用
1 | gst-launch-1.0 playbin uri=file:///home/path/to/video/Videos/web.mp4 |
如果不行则运行以下命令,然后重复上一步,直至能播放了才行
1 | sudo apt install gstreamer1.0-libav ubuntu-restricted-extras |
测试程序如下
1 |
|
Window环境
使用msys2编译
网上大部分都是使用msys2环境编译,这个不再表述了
使用Qt 的mingw环境编译
安装git
主要是为了能够运行sh文件配置依然采取常用配置
1
./configure
编译
1 | mingw32-make -j8 |
此时就会发现编译到最后的avcodec 时会报错, 根据打印结果看是字符串截断了(他喵的msys2没这个问题),大概显示以下内容
1 | liba: No such file or directory |
- 解决
经过搜索在Build fails on Windows due to command line truncation找到解决方案:修改 ffbuild/library.mak 文件
修改前
1 | $(SUBDIR)$(LIBNAME): $(OBJS) |
修改后(cat objs.txt 这一句可选)
1 | $(SUBDIR)$(LIBNAME): $(OBJS) |
运行还是会出问题,后来改用单线程编译OK!
1 | mingw32-make |
PS
赏
支付宝打赏
微信打赏
您的支持是我前行的动力!