​学习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开发实战:从零基础到短视频上线》一书。

FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码的更多相关文章

  1. linux环境下安装git(采用github下载git源码编译)

    [目的]:linux环境下 安装配置git成功 [准备条件]linux系统,git包 1.先行下载git包 -- 从github上https://github.com/git/git/releases ...

  2. GITHUB下载ANDRIOD源码

    1 git clone https://android.googlesource.com/device/common.git 2 git clone https://android.googlesou ...

  3. 麒麟系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12

    前言   上一篇,是使用Qt提供的安装包安装的,有些场景需要使用到从源码编译的Qt,所以本篇如何在银河麒麟系统V4上编译Qt5.12源码.   银河麒麟V4版本   系统版本:   Qt源码下载    ...

  4. Xamarin GitHub 下载的源码运行不了

     初学Xamarin ,各种折腾,大概这公司破电脑配置差,老是很多问题. GitHub 真是个好东西,可以参考别人做的,不过下载来运行不了就各种折腾了,为此我重装电脑两次了,反正win10安装就十几分 ...

  5. FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建

    前言   本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8.   FFmpeg简介   FFmpeg是领先的多媒体框架,能够解码 ...

  6. FFmpeg开发笔记(四):ffmpeg解码的基本流程详解

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  7. FFmpeg开发笔记(五):ffmpeg解码的基本流程详解(ffmpeg3新解码api)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  8. FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放

    前言   ffmpeg播放rtsp网络流和摄像头流.   Demo   使用ffmpeg播放局域网rtsp1080p海康摄像头:延迟0.2s,存在马赛克     使用ffmpeg播放网络rtsp文件流 ...

  9. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  10. IOS开发笔记 IOS如何访问通讯录

    IOS开发笔记  IOS如何访问通讯录 其实我是反对这类的需求,你说你读我的隐私,我肯定不愿意的. 幸好ios6.0 以后给了个权限控制.当打开app的时候你可以选择拒绝. 实现方法: [plain] ...

随机推荐

  1. 2023年多校联训NOIP层测试2

    2023年多校联训NOIP层测试2 爆零了 T1 HDU 4786 Fibonacci Tree \(0pts\) @wangyunbiao: 不可以,总司令 我:不,可以,总司令 @wangyunb ...

  2. 从零开始的 dbt 入门教程 (dbt core 开发进阶篇)

    引 在上一篇文章中,我们花了专门的篇幅介绍了 dbt 更多实用的命令,那么我们继续按照之前的约定来聊 dbt 中你可能会遇到的疑惑以及有用的概念,如果你是 dbt 初学者,我相信如下知识点一定会对你有 ...

  3. JS axios cancelToken 是如何实现取消请求?稍有啰嗦但超有耐心的 axios 源码分析

    壹 ❀ 引 axios,一个基于promise且对ajax进行了二次封装的http库,在提供了与promise类似的API便捷写法同时,它还有一大特点,便是支持取消http请求.当然取消请求并不是ax ...

  4. Java并发编程之美

    简介 <Java并发编程之美>分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识.线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有所使用, ...

  5. OAuth2 Authorization Server

    基于Spring Security 5 的 Authorization Server的写法 先看演示 pom.xml <?xml version="1.0" encoding ...

  6. 从零开始手写缓存框架(12)redis expire 过期的随机特性详解及实现

    前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(二)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...

  7. CentOS7 开机网卡加载失败

    服务器CentOS7一开,发现web服务无法访问.最终用ifconfig发现,网卡没有加载,连个IP地址都没有. 这时使用命令 service network restart 试图重启服务器网络.不料 ...

  8. Java并发编程实例--19.在一个锁中使用多个条件

    一个锁可能关联了一个或多个条件.这些条件可以在Condition接口中声名. 使用这些条件的目的是去控制一个锁并且可以检查一个条件是true或false,如果为false,则暂停直到 另一个线程来唤醒 ...

  9. 如何在C#中使用 Excel 动态函数生成依赖列表

    前言 在Excel 中,依赖列表或级联下拉列表表示两个或多个列表,其中一个列表的项根据另一个列表而变化.依赖列表通常用于Excel的业务报告,例如学术记分卡中的[班级-学生]列表.区域销售报告中的[区 ...

  10. 我的小程序之旅十:微信公众号token验证失败

    为了更好的运营公众号,微信官方支持用户自定义实现公众号功能,这里第一步就是配置服务器回调域名,如下图: 如果是SpringBoot项目,我们会写一个如下的Controller类 import lomb ...