OBS

Ubuntu 22.04でのOBSとffmpeg導入ガイド(PPA/Flatpak/NVENC)

ⓘ本ページはプロモーションが含まれています

Contents

スポンサードリンク

対象環境と事前準備(Ubuntu 22.04 / OBS / ffmpeg)

導入前にセッションタイプ、GPU ドライバ、Secure Boot の状態を必ず確認してください。
Wayland と Xorg で必要なソフトや権限が変わるため、ここで判定してから作業を進めます。

セッションタイプの確認(Xorg / Wayland)

セッションが Wayland か Xorg かで画面キャプチャや PipeWire の要件が変わります。以下で判定してください。

出力が "x11" なら Xorg、"wayland" なら Wayland です。Wayland の場合は後述の PipeWire / xdg-desktop-portal 関係の整備が必須です。

GPU とドライバの確認

ハードウェアエンコードの可否は GPU とドライバで決まります。まずはドライバの有無とデバイス情報を確認してください。

  • NVIDIA: nvidia-smi でドライバと GPU を確認します(プロプライエタリドライバ必須)。
  • Intel: vainfo で VAAPI の出力を確認します(iHD / i965 ドライバの違いに注意)。
  • AMD: VAAPI(Mesa のサポート状況)を確認します。

詳細な確認コマンドは付録の検証コマンド集にまとています。

linux-headers / DKMS と Secure Boot の初期確認

v4l2loopback-dkms や独自 DKMS モジュールは linux-headers と連携します。Secure Boot が有効だと署名されていないモジュールはロードされません。まずは状態を確認しておきます。

Secure Boot をどう扱うか(署名して MOK 登録するか、UEFI で無効化するか)は後の「運用とセキュリティ」で具体的に説明します。

ffmpeg の導入: apt / PPA / ソースビルド(Ubuntu 22.04 向け)

まず公式 apt 版で目的が達成できるかを確認します。追加コーデックや最新 hwenc を使いたい場合は PPA かソースビルドに進み、必要な -dev パッケージと手順を示します。

公式 apt パッケージの導入と簡易確認

まずは安定版として公式リポジトリの ffmpeg を入れて基本機能を確認します。多くの環境ではこれで十分です。

詳細なエンコーダ一覧や hwaccel の確認は付録にある検証コマンド集を使ってください。

configure オプションと対応する -dev パッケージ(Ubuntu 22.04)

ソースビルドで有効化する主要オプションと、Ubuntu 22.04 上で一般に必要となる開発パッケージの対応表です。必要なリポジトリ(universe/multiverse)は有効化してください。

機能(用途) configure オプション例 Ubuntu 22.04 での主な apt パッケージ / 備考
x264 (H.264 ソフトエンコード) --enable-libx264 libx264-dev(universe)
x265 (H.265 ソフトエンコード) --enable-libx265 libx265-dev(universe)
libvpx (VP8/VP9) --enable-libvpx libvpx-dev
libfdk-aac (高品質 AAC、非フリー) --enable-libfdk-aac libfdk-aac-dev(multiverse, ライセンス注意)
Opus / Vorbis --enable-libopus / --enable-libvorbis libopus-dev / libvorbis-dev libogg-dev
AOM (AV1) --enable-libaom libaom-dev(不要なら省略)
dav1d (AV1 デコーダ) --enable-libdav1d libdav1d-dev
VAAPI (Intel/AMD HW) --enable-vaapi libva-dev libdrm-dev + intel-media-va-driver / i965-va-driver(環境依存)
NVENC (NVIDIA HW) --enable-nvenc nv-codec-headers をソースから導入。NVIDIA プロプライエタリドライバ必須
QSV (Intel Quick Sync) --enable-libmfx / --enable-qsv Intel oneVPL / libmfx(配布元依存、oneVPL の導入を推奨)
libass / フォント --enable-libass / --enable-libfreetype libass-dev / libfreetype6-dev
X11/GUI/その他 --enable-libxcb など libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev

NVENC は専用ヘッダ(nv-codec-headers)が必要で、パッケージ化されていない場合は Git から取得して make install します。QSV は Intel 提供の oneVPL/libmfx の整備が必要なため、配布元の手順を参照してください。

ソースビルドの推奨手順(順序・例)

主要な手順と順序の例です。詳細なビルドログや警告は環境依存なので、段階的に確認しながら進めてください。

  1. 必要なリポジトリを有効化(universe/multiverse)。
  2. ビルドツールと共通依存をインストール。

  1. NVENC を使うなら nv-codec-headers を先にインストール。

  1. 必要なライブラリ(x264 など)を apt 版で満たせない場合はソースでビルドして /usr/local に入れる。
  2. ffmpeg ソースを取得し configure → make → make install。

注意: libfdk-aac 等の非フリーコードはビルド時に --enable-nonfree が必要です。業務利用ではライセンス確認を行ってください。

OBS Studio の導入(PPA / Snap / Flatpak 比較)

OBS は配布形態でプラグインやデバイスアクセスに差が出ます。運用重視なら PPA、サンドボックス重視であれば flatpak を検討してください。

