web-dev-qa-db-ja.com

FFmpegでmacOSのHEVCトランスコーディングにハードウェアアクセラレーションを使用することは可能ですか?

MacOS High Sierra(10.12)を実行するKaby Lakeプロセッサを搭載したMacBook Proを持っています。 libx265の代わりにツールボックスでHEVCのハードウェアエンコーディングを利用するようにFFmpegをセットアップすることはどういうわけか可能ですか?

7
Misha

MacOPSにはvideotoolboxがあります。

エンコーダオプションについては、こちらをご覧ください。

ffmpeg -hide_banner -h encoder=hevc_videotoolbox

出力:

Supported pixel formats: videotoolbox_vld nv12 yuv420p
hevc_videotoolbox AVOptions:
  -profile           <int>        E..V.... Profile (from 0 to 3) (default 0)
     main                         E..V.... Main Profile
     main10                       E..V.... Main10 Profile
  -allow_sw          <boolean>    E..V.... Allow software encoding (default false)
  -realtime          <boolean>    E..V.... Hint that encoding should happen in real-time if not faster (e.g. capturing from camera). (default false)
  -frames_before     <boolean>    E..V.... Other frames will come before the frames in this session. This helps smooth concatenation issues. (default false)
  -frames_after      <boolean>    E..V.... Other frames will come after the frames in this session. This helps smooth concatenation issues. (default false)

最近のMacを使用している場合は、それでテストできます。

Videotoolboxの詳細: https://developer.Apple.com/documentation/videotoolbox

ご覧のように、macOSで利用可能なハードウェアベースのエンコーダーを利用して、複数の抽象化(サポートされているIntel IGPでのIntelのQuickSyncなど)にまたがるビデオエンコーディング用の統合APIを提供します。

ここでビルドを取得: https://evermeet.cx/ffmpeg/

5
林正浩

OPのコメント以降、これが変更されたかどうかはわかりませんが、FFmpeg 4.xでは、コマンドは次のとおりです。

ffmpeg -hide_banner -h encoder=hevc_videotoolbox
1
csimon2