メインコンテンツへスキップ

ハードウェアアクセラレータエンコーディング&コーデック

要件

Owncastでハードウェアアクセラレータエンコーディングをサポートするには、これらの4つの事柄すべてが真である必要があります。

  1. ホスティングプロバイダーから提供されたVPSを使用していない、共有仮想サーバーはハードウェアへの直接アクセスを許可しません。
  2. 互換性のあるハードウェアがあり、それに直接アクセスできる。
  3. ハードウェアを活用するために必要なドライバーとライブラリをインストールし、設定しています。
  4. You have a copy of ffmpeg that is specifically built to utilize these drivers and libraries. Version 4.1.5 or newer is suggested.

心に留めておくべきこと

  1. ほとんどの人は、自分のハードウェアを運用していない限り、これを利用することはできません。
  2. 特定のハードウェアアクセラレータコーデックがOwncast管理者に表示されるからといって、マシンがそれをサポートするように構成されているわけではありません。 Owncast builds that list by running ffmpeg -encoders and keeping the H.264 encoders it knows how to use. An entry appearing means your copy of ffmpeg advertises that encoder, not that the drivers and hardware behind it are proven to work.
  3. ハードウェアを動作させるために必要なことのほとんどは、Owncastとは何の関係もありません。 特定のハードウェアに関する質問は、ハードウェアの製造元や、それを利用するためのドライバーとライブラリを提供する人に向けるべきです。 オンラインにはすでに多くの情報があるため、ぜひ調べてみてください。

互換性のあるハードウェア

Intel Graphics

インテルの統合グラフィックスがある場合、VA-APIまたはQuicksyncを使用してそれを利用できるかもしれません。

NVIDIA GPU

NVIDIA GPUは、NVENCとして知られるオンチップのハードウェアエンコーダーユニットを搭載して出荷されます。 CUDAコアとは別に、NVENCは、同時に動作しているグラフィックスまたはCUDAワークロードの実行を遅延させることなくエンコーディングワークロードを処理します。

ほとんどの最新のNVIDIA GPUはNVENCとともに出荷されます。 NVIDIA GPUサポートマトリックスを確認して、あなたのGPUが「エンコーダー」リストに表示されていることを確認してください。

AMD GPU

VA-APIは、libva-mesa-driverによってAMDおよびATI GPUでサポートされています。

互換性のあるコーデック/ライブラリ

Intel QuickSync

「Intel Quick Sync Video」は、インテルの統合グラフィックスを搭載したプロセッサ上のハードウェアビデオデコーディングおよびエンコーディング機能のマーケティング名です。 Intel iGPUを搭載したプロセッサを使用して、libvaをインストールし、プロセッサのiGPUが使用したいビデオコーデックと解像度をサポートしている限り、ハードウェアビデオエンコーディングを行うことができます。

IntelのサイトにあるLinuxでQuickSyncをセットアップする方法に関する指示に従ってください。

リンク:

VA-API

VA-API(ビデオアクセラレーションAPI)は、Linuxでのハードウェアアクセラレータエンコーディングをサポートするためのレイヤーです。 それが機能するためにはlibvaライブラリをインストールする必要があります。 VA-APIはARMチップセットとは互換性がありません。

ffmpeg 5およびそれ以降のバージョンはVA-APIでサポートされています。

リンク:

NVIDIAエンコーダー(nvenc)

NVIDIA ffmpegトランスコーディングガイドの指示に従って、必要なすべてのドライバーとライブラリをインストールしてください。 これには、NVIDIAウェブサイトからのドライバーをインストールし、CUDAツールキットをダウンロードおよびインストールし、nv-codec-headersをダウンロードし、ffmpegをビルドする必要があります。 NVIDIAトランスコーディングガイドで_Hardware accelerated transcoding with FFmpeg_というセクションまでスクロールして、より多くの情報を確認してください。

nvencサポートを持つプリビルド版のffmpegが見つかるかもしれませんが、それはこの文書の範囲外です。 それでもNVIDIAドライバーは必要です。

リンク:

OpenMAX (omx)

OpenMAX (h264_omx) is a hardware encoding interface most commonly used on older Raspberry Pi boards. It shows in the admin as "OpenMax (omx) for Raspberry Pi". Your copy of ffmpeg must be built with OpenMAX support, which many distribution builds no longer include.

Apple VideoToolbox

VideoToolbox (h264_videotoolbox) is Apple's hardware video encoding framework. If you run Owncast on macOS, ffmpeg builds from Homebrew and most other sources include it, and it uses the media engine built into Apple hardware.

ffmpeg

システムが必要なドライバーとライブラリを使用するように設定されている場合、ffmpegのコピーがそれをサポートすることを確認する必要があります。

Owncast suggests ffmpeg version 4.1.5 or newer. This is a suggestion, not a hard requirement. Owncast does not refuse to run with an older version, but you may experience issues with video.

$ ffmpeg -version
ffmpeg version 6.1.1 Copyright (c) 2000-2024 the FFmpeg developers

Verify the encoder you expect to use is enabled in your version of ffmpeg. This mirrors what Owncast itself does to populate the codec dropdown in the admin.

$ ffmpeg -hide_banner -encoders | grep 264
V....D libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec: h264)
V....D h264_v4l2m2m V4L2 mem2mem H.264 encoder wrapper (codec: h264)
V....D h264_vaapi H.264/AVC (VAAPI) (codec: h264)

If the encoder you hope to use is not in this list then you may need to build your own copy of ffmpeg that supports it.


Improve this page

See something missing or incorrect? Edit this page and improve the documentation for everyone.

Contributors to this documentation
Gabe KangasGabe Kangas
B
Bye
T
TheInvincible