学习FFmpeg的时候,经常要到GitHub下载各种开源代码,比如FFmpeg的源码页面位于 https://github.com/FFmpeg/FFmpeg 。然而国内访问GitHub很不稳定,经常打不开该网站,比如在命令行执行下面的ping命令。
ping github.com
上面的ping结果如下所示,可见默认解析的DNS地址连接超时。
正在 Ping github.com [20.205.243.166] 具有 32 字节的数据:
请求超时
请求超时
请求超时
现在GitHub的DNS请求超时,使得其上的开源代码无法下载,严重影响了FFmpeg的学习运用。更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。
要想避免无法访问GitHub的问题,可以通过以下三个办法解决。
1、修改默认的DNS
使用浏览器打开下面网页,该网页会列出全球各地访问GitHub的响应IP、IP归属地,以及响应时间。
https://ping.chinaz.com/github.com
根据上面网页对github.com的检测结果,发现国内各地访问GitHub都走20.205.243.166(新加坡微软云),并且该IP往往响应超时,说明国内通过20.205.243.166基本访问不了GitHub。
不过上面网页同时显示,走20.200.245.247(韩国首尔微软云)和20.27.177.113(日本东京微软云)会很快响应。那么打开本地电脑的C:\Windows\System32\drivers\etc\hosts,在hosts文件末尾添加下面一行DNS映射配置,指定github.com固定解析为20.200.245.247。
20.200.245.247 github.com
保存hosts文件之后,打开Windows的命令行窗口,运行以下命令刷新DNS缓存。
ipconfig /flushdns
然后打开浏览器重新访问GitHub的源码页面 https://github.com/FFmpeg/FFmpeg ,发现此时能够正常打开该页面了。
2、利用代下载网站
如果仅仅从GitHub下载某个压缩包,无需访问GitHub网页的话,也可以通过第三方网站代下载源码包。比如FFmpeg5.1.2的源码包下载链接为 https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n5.1.2.tar.gz ,使用浏览器打开下面的代下载网站,这里专门代下载来自GitHub的下载链接。
https://d.serctl.com/
代下载页面打开之后,在“下载地址”编辑框中输入FFmpeg5.1.2的源码包下载链接:
https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n5.1.2.tar.gz
接着单击编辑框下方的提交按钮,该网站就开始从GitHub拉取文件链接。稍等片刻,代下载页面会自动刷新,并且显示指定链接已经下载完成,此时单击列表右侧的下载按钮,即可从代下载网站下载之前提交的源码包文件了。
3、访问国内镜像网站
码云是国内的代码托管平台,上面也有多个GitHub开源项目的镜像,其中就有FFmpeg的镜像仓库。使用浏览器打开下面的码云主页:
https://gitee.com/
在页面右上角的搜索框中输入“FFmpeg”再按回车键,Gitee会列出包含关键字“FFmpeg”的仓库列表,其中就有FFmpeg项目的国内镜像仓库如下。
https://gitee.com/mirrors/ffmpeg
打开上面的FFmpeg镜像仓库,再单击仓库页面右侧的“克隆/下载”按钮,即可下载镜像后的FFmpeg最新源码包。更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到短视频上线》一书。