Mac mini安裝ffmpeg輸出AV1
因為新的M1(Apple Silicon) Mac mini的到來,還是要比較一下轉檔的性能,先不考慮常見支援硬體加速的H.264、H.265格式,直接比較AV1這種還只支持軟解的編碼格式的性能。
測試的工具仍然沿用之前在Ubuntu測試的ffmpeg與30秒的H.264影音檔。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安裝會花點時間,完成後接著安裝ffmpeg與wget,同樣在終端輸入
/opt/homebrew/bin/brew install ffmpeg wget --force
安裝好ffmpeg與wget後,開始下載影片素材,在終端鍵入
/opt/homebrew/bin/wget https://odysee.com/$/download/1080ph264/3e37d5c2aa0ac94c87f25cc115790accfa328785
重新命名檔案為h264.mp4,在終端鍵入
mv 3e37d5c2aa0ac94c87f25cc115790accfa328785 h264.mp4
開始轉檔成AV1,因為M1是8核心,我嘗試 -threads 開16個線程,另外測試Mac mini 2012是雙核心 -threads 開4個線程(實際測試8線程速度會再提升,大於8線開始性能回落)
/opt/homebrew/bin/ffmpeg -i h264.mp4 -c:v libaom-av1 -crf 39 -b:v 0 -threads 16 av1.mp4
M1導出AV1第22影格速度
2012導出AV1第22影格速度
從測試結果來看,ffmpeg在M1的導出速度約為2012 intel i5的0.7倍,減損性能約為三成左右,應該是目前的ffmpeg是透過Rosetta 2安裝的,未來需要測試直接運行ffmpeg後性能是否提升,不然M1高性能的運算有點浪費。
2012安裝Windows10導出AV1第22影格速度
額外測試2012機型,
安裝Windows系統跑ffmpeg速度0.00412x,
略少於Mac系統跑ffmpeg速度0.00478x,
還是高於M1的Mac系統跑ffmpeg速度0.00379x。
安裝Windows系統跑ffmpeg速度0.00412x,
略少於Mac系統跑ffmpeg速度0.00478x,
還是高於M1的Mac系統跑ffmpeg速度0.00379x。
2021/01/11更新
在網路上尋找資料才發現,
從活動監視器的建築可以直接判斷程式是直接跑Apple M1還是Rosetta 2跑intel,
結果顯示Homebrew安裝的ffmpeg已經可以直接在M1運行,
轉檔單跑軟編M1性能輸給intel i5 3210M這顆雙核四線處理器,
在Mac mini M1基本上沒有Macbook M1對於散熱功耗、續航那麼大的需求,
比較起來性能差一截還不能自己擴充記憶體,
大概只適合運行FCP這類剪輯軟體,
轉檔H.264、H.265以外的影音格式來說還是intel機種還是比較吃香的。
從活動監視器的建築可以直接判斷程式是直接跑Apple M1還是Rosetta 2跑intel,
結果顯示Homebrew安裝的ffmpeg已經可以直接在M1運行,
轉檔單跑軟編M1性能輸給intel i5 3210M這顆雙核四線處理器,
在Mac mini M1基本上沒有Macbook M1對於散熱功耗、續航那麼大的需求,
比較起來性能差一截還不能自己擴充記憶體,
大概只適合運行FCP這類剪輯軟體,
轉檔H.264、H.265以外的影音格式來說還是intel機種還是比較吃香的。
Mac mini M1運行ffmpeg 活動監視器數據
2022/3/28更新
原指令
/opt/homebrew/bin/ffmpeg -i h264.mp4 -c:v libaom-av1 -crf 39 -b:v 0 -threads 16 av1.mp4
rav1e指令
/opt/homebrew/bin/ffmpeg -i h264.mp4 -c:v librav1e -qp 100 -rav1e-params speed=6:low_latency=true -tiles 16 av1.mp4
rav1e如需改指定碼率輸出指令為
/opt/homebrew/bin/ffmpeg -i h264.mp4 -c:v librav1e -b:v 1000K -rav1e-params speed=6:low_latency=true -tiles 16 av1.mp4
rav1e指令說明>>>
-qp 編碼質量 數值介於0-255,測試控制在100左右質量約等於-crf 39
-rav1e-params speed= 編碼速度 數值介於0-10,預設值為6
low_latency=true 啟用低延遲模式,畫格不重新排列
2022/8/24更新
由於brew已適配svt-av1模組,支持macOS 10.15(Catalina)以上的系統與ARM處理器,
可透過tap的方式加入svt-av1安裝ffmpeg。
可透過tap的方式加入svt-av1安裝ffmpeg。
務必先移除brew原先安裝的ffmpeg,請於終端機鍵入
brew uninstall ffmpeg
使用tap運行ffmpeg
brew tap homebrew-ffmpeg/ffmpeg
安裝ffmpeg並同時加入svt-av1選項
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-svt-av1
最後exit退出關閉終端機,重新開啟終端機使新安裝的ffmpeg生效。
原av1轉檔指令
/opt/homebrew/bin/ffmpeg -i h264.mp4 -c:v libaom-av1 -preset 3 -crf 28 -b:v 0 -threads 16 av1.mp4
改svt-av1指令
/opt/homebrew/bin/ffmpeg -i h264.mp4 -c:v libsvtav1 -preset 3 -crf 28 -pass 1 -b:v 0 -threads 16 av1_p1.mp4 && /opt/homebrew/bin/ffmpeg -i h264.mp4 -c:v libsvtav1 -preset 3 -crf 28 -pass 2 -b:v 0 -threads 16 av1_p2.mp4
建議svt-av1參數
/opt/homebrew/bin/ffmpeg -i h264.mp4 -c:a copy -c:v libsvtav1 -preset 5 -crf 30 -threads 16 av1.mp4
2023/12/20更新
因為Big Sur超出brew支援更新版本,如要運行ffmpeg需改用預編譯好的舊版
先下載到Mac的使用者目錄底下解壓縮(使用者名稱以user示範),打開終端機鍵入
vim ~/.zprofile
新增環境變數
export FFMPEG_HOME=/Users/user/ffmpeg
export PATH=$PATH:$MAVEN_HOME/bin:$FFMPEG_HOME:$JAVA_HOME/bin:$GRADLE_HOME/bin:.
請注意第一行是指 export FFMPEG_HOME=/Users/使用者目錄名稱/ffmpeg
請注意第一行是指 export FFMPEG_HOME=/Users/使用者目錄名稱/ffmpeg
接著切入使用者目錄
cd /Users/user/
cd /Users/user/
將ffmpeg加上自簽章
xattr -cr ./ffmpeg
codesign -s - ./ffmpeg
codesign -s - ./ffmpeg
檢驗ffmpeg的校驗碼是否為 "345107d72ea1142d873842ec85456f7a7e80be5458ae554ac82e3ae2725735dd"
shasum -a 256 ffmpeg
完成後重啟終端機鍵入測試
ffmpeg -version
開始轉檔
ffmpeg -i h264.mp4 -c:a copy -c:v libsvtav1 -preset 5 -crf 30 -threads 16 av1.mp4
留言
張貼留言