PPA(ppa:obsproject/obs-studio) の利点と導入手順(運用向け)

システムと密に連携するため、ハードウェアエンコードや v4l2loopback との組み合わせでトラブルが少ない傾向です。運用環境ではまず PPA を推奨します。

導入後はバージョン確認 (obs --version または apt policy obs-studio) を行い、必要に応じて apt-mark hold obs-studio で固定してください。PPA の更新監視とロールバックには ppa-purge を使います(後述)。

Flatpak(Flathub)とポータル、権限設定例

Flatpak はサンドボックスで安定した Wayland/portal 動作を得やすい一方、端末やデバイスへの直接アクセスは portal 経由になりがちです。必要なポータル(xdg-desktop-portal)を入れることが前提です。

Flatpak の権限を確認・変更するコマンド例:

推奨はまず portal 経由で動作させ、どうしても /dev へ直接アクセスが必要な場合に override を使うことです。

Snap の特徴と confinement / interfaces の扱い

Snap はインストールが簡単ですが、サンドボックスで /dev やホストの音声サービスへのアクセスに制約が出ることがあります。confinement(strict / classic)や接続済み interfaces を確認してください。

snap の場合、obs-v4l2sink 等のプラグインがスナップ内に含まれているか、あるいは外部で v4l2loopback に書き出せるかを必ず確認してください。

動作確認で用いたバージョン(例)

検証や手順の参照として、動作確認で一般的に使われるバージョン例を示します。実際は環境で差が出るため、各自で ffmpeg -version / obs --version を確認してください。

  • OBS(例): 29.x 系 / 30.x 系(配布元により異なる)
  • FFmpeg(例): 5.x / 6.x 系(ソースビルド時は git master も可)

v4l2loopback(仮想カメラ)導入と OBS 連携、Wayland と Xorg の違い

仮想カメラはカーネルモジュールと OBS の出力先が鍵です。Wayland では PipeWire 系の流れや portal の権限も確認してください。

v4l2loopback の導入と基本設定

v4l2loopback-dkms で仮想 /dev/video デバイスを作ります。exclusive_caps=1 を指定すると互換性が上がる場合があります。

仮想デバイスのフォーマット確認は付録の v4l2 コマンド集を参照してください。

OBS の「Start Virtual Camera」と obs-v4l2sink / obs-virtualcam の関係

OBS の仮想カメラ出力が /dev/video に出るかは、OBS のビルドに含まれるプラグインと環境に依存します。

  • obs-v4l2sink プラグイン(または同等の組み込み)が存在すれば、OBS の仮想カメラ出力を /dev/video* に書き出せます。
  • Wayland(PipeWire)環境では仮想カメラが PipeWire のストリームとして提供され、アプリ側が PipeWire を読めれば動作します。/dev/video に出すには v4l2loopback + obs-v4l2sink が必要です。
  • Snap/Flatpak ではサンドボックスにより /dev へのアクセスが制限されるため、必要なインターフェース接続や flatpak override を行ってください。

プラグインの有無は次のように確認できます(パスは環境に依存します)。

必要なら obs-v4l2sink をソースからビルドし、OBS のプラグインフォルダへインストールします。OBS の開発ヘッダと build-dep を利用すると依存解決が容易です。

Wayland 固有の注意(PipeWire / wireplumber / xdg-desktop-portal)

Wayland での画面共有や音声ルーティングは PipeWire と xdg-desktop-portal の組み合わせで動きます。Ubuntu 22.04 では wireplumber を使うのが安定しています。デスクトップ環境ごとに portal を選んでください。

KDE なら xdg-desktop-portal-kde、Sway 等の wlroots 系なら xdg-desktop-portal-wlr を選びます。PipeWire を PulseAudio 互換にするには pipewire-pulse を有効化し、必要に応じて pulseaudio.service をユーザ側で置き換えます(操作は慎重に)。

ハードウェアエンコードの検証(NVENC / QSV / VAAPI)

ハードウェアエンコードは GPU、ドライバ、ffmpeg のビルド設定が揃って初めて動作します。短時間の実測コマンドでエンコーダ名とエラーを確認してください。

NVENC(NVIDIA) の実行例と期待される出力

事前条件: NVIDIA プロプライエタリドライバ、nv-codec-headers を導入済み。

短時間テスト(5 秒):

期待される確認ポイント:

  • ffmpeg -hide_banner -encoders | grep nvench264_nvenc が表示される。
  • エンコードログ内に Using NVENCh264_nvenc に関する初期化ログが出る。
  • 典型的なエラー: Unknown encoder 'h264_nvenc'(FFmpeg に NVENC サポートなし)や Failed to create encoder(ドライバ/ヘッダ不整合)。

GPU 使用状況の確認は nvidia-smi -l 1 で行います。

VAAPI(Intel / AMD) の実行例と期待される出力

事前条件: libva と適切なドライバ(intel-media-va-driver または i965-va-driver)。

短時間テスト(5 秒):

