​学习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. Java 21 虚拟线程如何限流控制吞吐量

    虚拟线程(Virtual Threads)是 Java 21 所有新特性中最为吸引人的内容,它可以大大来简化和增强Java应用的并发性.但是,随着这些变化而来的是如何最好地管理此吞吐量的问题.本文,就 ...

  2. 使用BP神经网络实现函数逼近

    1 一元函数逼近 1.1 待逼近函数 1.2 代码 clear,clc p=[-4:0.1:4]; %神经网络输入值 t=sin(0.5*pi*p)+sin(pi*p); %神经网络目标值 n=15; ...

  3. Git合并固定分支的某一部分至当前分支

    在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支.如果你只想合并某个分支的一部分代码,可以使用以下两种方法: 1.批量文件合并 1.1.创建并切换到一个新的临时分支 ...

  4. Python之凯撒加密

    凯撒加密介绍 在密码学中,恺撒密码是一种最简单且最广为人知的加密技术. 它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文. 例,当偏移量是3的时 ...

  5. C++ std::move 的一些问题

    看 SO 上有一个比较奇怪的问题, When does an rvalue reference result in a move vs copy constructor and why? 问题代码: ...

  6. Redis服务端事件处理流程分析

    一.事件处理 1.1 什么是事件 Redis 为什么运行得比较快? 原因之一就是它的服务端处理程序用了事件驱动的处理方式. 那什么叫事件处理?就是把处理程序当成一个一个的事件处理.比如我前面文章:服务 ...

  7. ASP.NET Core MVC应用模型的构建[1]: 应用的蓝图

    我个人觉得这是ASP.NET Core MVC框架体系最核心的部分.原因很简单,MVC框架建立在ASP.NET Core路由终结点上,它最终的目的就是将每个Action方法映射为一个或者多个路由终结点 ...

  8. 硬件开发笔记(三):硬件开发基本流程,制作一个USB转RS232的模块(二):设计原理图库

    前言   上一篇了解了基本的过程,选型了相关的芯片,本篇描述原理图的设计过程,在原理图设计之前或者过程中需要不断新增原理图元器件.   Allegro.OrCad   Cadence公司针对PCB方面 ...

  9. Python函数每日一讲 - 简洁快速学会globals()函数

    引言 在 Python 中,globals() 函数是一个强大的工具,它允许您访问全局命名空间中的所有变量和函数.本文将深入探讨 globals() 函数的语法.用法以及实际应用场景,帮助大家更好地理 ...

  10. 我的第一个项目(九) :飞机大战Vue版本塞到主页

    好家伙, 这是未进行分包的vue版本的飞机大战 效果如下:   这里说明一下,大概使用逻辑是提供一个<div> 然后在这<div>中渲染游戏 游戏主界面代码如下: 1 < ...