本来问题应该是“如何在Windows下编译ffplay”的,由于选择了Cygwin编译ffplay,就用了这个题目。
Cygwin编译ffplay,必须要用到SDL依赖库,ffmpeg较新的版本,都用到SDL2,而老的版本可能还会用到SDL,不过不用担心,从Cygwin的安装程序在线安装相应的包即可。
装完之后,编译出ffplay是可以了,但是不能播放文件,会出现提示“
Could not initialize SDL - No available video device
(Did you set the DISPLAY variable?)
”。
经过较长时间的研究都没有找到答案。大致知道原因出在:依赖库安装不全。
究竟还要安装什么东西?类似于上面安装SDL2的过程,依次搜索x11,xorg,xinit把相应的包都下载安装了,也就接近成功了。
装完之后,从开始菜单里运行XWin Server,这个位于Cygwin-X目录下,打开它,它会缩到桌面右下角的小图标中。
这时候可以打开Cygwin64 Terminal,再运行ffplay播放一个文件,还是会出现上面的提示,还是不行。
因为少了一步没有做,即:设置环境变量DISPLAY。
即:export DISPLAY=:0.0
如果不想每次进入Cygwin64 Terminal都执行一下以上命令,也可以采取下面的做法:
echo "export DISPLAY=:0.0" >> ~/.bash_profile
这样一来,ffplay就能正常播放视频文件了。
而如果要在cmd命令提示符下也可以使用ffplay播放文件,就要设置一下环境变量:set DISPLAY=:0.0
但这种设置同样需要在每次打开cmd的时候执行一下,比较麻烦,可以在环境变量里面设置一下,一劳永逸。
本文主要参考了下面这一篇文章:https://qastack.cn/programming/9393462/cannot-launch-git-gui-using-cygwin-on-windows
如果觉得有用,不要忘记点赞;如果遇到不明白的,欢迎在此留言评论!
下一篇:高效使用ChatGPT进行学习