準備
zsh
デフォルトで入ってると思う
%echo $SHELL /bin/zsh
commnadline tool導入
xcode-select --install
ここからdmgを落としてもOKらしい developer.apple.com
homebrew導入
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
% brew -v Homebrew 4.0.9
ffmpeg導入
brew install ffmpeg
どうもデフォでapple siliconを判別してハードウェアエンコード用ツールがついてくるらしい
ありがたい…
formulae.brew.sh
% ffmpeg -version ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers built with Apple clang version 14.0.0 (clang-1400.0.29.202)
入力ファイルの確認
ffprove
で中身を見る
% ffprove input.mp4
このときStream: Video:
の先にyuv420p
表記があればまず問題ない
もしyuv422p
とかだったら次の段階で-pix_fmt yuv420p
をつける
videotech.densan-labs.net
出力ファイルの設定
ffmpeg -i input.mp4 -c:v hevc_videotoolbox -tag:v hvc1 output.mp4
注意点
h265_videotoolbox
ではない,hevc_videotoolbox
だ-tag:v hvc1
をつけないとApple系Appでは再生できない
Finderのプレビューも
たぶんQuicktime Player.appと同じバイナリを使ってるのか
yuv220pのワーニングについて
おそらくはエンコード開始の直前に下記のメッセージが出る
Color range not set for yuv420p. Using MPEG range.
詳細は不明,-pix_fmt yuv420p
をつけても出るので知らん
M1 Maxのハードウェアエンコードが強い理由
やってみたらx265ライブラリ(CPU処理)より10倍ほど爆速だった,使用しない理由がない
そしてM1 にはメディアエンジンがなく,もしくはM1 Proにはメディアエンジンこそあるものの,M1 maxはメディアエンジンをその2倍の規模で搭載している
Apple siliconにおけるメディア(ビデオ)エンコードはもうCPUやGPUだけでは差がつかない
www.itmedia.co.jp
ちなみにM2にはM1と違ってメディアエンジンがある,しかしM2 ProはM2と同じ規模だし,M2 Maxになってようやく2倍になる(これはM1シリーズと同じ)
www.itmedia.co.jp
www.itmedia.co.jp
そう考えると価格崩壊し始めたApple認定整備済品M1 Maxはマジでお得でしかない,買え