アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

OBSの録画が意図せず720pになる時に確認する「出力解像度」の設定

Featured image of the post

「配信用にキャンバスの解像度を1920×1080にしているのに、書き出された録画ファイルを開くと1280×720しかない」 「配信画面は綺麗に映っていたはずなのに、後から見返す録画だけ画質が粗い」 「解像度の設定を何度見直しても、表示されている数字はどれも正しいはずなのに直らない」

このような詰まりは、OBS Studioが「キャンバス(基本)解像度」と「出力解像度」という別々の設定を持っていることに気づいていないと起きる。実際の録画・配信ファイルの書き出しサイズを決めるのは後者で、前者は素材を配置するための作業領域の広さでしかない。

この記事では、両者の違い、GUIでの直し方、OBSが起動中にAPIから直す方法、OBSを起動せずに設定ファイルを直接編集する方法、直し忘れを防ぐ運用まで解説する。

💡
30秒で要点
OBSの録画・配信サイズは「基本(キャンバス)解像度」でなく「出力(スケーリング)解像度」が決める
設定 → 映像 → 出力(スケーリング)解像度を基本解像度と同じ値に揃える
OBSが起動中ならobs-websocketのSetVideoSettingsでも変更できる
起動していない別プロファイルは設定ファイル(basic.ini)を直接編集する
収録の冒頭で数秒だけ試し撮りし、実際のファイルの解像度を確認する運用にすると再発を防げる

目次を開く

OBSの「基本解像度」と「出力解像度」は別設定

症状の再現条件

OBS Studioには解像度に関わる設定が2種類ある。

  • 基本(キャンバス)解像度: シーンの中に映像ソースを配置する作業領域の広さ。ここを1920×1080にしても、書き出しサイズが自動的にそれに揃うわけではない。
  • 出力(スケーリング)解像度: 実際に録画・配信としてエンコードされるサイズ。基本解像度から縮小(または等倍)して書き出す。

多くの環境ではこの2つが最初から一致しているため気づきにくいが、テンプレートのプロファイルを流用した、過去に画質を落とす目的で出力側だけ下げた、といった経緯があると、基本解像度だけ1920×1080に戻していて出力側が1280×720のまま、という状態になる。

まず、実際に書き出されたファイルの解像度を確認する。

ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 recording.mkv

1280,720 のように出力側の値が返ってきたら、基本解像度でなく出力解像度がボトルネックになっている。

GUIで直す

  1. OBSのメニューから「設定」→「映像」を開く。
  2. 「基本(キャンバス)解像度」と「出力(スケーリング)解像度」の両方を確認する。
  3. 「出力(スケーリング)解像度」を「基本(キャンバス)解像度」と同じ値(例: 1920×1080)に変更する。
  4. 「縮小フィルター」はLanczosのままで問題ない。

配信と録画で別々の出力設定を使う「詳細出力モード」にしている場合は、「出力」タブの「録画」欄にも別の解像度指定がないかを確認する。配信側だけ直しても録画側の指定が残っていると同じ症状が再現する。

起動中にAPIで直す(obs-websocket)

OBSを操作せずスクリプトから直したい場合は、obs-websocket(OBS 28以降は標準搭載)のGetVideoSettingsで現在値を取得し、SetVideoSettingsで出力側だけ書き換える。

// GetVideoSettings のレスポンス例
{
  "baseWidth": 1920, "baseHeight": 1080,
  "outputWidth": 1280, "outputHeight": 720
}
// SetVideoSettings のリクエストデータ例(出力側だけ書き換える)
{
  "baseWidth": 1920, "baseHeight": 1080,
  "outputWidth": 1920, "outputHeight": 1080
}

obsws-pythonのようなクライアントライブラリを使うと、この2つのリクエストを数行のPythonから呼び出せる。認証方法や関数名はライブラリのバージョンによって変わるため、使う版のドキュメントで確認する。

起動していない別プロファイルを直す(basic.ini)

収録に使う予定のプロファイルがOBS上で選択されていない(起動していない)場合は、GUIを開かずに設定ファイルを直接書き換えられる。OBSを終了した状態で、対象プロファイルのbasic.iniを編集する。

[Video]
BaseCX=1920
BaseCY=1080
OutputCX=1920
OutputCY=1080

保存場所はOSによって異なる(Linuxなら~/.config/obs-studio/basic/profiles/<プロファイル名>/basic.ini)。見つからない場合は、OBSの「設定」→「詳細」にあるプロファイルの保存先表示から確認する。

直し忘れを防ぐ運用

設定を直しても、次に別プロファイルへ切り替えたときに同じ問題が再発することがある。チェック項目に頼るだけでなく、収録開始の冒頭で数秒だけ試し撮りし、先のffprobeコマンドで実際のファイルの解像度を確認してから本番を始めると、書き出し後に気づいて撮り直す事態を避けられる。

すでに720pで撮ってしまったファイルは、解像度を上げ直しても画質は戻らない。画面に映すスライドや資料を先に1080p相当で作り直し、差し替える方が早い。

まとめ

OBSの録画・配信サイズは「基本(キャンバス)解像度」でなく「出力(スケーリング)解像度」が決める。両者は別設定なので、GUIの「設定」→「映像」で両方を揃えるのが基本の直し方。起動中ならobs-websocketのSetVideoSettings、起動していない別プロファイルはbasic.iniの直接編集でも直せる。直った後は、収録冒頭の試し撮りをffprobeで確認する運用にすると再発を防げる。

よくある質問(FAQ)

出力解像度を上げると画質は良くなりますか?

いいえ。出力解像度は「書き出すピクセル数」を決めるだけで、元の映像ソースの情報量以上には鮮明になりません。基本解像度に対して出力解像度を等倍にすると、少なくとも意図しない縮小は防げます。

配信は1080pのままで録画だけ720pにしたいのですが?

「詳細出力モード」に切り替え、「出力」タブの「録画」と「配信」を別々のエンコーダ・解像度設定にすると、用途ごとに異なる解像度を維持したまま運用できます。

obs-websocketの接続がタイムアウトします

OBS側で「ツール」→「obs-websocketの設定」を開き、サーバーが有効になっているか、ポート番号とパスワードがクライアント側の設定と一致しているかを確認してください。

basic.iniを編集してもOBSで反映されません

OBSが起動したまま編集すると、終了時に設定がメモリ上の値で上書きされます。必ずOBSを完全に終了した状態で編集し、保存後に起動してください。

プログラミング学習でお悩みですか?

現役エンジニアがあなたの学習をマンツーマンでサポートします。

  • 学習の進め方がわからない
  • ポートフォリオの作り方を知りたい
  • 現場で使える技術を学びたい
まずは30分の無料相談

相談は完全無料・オンラインで気軽に

あなたを爆速で成長させるメンタリングプログラムはこちら

メンタープログラムバナー

学習・開発のお悩みは現役エンジニアに相談

メンタープログラムの詳細を見る

エンジニアの基礎学習ゲーム

プログラミング学習支援

無料相談はこちら