我想学FFmpeg (一) Ubuntu 编译安装
环境
环境 | 值 |
---|---|
ubuntu | 18.04 |
ffmpeg | 4.3.2 |
1,下载
我准备的版本是4.3.2 ,最新版本是4.4,下载地址 或者 这里查看所有发布版本
2,解压缩
sudo tar -xjf ffmpeg-4.3.2.tar.bz2 -C /opt
3,安装依赖库
3.1,yasm
安装原因:使用汇编提高效率用的,没有太懂,弄懂了回来补充
方式1:通过apt安装
sudo apt-get install yasm
方式2:下载源码安装。下载地址
方式1安装后,发现是最新版本,所以我没有用方式2了。
3.2, SDL
安装原因:ffplay播放器依赖SDL,不安装的话,编译安装结束后,不会产生ffplay,也可以不安装的。
方式1:通过apt安装
sudo apt-get install libsdl2-2.0
sudo apt-get install libsdl2-dev
方式2:下载源码编译安装。下载地址
sudo tar -zxvf SDL2-2.0.14.tar.gz -C /opt
sudo ./configure
sudo make
sudo make install
两种方式我都进行了尝试,可用。
4,运行配置文件
./configure
5,编译
根据机器配置不同,编译时间可能较长
make -j8
6,安装
记得加sudo
sudo make install
7,检查版本
ffmpeg -version
ffmpeg version 4.3.2 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
configuration:
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
问题1
执行ffplay,报错
ffplay version 4.3.2 Copyright (c) 2003-2021 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
configuration:
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 3 (X_GLXCreateContext)
Value in failed request: 0x0
Serial number of failed request: 84
Current serial number in output stream: 85
查了半天也没有头绪,最终在stackoverflow找到了。
btw, this specific error (GLX:24 X_GLXCreateNewContext) error will happens when your video driver is updated for a running X server, restart X to resolve it – ThorSummoner Sep 21 '20 at 20:05
解决方法:重启,惊不惊喜!!!
这个问题是我早上安装了navida的驱动更新,至今还没有重启。
问题2:
ffplay test.wav 报错:
SDL_OpenAudio (2 channels, 44100 Hz): No such audio device
SDL_OpenAudio (1 channels, 44100 Hz): No such audio device
No more combinations to try, audio open failed
Failed to open file 'test.wav' or configure filtergraph
解决方法:这个真是绕了山路十八弯,都没能找到解决方法,最后不断尝试,解决步骤如下:
1,安装libasound2-dev
这个是在这篇博客看到的,是不是因为这个,不确定,看到的朋友,可以先跳过直接从2开始尝试一下
sudo apt-get install libasound2-dev
2,卸载SDL2,重新编译安装。
3,重新编译ffmpeg。