期待される確認ポイント:

  • ffmpeg -hide_banner -encoders | grep vaapih264_vaapi 表示。
  • vainfo が有効な VAAPI プロファイルを返す。
  • 典型的なエラー: Error setting up VAAPIfailed to upload frame はドライバ/権限の問題を示します。

QSV(Intel Quick Sync) の実行例と期待される出力

事前条件: Intel oneVPL / libmfx 等を導入し、QSV が FFmpeg に組み込まれていること。

短時間テスト(5 秒):

期待される確認ポイント:

  • ffmpeg -hide_banner -encoders | grep qsvh264_qsv 表示。
  • 典型的なエラー: Unknown encoder 'h264_qsv'(ビルド未対応)や qsv: no supported adapters found(環境依存)。

各 hwenc のエラーはドライバのバージョン不整合やヘッダの未導入が原因であることが多いです。ログメッセージを元に不足ライブラリやバージョンを照合してください。

運用とセキュリティ(Secure Boot、DKMS、更新運用)

DKMS はカーネル更新でモジュールを再ビルドしますが、Secure Boot 有効時は署名が必須です。PPA 導入後の更新監視やロールバック手順も具体的に解説します。

Secure Boot と DKMS モジュール署名(MOK 登録フロー、具体例)

Secure Boot が有効な場合、署名済みのモジュールだけがロードされます。安全に署名して MOK 登録するフローの例です。キーは安全に保管してください。

  1. 鍵と証明書の作成(PEM と DER を作成):

  1. MOK の登録(パスワードを設定して再起動し、MOK 管理画面で登録):

  1. モジュールの署名(modinfo でモジュールパスを確認して署名):

  1. 署名確認:

注意点:

  • カーネルアップデートや DKMS による再ビルドの都度、モジュールを再署名する必要があります。自動化するには DKMS の post-build スクリプトで sign-file を呼ぶ方法がありますが、運用上の鍵管理に注意してください。
  • 物理的に安全な環境で MOK パスワードを入力する必要があります。
  • 別の選択肢として UEFI 設定で Secure Boot を無効化する方法がありますが、プラットフォームのセキュリティを低下させるリスクがあります。無効化手順はマザーボードの UEFI 設定画面で Secure Boot を Off にする操作です。

PPA 導入後の更新監視とロールバック(ppa-purge)

PPA 導入後は更新の影響を監視し、問題があればロールバックできる体制を用意してください。

重要環境では apt-mark hold obs-studio ffmpeg で一時固定したうえで、検証環境でアップデートテストを行ってから本番へ反映する運用を推奨します。

sudo ワンライナー回避の考え方

外部スクリプトを root 権限で即実行するワンライナーは、供給元に信頼性がない場合リスクが高くなります。リポジトリやスクリプトの中身を確認し、可能ならパッケージ管理(apt/snap/flatpak)や自前のビルド環境で運用してください。

付録:検証コマンド集と短時間テスト

以下は導入後に段階的に実行する代表的なコマンド集です。問題切り分け時に役立ちます。

環境・セッション確認

GPU / ドライバ確認

ffmpeg 確認

v4l2 / 仮想カメラ確認

OBS ログ確認

DKMS / Secure Boot 状態

MOK 登録とモジュール署名(フロー例)

NVENC / VAAPI / QSV の短時間エンコード例(5 秒、テスト用)

NVENC:

VAAPI:

QSV:

各コマンドのログに「未知のエンコーダ」「encoder not found」「Failed to create encoder」などの文言が出た場合は、対応するヘッダ/ドライバの未導入やビルドオプションの不足が原因です。

PPA ロールバック(例)

参考リンク(公式を優先)

  • OBS Project(公式): https://obsproject.com/
  • OBS GitHub リポジトリ: https://github.com/obsproject/obs-studio
  • FFmpeg 公式: https://ffmpeg.org/
  • FFmpeg Ubuntu コンパイルガイド: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
  • nv-codec-headers (FFmpeg / NVIDIA): https://github.com/FFmpeg/nv-codec-headers
  • NVIDIA Video Codec SDK: https://developer.nvidia.com/nvidia-video-codec-sdk
  • v4l2loopback(GitHub): https://github.com/umlaeute/v4l2loopback
  • obs-v4l2sink(例:プラグイン): https://github.com/po5/obs-v4l2sink
  • Ubuntu のカーネルモジュール署名(ドキュメント): https://ubuntu.com/server/docs/kernel-module-signing
  • PipeWire 公式: https://pipewire.org/
  • xdg-desktop-portal(freedesktop): https://www.freedesktop.org/wiki/Software/xdg-desktop-portal/
  • Flatpak ドキュメント: https://docs.flatpak.org/
  • Snapcraft ドキュメント: https://snapcraft.io/docs

まとめとして、まずは公式 apt 版で動作確認を行い、Wayland なら PipeWire / xdg-desktop-portal、v4l2loopback を使う場合は DKMS と Secure Boot 署名の方針を決めてから PPA やソースビルドで拡張する流れが実務的です。検証は短時間エンコードやプラグイン有無の確認を順に行ってください。

スポンサードリンク

-OBS