OBSで録画して、動画を投稿する流れを解説します。投稿するプラットフォームはTwitterかYoutubeとします。
各々投稿先のプラットフォームの制限に最適化した設定と、対象のゲームにも最適化した設定を作っておき、いつでも簡単にハイライトや対戦・プレイ動画を投稿できるようになることが最終目的です。
筆者も格ゲーマー界隈にいると、動画投稿は意外と敷居が高いようなので、界隈のハイライト・対戦動画投稿の敷居を下げることに役立てば幸いです。
注意:
動画編集・エンコーディング最適化の説明については深入りしません。
正式名称はOBS Studio。
OBS Projectが開発・保守しているオープンソースでマルチプラットフォームな配信・録画ソフト。
ここ数年で急激に成長した配信ソフトの大定番です。オープンソースなので安心して使えます。
簡単な順で3つ方法を掲示します
winget install OBSProject.OBSStudio
wingetという、MacやLinuxを使ったことのある方にはなじみがあるかもしれない手法です。楽です。いきなり自動構成ウィザードが開きますが、キャンセルして無視しましょう。今後あらゆる自動構成ウィザードはキャンセルとします。
こんな画面を見ていることを想定しています。以後「下部のシーン設定部」などと言ったらこの画面基準の話なので、自分のOBS画面がこれと微妙に異なる場合は適宜差異を吸収してください。(シーン設定部などは場所を動かすことも可能です)
以後、特別な指示をせず単に「シーンコレクション->新規」と書いていたら、上記画面の上部のファイル~ヘルプまで並んでいるメニューから、シーンコレクションをクリックして、その中の新規をクリックするという事を意味します。
下部の各設定要素については、「下部ソース設定部の+からゲームキャプチャを作成」等で指示します。文脈上明らかなときは下部と言わないこともあります。
OBSの設定にはこれらが深く関わります。ざっくり説明しますと。
シーンとソース
1つのシーンには複数のソースが関わる関係。
ソースとは、正に今動いているゲーム画面等のストリームや画像・動画、音声(ソースの音声・マイク入力も含みます)、録画や配信のための1つの画面=シーンを構成する部品のこと。良いものを作りたければソースをいっぱい用意して、プレビュー画面見ながら配置して録画や配信画面を作ることになりますが、今回は目的外なので省略します。凝りたくなったら参考文献へどうぞ。
シーンとは、先述の通り録画や配信のための1つの画面ですが、例えば配信中、良い感じのゲーム実況用シーン1と、可愛いペンギン動画ソース1つだけのシーン2を用意しておき、離席・トラブルが起きたときはペンギン動画再生に切り替えるなど、1つの画面色んな用途で切り替えるために使います。
他にも、大規模大会運営などであっちこっちの対戦をさっと切り替えてますよね、アレがシーン切り替えだと思ってください。
シーンコレクションとは、特定の目的のためのシーン集であり、例えばさっきのゲーム実況用シーンと、避難用ペンギン動画シーンをまとめて「東方非想天則汎用配信用」などとしてシーンコレクションを保存できるわけですね。
今回の目的の録画のためには基本的にシーンは1つになりますが、それも1つのシーンコレクションとして管理されます。
プロファイル
プロファイル1つの中に配信設定、配信画質設定、録画画質設定を含みます。本記事はあくまで録画特化なので配信設定は考えませんが、例えばYoutubeで東方非想天則配信用、と言った単位で1つのプロファイルを構成します。プラットフォームや配信・録画によって制約や最適な設定が異なるので、これが同じゲームでもTwitch、ニコニコと増えていくことになります。
繰り返しますが本記事は配信は考えません。具体的には「Twitter東方非想天則録画用」といった、「プラットフォーム名+ゲーム名+目的名」というようなわかりやすい名前のプロファイルを作ることを推奨します。
…さっきから例示ゲームタイトルが古いですか?気にしないでください。
デフォルトで用意されている無題のシーンコレクションはそのまま置いておきましょう。無設定だとどんなかんじだったっけ?と後から確認できるのは地味な利点です。(恐らく新規作成と同じですが)
目的に適った名前を付けて後からわかりやすくしておくべきなので、「シーンコレクション->新規」で新しいシーンコレクションを名前付きで作りましょう。
筆者センスではプログラマ故に日本語アレルギーでして、「Th123Rec」や「SF55Rec」という名前で作りましたが、自分が分かればいいので命名規則はご自由に。
シーンコレクションを作るとその設定に切り替わっているはずですが、一見わかりづらいです。OBSウインドウのタイトルを見て、現在のシーンコレクション設定になっていることを確認しておきましょう。以下のような感じで見えるはずです。
そして下部シーン設定部ですが、今回ここは全くいじりません。録画目的だと1つしか使わないシーンに名前をつける意味も感じないので、そのままでいいでしょう。
下部ソース設定部の+から適したキャプチャを選んで、新規作成しましょう。名前はゲーム名にしておくと良いです。
大抵のPCゲームは「ゲームキャプチャ」で取れます。ゲーム機出力をキャプチャボードで取得してる場合は「映像キャプチャデバイス」を。ゲームキャプチャが効かない例外的なPCゲームではウインドウキャプチャを使いましょう。最終手段は画面キャプチャ等適宜使ってください。
以後、ゲームキャプチャでキャプチャをしたものとして、それ以外のキャプチャ方法は解説しませんが、何を使っても画面がキャプチャできた時点でOKです。
先に断っておくと、今後「ソース」と言ったらさっき作ったゲームキャプチャのことを指します。この項は正確に言えば「ソースの中の1つであるゲームキャプチャのプロパティ」なわけですね。
さてキャプチャを作ったらいきなりプロパティが出ます、ちなみにこのプロパティは、作ったソース名を右クリックやダブルクリックして見れるので、一旦間違えて閉じたとしても問題ありません。
以下、ソースのプロパティの設定項目についてです。
モード
結論: 特定のウインドウからが一番お手軽です。
理由: 録画時に、フルスクリーンゲームを非アクティブにしたら録画内容が止まる問題を抱えていたのはどの方法でも同じで、各キャプチャ方法に特に差がなかったのです。(要識者)。
以下はキャプチャ時の要点
他のキャプチャのチェックオプションについては以下
フック速度
通常のまま無設定が推奨。
RGBA2 色空間
HDR対応ゲームの人だけ変更しましょう。プロファイルの設定に関わるので後述しますが、変更した人はこの時の設定をメモしておいてください。
勿論これは必須ではなく、無設定のSDRに妥協しても問題ありません。
タイトルの操作は多数のソース並べて配置するような凝ったことをする場合は大変お世話になりますが、本記事では必要最低限しか書きません。
現時点でプレビューとゲーム画面がぴったり重なって表示されている、いわゆるドットバイドットの状態(何も設定していなければプレビュー=キャンバス解像度は1920x1080のはずで、ゲーム解像度がそれと一致して、1ドットが1ドットに対応している状態)の場合。このままで良いです。本記事は余計なリサイズを避け、そのドットバイドットを目指す方針です。何もしてないのにぴったりでズレてない人は以下、「プロファイル関連設定」大見出しまで読む必要はありません。
ぴったりっぽいがうっかりドラッグで、又は良くわからないけどズレた、でかい・小さい、とにかくゲーム画面がおかしい場合は落ち着いて以下を読んでください。
ズレてたので真ん中に置きたい
「ソースを指定して右クリック->変換->画面中央に置く」で解決です。
画面が大きく収まらない、又は小さくてスカスカ
ズレてるかどうかは後回しにしましょう。
ゲーム画面が小さい場合は後述する基本(キャンバス)解像度を小さくすればいいので、単に小さい場合は以下、「プロファイル関連設定」大見出しまで読む必要はありません。
ゲーム画面が大きすぎる、かつTwitterに投稿したい場合
以下Twitterヘルプセンターから、今必要な情報だけの引用です。
※この制限はPCブラウザから投稿のもので、モバイルはまた違う。
最小解像度: 32 x 32
最大解像度: 1920 x 1200(および1200 x 1900)
アスペクト比: 1:2.39~2.39:1の範囲(上下限値を含む)
この解像度以上のゲームをTwitterに投稿したいという場合、適宜スケーリングするか、ゲームの解像度設定を弄る必要があります。
後者が楽です。が、ないとは思いつつ前者しか選べない場合のため、以下の項で説明します。
「ソース右クリック->フィルタ」を押します。前面に出てきたウインドウ内には+マークがあり、これがフィルタ追加なので押します。選ぶフィルタ名は「スケーリング/アスペクト比」で、命名は今回は1つで良いのでそのままで良し。目的は縮小なので、スケールフィルタ項の選択肢から縮小に適した「エリア」というアルゴリズムを選び、その後ゲーム画面のアスペクト比を崩さないよう気を付けつつ、適宜ゲームの解像度を計算機で縦横同時に割り算して下げて、Twitterの制限内に収めてください。
さて、いよいよエンコードなどの設定に関わります。
先ずはシーンコレクションと同様、「プロファイル->新規」でプロファイルを作り、目的に合った命名をしましょう。私は「TwitterTh123Rec」としました。エンコード設定等は投稿先のプラットフォームの制限に合わせていくので、名前にはちゃんとプラットフォーム名を入れましょう。
さて、作ったは良いもののどこで設定すんねん?と思いきや、ちょっと直感に反したところにあります。「ファイル->設定」を開いてください。
一般~詳細設定まで、出てきましたね?これらがプロファイルの担当する設定項目になります。
私の検証タイトルの内、SF5は最初からプレビューとゲーム画面がピッタリだったので、そうじゃないパターンを例にとって説明しましょう。以下は解像度640x480の非想天則をフルスクリーンで取り込んだ時の状態です。
これはひどい。昔のゲームの解像度の低さが良くわかりますね。
このひどい状態を何とかしてやりたいですが、ここで画面が小さいからといって安易に拡大しようという発想は危険です。所詮は画像処理なのですから、元画像の劣化が酷くなります。
ではどうするか?そう、ドットバイドット方針というわけです。この例では640x480に合わせる設定を行いますが、ご自分のゲームの解像度へ適宜置き換えて読んでください。では早速設定項目から「映像」へ行きましょう。
デフォルトでは基本(キャンバス)解像度と出力(スケーリング)解像度は一致してて、1920x1080なんじゃないかと思われます。(初期値はもしかすると使用モニタ依存かも?)
ではまず、このどでかいキャンバスを編集(選択肢指定に見えますが、実は直接数字を入力できます)して640x480と入力してやりましょう!スケーリングも同様に640x480です。
縮小フィルタ項がありますが、キャンバスとスケーリングの解像度が一致すると設定不可能になるので無視できます。
<プラットフォーム毎の設定差別化ポイント>
FPS共通値という項目がありますが、ここはTwitterの場合は最大40FPS制限なので30に設定、Youtubeの場合は60にしておきましょう。
ここで、一旦プレビューを見て…ドットバイドット、ぴったり収まっていたら完璧です!何かおかしい状態でしたら、とりあえず「ソースのゲームキャプチャを指定して右クリック->変換->画面中央に置く」で直るかもしれません。
これでもだめなら手がなくなりました。ゲーム画面、キャンバス画面、スケーリング解像度の全てを一致させることが目的ですので、一致して画面中央に置ければ、ピッタリ出てくるはずです。最終手段「ソース右クリ->変換->変換のリセット」なども試してから、それでもだめなら一旦何か誤解がないか読み返してみてください。
グローバル音声デバイスのデスクトップ音声を無効から規定へ。
これで下部音声ミキサー部に音声入力のゲージが表示されます。
対戦動画録画に実況入れたいという場合は、
グローバル音声デバイスのマイク音声を無効から規定へ。
適宜マイクだけミュートもできるので、とりあえずマイクを規定に設定しておいても問題はありません。
録画開始と録画終了をてきとーに設定しとくと便利。
私はCtrl+rで録画開始、Ctrl+eで録画終了にした。
…のですが、OBS起動しっぱなしだと簡単なキーバインドはうっかり押す可能性があります。
というか私が気づかずに押していて、560GBのファイルを作ってしまいました
反省して、それぞれ押しづらいCtrl+F1、Ctrl+F2に設定しました。
OBSに「録画開始時に確認ダイアログを表示する」があればいいんですけどね、なぜかこれだけないんですよね。
ソース設定のゲームキャプチャのプロパティでRGBA2 色空間を変更した人だけが対象。
「映像->色空間プロパティ」の選択肢を、ソース設定と同じものに合わせよう。
この設定項目だけ見出しを上げて詳しく解説する。
上部の出力モードが基本と詳細に切り替えられるのですが
本記事は最速プランのため、基本前提で行きます。画質にこだわって詳細に設定したい場合は後半の参考文献項の私が聖典と読んでいるページを見ながら設定してください。
次項「エンコード!」でこれらを考慮した設定を指示するので、読むのは必須ではないです。興味ある方だけどうぞ。
Twitterヘルプセンターより必要な情報だけ引用
ブラウザからアップロードできる動画の解像度と縦横比を教えてください。
最小解像度: 32 x 32
最大解像度: 1920 x 1200(および1200 x 1900)
アスペクト比: 1:2.39~2.39:1の範囲(上下限値を含む)
最大フレームレート: 40fps
最大ビットレート: 25Mbps
パソコンに保存されている動画ファイルを選び、[開く] をクリックします。動画の形式がサポートされていない場合はメッセージが表示されます。動画ツイート用のファイルサイズは最大512MBで、2分20秒より長く動画をアップロードした場合は、ツイートに動画を追加する前にトリミングすることもできます。
更に私が独自に調べたヘルプに書いてない仕様も掲示します
お待たせしました、対象読者の望むであろう脳死最速プランを明示します。
Twitter投稿する場合の例で、録画項の設定を以下に示します。
movflags=faststart
キャプチャ時に最大限気を遣えば動画時間のカットは不要だったりしますが面倒ですし、黒塗りはなんらか編集するしかありません。
世の中にはそうした用途のためのソフトは溢れていますが、機能が多すぎて複雑だったり、編集だけ行って無圧縮で出力するという融通が利かないことがあります。
高機能を求めていたり、良いソフトを既に知っている場合は是非そちらを選んでください。しかし、そうでもない場合、相手の名前を黒塗りしたり、キャプチャ時の尺余りを削りたいくらいの用途にソフトを導入するのは大袈裟だと思いませんか?
ならば、原始的な方法、コマンドによって自分でやってしまいませんか?という提案です。意外に思われるかもしれませんが、コマンドラインインターフェースは最も明示的で手軽で再現性が高いと言えます。
以降、必要ソフトの導入から、説明して行きます。まずはスタートにcmdと打ち込んで、コマンドプロンプトを起動しましょう。そして、以下を入力します。
※wingetが存在しない場合
winget install Gyan.FFmpeg
これでffmpeg, ffplay, ffprobeコマンドがC:\Users\{ユーザー名}\AppData\Local\Microsoft\WinGet\Packages\Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe\ffmpeg-6.0-full_build\bin
に入ります。(私の環境です、違ったら適宜検索をお願いします)
その後、「ユーザー変数にPathを通す」ことをしてください。やり方は他の記事に譲ります…が、RapidEnvironmentEditorという素晴らしいソフトがありまして、これを使うと高速にPathを書き替えることができ、UIも直感的でわかりやすいです。これを導入する場合もwingetが使えるので、使う場合は以下を入力して下さい。
winget install OlegDanilov.RapidEnvironmentEditor
入れたらスタート検索でRapidとでも打つと出ます。
こちらは特に使い方を調べなくとも、ユーザー変数のPathの行を右クリックして値の追加をして入力し、保存するだけで終わります。
注意点として、Pathの値の追加は先頭(上部)に近い方が無難です。というのもffmpeg.exeを内部で使っているソフトも存在するため、そちらが優先して呼ばれる可能性があるからです。
ffmpeg --version
としてバージョン6以上なければおかしいです。(2023-04現在)
ffplay -vf "drawtext=fontsize=30:box=1:boxcolor=white@0.5:fontcolor=black:fontfile='C\://WINDOWS/Fonts/arial.ttf':text='%{pts\:flt}-%{pts\:hms}-%{eif\:t*(30000/1001)\:d}'" -i
項目1 | 項目2 |
---|---|
→ | 10秒後へ移動 |
← | 10秒前へ移動 |
↑ | 60秒後へ移動 |
↓ | 60秒前へ移動 |
PageUp | 10分後へ移動 |
PageDown | 10分前へ移動 |
右クリック | ウィンドウの左端0秒、右端終了秒としたときの位置の時間へシーク |
p / SPACE | 一時停止 |
s | 一時停止してコマ送り |
q / ESC | 停止して終了 |