Section One:概述
背景:在工作中使用FFmpeg模块的ffmpeg拉取RTSP流转码成MP4文件,出现了一些问题。
在分析RTSP流的帧率时,发现前几个包的duration_time异常短,ffmpeg还会报一些warning信息。
对ffmpeg源码一脸懵逼的我自然是不知道这是啥原因导致的。
Non-monotonous DTS in output stream 0:0; previous: 21587350, current: 12740928; changing to 21587351. This may result in incorrect timestamps in the output file.
百度了一圈无果,下载了ffmpeg源代码去查找原因,也并没有太大收获,原因是我并不十分了解ffmpeg的源代码,之前其实并没有接触过。
所以,我决定好好研究一下FFmpeg的源码相关信息。
心动不如行动,第一步当然是在本地电脑上安装编译FFmpeg了。
这篇文章将详细记录一下我在macOS系统上编译FFmpeg的过程,有可以改进或者补充的地方还望各位读者多多提出,我们一起探讨。哈哈,我也是小白~
Section Two:安装brew
brew是MacOS上的包管理工具,先做好准备工作。
确认安装ruby
brew是ruby开发的,我们需要先确认ruby是否已安装,默认是已经安装的。
which ruby /usr/bin/ruby
ruby --version
安装brew
最简单且brew下载网速比较快的方法(推荐):
安装命令如下:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
复制终端回车即可
具体不明白的,可以到B站看博主详细的操作视频(链接见下)
https://www.bilibili.com/video/BV11A411q733?from=search&seid=5634040509378105481
第二种方法(此方法安装brew后可能网速会比较慢,不推荐):
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
输入这行命令即可安装brew。
输入命令行后提示报错:
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
连接raw.githubusercontent.com
被拒绝
解决方法:
第一步:打开网站 https://www.ipaddress.com/
,查询raw.githubusercontent.com
对应的IP地址199.232.96.133
第二步:修改hosts文件,直接在终端输入hosts,打开hosts文件,在末尾添加一行199.232.96.133 raw.githubusercontent.com
PS:保险起见,还是先把原来的hosts文件复制一份出来,然后再修改,哈哈
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
199.232.96.133 raw.githubusercontent.com
第三步:重新执行安装brew的命令
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
想吐槽一句,我快疯辽:网速太太太慢了,几K几K下载的,这要下载到猴年马月去了,哎,无奈!
打开网页和看视频没问题,就是在命令行或者浏览器下载文件的时候,巨慢!我醉了!
开启多线程学习吧!
brew的简单用法
brew 是 Mac 下的一个包管理工具,作用类似于 centos
下的 yum
brew 可以用一条命令,就可以在mac上安装、卸载、更新各种软件包,使用炒鸡方便~
- 安装软件
brew install xxx[@版本号]
- 更新软件
brew upgrade xxx
- 卸载软件
brew remove xxx
- 查看软件安装信息
brew info xxx
- 当前安装的软件
brew list
- 查询相关可用软件
brew search xxx
- brew版本
brew --version
brew services
brew services 是一个非常强大的工具,可以管理软件,进行停止、重启等
brew install xxx # 安装 xxx
brew services start xxx # 启动 xxx
brew services stop xxx # 停止 xxx
brew services restart xxx # 重启 xxx
brew services list # 列出当前的状态
备注:ffmpeg的安装懒得写了,网上教程很多,见谅见谅,主要是菜已经凉了,我想起来写的时候,距离安装完毕已经过了很长时间,具体详细过程我也忘得7788了😭