fatal error: sdl.h: No such file or directory

(1)问题:缺少SDL依赖库。
下载了SDL1.2.15,编译安装后,问题仍然没有解决
在这里插入图片描述
之后查了一下,ffmpeg-3.3.9源码包依赖SDL2.0,于是乎删除了SDL1.2.15:

cd ./SDL-1.2.15
sudo make uninstall
sudo make distclean

(2)之后网上下载SDL2-2.0.12.tar.gz
在这里插入图片描述
编译安装,可获得动态链接库。再运行ffplay,已经不会报找不到SDL.h的问题了。
在这里插入图片描述
4、继续使用ffplayj进行视频文件播放,发现仍然有问题:播放器打开后闪退,报错信息:

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

问题:SDL库有问题,查了一下,原来编译后的SDL2.0库也缺乏依赖。
解决:

apt-get install libasound2-dev
apt-get install libpulse-dev

另外使用ffplay可能会出现这个错误:

Could not initialize SDL - No available video device
(Did you set the DISPLAY variable?)

所以,再安装两个依赖包,

apt-get install libx11-dev
apt-get install xorg-dev

安装完上面四个包之后,重新编译SDL2.0的库:

cd ./SDL2-2.0.16
sudo make uninstall
sudo make distclean
./configure
sudo make 
sudo make install

5、再运行ffplay,可正常播放视频,音视频都没有问题

在本地编译ffmpeg的时候编译没有ffplay,是因为缺少sdl库 只需要安装对应的库就行了 两个库之间差别还是很大的,至于怎样选择就看个人需要了,最好是两个都安装让编译的时候脚本自动判断选择吧 sudo apt-get install libsdl1.2-dev sudo apt-get install libsdl2-dev 另外执行configure的时候可能会提示缺少yasm用下面的语句安装下yasm sudo apt-get install yasm 1、确认Makefile中指定的config.mak(在ffmpeg根目录下)中:CONFIG_FFPLAY=yes,如果不是需要重新./configure 2、编译时需要安装libsdl1.2-dev,命令为sudo apt-get install libsdl1.2-dev,如果安装失败,之前如果安装过sdl-devel包最好将其卸载。根据错误原因来解决。 3、make,结束后发现ffpl 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 该问题产生的原因是pulseaudio-libspulseaudio 等依赖库不健全 需要注意的是pulsea... 最近参考一博客测试使用ffmpeg将rtsp流分片成ts文件,附上大神博客链接,很有用!!!https://blog.csdn.net/kunzai6/article/details/76975600本次测试使用到了nginx,目的是将经过ffmpeg分片的m3u8文件和ts文件输出到nginx的一个目录下,万事具备~~然而ffmpeg命令行开始执行后就报错了,如下图所示:上面红色字体的描述就是报... 之前按照网上的步骤编译过好多次ffmpeg没有发现有问题,但是最近机器重装后,装了了ubuntu系统,再按照自己的方法去编译ffmpeg发现没有生成ffplay文件(可执行),原因就在于电脑上没有安装sdl库。应为ffplay是依赖于sdl来进行图像渲染的。 下面告诉大家安装sdl库的方法。 sudo apt-get install libsdl1.2-dev 希望对遇到这个问题的...