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了😭