画面録画用にOBSの設定をいろいろ考えてみた

画面録画用にOBSの設定をいろいろ考えてみた
夏だね。大学の帰りに切ったシャッター

専業のYouTubeになるつもりなんてないのだが、それでもたまに画面を録画したいときってものがある。

定番だが、OBS Studioを使って録画している。

しかし、映像というものもなかなか進歩が速いうえに、謎の技術の詰め合わせでやたらと複雑で理解していてもすぐに忘れてしまうし、陳腐になってしまう。

一昔前まではFHDでいいと思っていたのに、いまやスマホでさえも4Kだ。実際に4Kのコンテンツを再生する場面があるかはさておき、FHD以上の解像度も検討しようかなと思ってくる。

OBS Studioの設定から、「出力」タブに移動し、「出力モード」を「詳細」に変更して、設定をいじくりまわしてみよう。

本稿の目的はこの「出力」タブの「録画」設定だけだから、他の一般的な設定は何にも触れないぞ!

ちなみに僕の使い方だが画面を録画して、あとで見直す用に使う感じだ。配信ではなく録画なうえ、ゲームなどを遊びながらという感じでもない。画質・音質重視で、ファイルサイズなんかは小さくしたいけれど互換性は大事にしたいなあという感じ。

とりあえず、録画設定から

「録画設定」をいじることから始めよう。

種別

そのまえに。

「種別」は「標準」でいいだろう。FFmpegを使ってもいいし、なんならOBS Studioは内部的にFFmpegを使っているのでニッチな設定をいじりたい人用の選択肢だ。別にオーソドックスな感じでいいので「標準」でいい。

録画設定

録画ファイルのパスは本当に適当でいいだろう。私はビデオフォルダーに保存してくれればいいので「 C:\\Users\\livec\\Videos 」としている。

  • スペースなしのファイル名を生成する

という任意の機能があるが、まあ別に好きにすればいいだろう。動画ファイルを処理するプログラムを書いたりする人は、ファイル名を二重引用符””で囲まなくていいというちょっとした楽ができるぐらいのメリットだろうか?あまりよくわからないが、たんに録画をするだけのユーザーからしたら正直どうでもいいだろう。

コマンドラインツールを使ったりする人なんかはチェックをしておけばいいだろう

録画フォーマット

Hybird MP4

  • Flash Video (.flv)
  • Matroska Video (.mkv)
  • MPEG-4 (mp4)
  • QuickTime (.mov)
  • Hybrid MP4 [ベータ版](.mp4)
  • Fragmented MP4 (.mp4)
  • Fragmented MOV (.mov)
  • MPEG-TS (.ts)
  • HLS (.m3u8 + .ts)

自分が再生できればそれでいい人は、自分の再生できるフォーマットを好きに選んでいい。

他の人も再生するし、自分も特殊なツールなしに、というか普通に使える動画ファイルが欲しいなって人はMP4を選択するのがいいと思う。問題はMP4にもいくつか種類があることだ。

途中でOBS Studioがクラッシュして数時間の録画ファイルがぶっ壊れることがある。

いままでのMP4なら録画ファイルがぶっ壊れてなにも再生できないわけだが、Fragmented MP4ならMP4のなかで細かく録画ファイルを分けてくれる。最後にクラッシュした録画データが壊れるだけで、それまでの録画データは再生できるというわけ。

「おー、すごい!」となるのだが、Fragmented MP4はあんまり普及していないので、再生できる方がレア。

ということで、Hybrid MP4が生まれた。

中身はFragmented MP4なのだが、外のハコは普通のMP4。普通のMP4扱いなので、互換性抜群。基本的にどこでも再生できるが、試験機能なので道のエラーがあってもごめんという感じ。

まあ、Hybrid MP4でいいよね。

映像エンコーダ

NVIDIA HEVC

RTX 40シリーズGPUの場合はHardware (NVENC, AV1)を、そうでなければHardware (NVENC, HEVC)を選択でよし!

エンコード設定はCQVBRにして目標品質20でプリセットもP6: Slowerにして画質をよくしたいなあって。

チューニングも高画質にしてる。

選べる映像エンコーダーはこれ。

  • AMD HW H.264(AVC)
  • AMD HW H.265(HEVC)
  • AOM AV1
  • NVIDIA H.264
  • NVIDIA HEVC
  • SVT-AV1
  • x264

エンコーダーの解説

  • x264 スタンダードだけど、古いし、わかりやすく画質が悪い。選びたくない。
  • NVIDIA HEVC(H.265) Nvidia GPUに搭載されているNVEncエンコーダーです。NVIDIAは何世代にもわたってハードウェアエンコーダーを改良しており、RTXシリーズのエンコーダーは優秀。特にHEVCエンコーダーは、同世代のAMDよりも画質が良い(といううわさ)。
  • AMD HW H.265(HEVC) AMDのVCEエンコーダーです。My LaptopにはRyzen 7 5800Hが搭載されているけれども、CPUについてる統合GPU(Radeon Graphics)で使用可能。しかし、一般的にNVIDIAのエンコーダーの方が画質面で優秀とされているので、ナシかな。
  • AV1 AV1は比較的新しい映像コーデックで、H.265よりもさらに高い圧縮効率を持つ。同じ画質でファイルサイズを30-50%削減できる可能性がある(が、今のところ耐えられないほど遅い)。
    • AOM AV1 Alliance for Open Mediaが開発したリファレンス実装です。AOMは、Google、Netflix、Amazon、Appleなどが参加する業界団体の略称です。高画質だが、エンコード速度が非常に遅いのが特徴。画質は最高クラスだが、エンコード速度が遅すぎてリアルタイム録画には不向き。基本的には事後エンコード専用と考えてください。実際YouTubeなんかもトランスコードに使ってるし。
    • SVT-AV1 Intel(とNetflix)が開発したAV1エンコーダー。SVTは「Scalable Video Technology」の略。AOM AV1よりも高速でありながら、画質もそれなりに良いバランス型。AV1に興味があるなら、SVT-AV1を試してみる価値がありますね。ファイルサイズの削減効果は確実にある一方で、エンコード速度がリアルタイム録画に追いつくかは、実際に試してみないとわからない。それに、古い再生機器では再生できない可能性があることだけご注意。

音声エンコーダ

FFmpeg Opus

  • FFmpeg AAC
  • FFmpeg ALAC (24bit)
  • FFmpeg FLAC(16bit)
  • FFmpeg Opus
  • FFmpeg PCM(16bit)
  • FFmpeg PCM(24bit)
  • FFmpeg PCM(32bit float)

FFmpeg Opus一択。普通にブラウザで再生できるから互換性の問題はなし!

極端な低ビットレートにしないし、極限的な高音質を求めるわけではないつもりだが、それ抜きでも、FFmpeg Opusを選んだほうがいい。

避けるべき選択肢はPCMとFLAC系のデータ損失ゼロ系のやつ。非圧縮にする意味がないし、可逆圧縮でも過剰。1時間の録画で600MB以上の音声データになり、メリットに対してコストが高すぎる。そもそも可逆圧縮の恩恵を受けるためには、非常に高品質な録音環境と再生環境が必要で、一般的な録画用途では違いを実感することは困難。

最悪FFmpegでAACに変換すればオッケー。

エンコーダ設定

レート制御

目標品質による可変ビットレート(CQVBR)

Nvidiaによる推奨はCQR(Constant Quality Rate)かVBR(Variable Bitrate)だけれども、外質を重視しつつもファイル容量を気にしたいのでCQVBRを選びます。

目標品質

20

最大ビットレート

250000 Kbps

2K解像度で録画するので、こんなもん。その代わりフレームレートは23.976(つまり24フレームでドロップフレームあり)にして気休め程度にデータ量を抑えてます。

キーフレーム間隔

0 s

0 = 自動なので、キーフレームは自動でよろしくということ。

プリセット

PS5: Slow (高画質)

チューニング

高品質

マルチパスモード

2パス(1/4解像度)

  • 1パス
  • 2パス(1/4解像度)
  • 2パス(フル解像度)

ざっくりいえば、ビットレートの配分を決める方法の話。

1パスエンコーディングは、本を最初から最後まで一度だけ読みながら、その場その場で重要度を判断していく感じです。次に何が来るか分からないので、最適な判断ができない場合があります。 2パスエンコーディングは、まず本全体をざっと読んで全体の構造や重要な部分を把握してから、もう一度詳しく読み直す感じです。全体を知っているので、より適切にリソースを配分できます。

1/4解像度とフル解像度は分析に使う解像度の違い。

1/4はまず映像を4分の1の解像度(例:1920x1080 → 480x270)に縮小して高速で全体を分析する。フル解像度は文字通りフル解像度で詳細な分析を行うことで、最も正確な統計データが得られますが、処理時間が大幅に増加します。

ビットレートが画質を決定するので、フル解像度で2パスにするのが理想だけれども、読書だって何回もするのはめんどくさいし、時間が足りないこともある。

無難にデフォルトの2パス(1/4解像度)でいいかと。

リアルタイム配信ならまよわず1パスでOK。

プロファイル

main

  • main10
  • main

普通はmainでOK。HDRで録画したいならmain10で。そもそもRTX 40シリーズのGPUを使っているならAV1エンコーダを使っていると思うが、その場合そもそもmainしか選べないハズ。

  • Look-ahead(オン)
  • 適応量子化(オン)

いろいろなブログで書かれているが、このLook-aheadの説明が意味不明。

OBSのLook-ahead機能は本当にいらない子なのか?|ulosto123
ネットでOBSのオススメ設定を調べてみると、必ずと言っていいほど「Look-aheadはONにするな」と書いています。 その理由はと言いますと「動きの少ない場面ではいいけれど、動きの激しい場面では画質が下がる」とのこと。 それは本当なのでしょうか? 本当にそれほどにダメな機能なんでしょうか? ということで、実際にOBSでの説明を読んでいきます↓ 『動的Bフレームを有効にします。有効にした場合、GPU使用率の増加を犠牲にして最大数まで、必要な分だけ多くのBフレームを使用することで視覚的品質を向上させます。』 英語だとこう↓ ↑有効にすると、GPUの使用率が高くなる代わりに、
OBS StudioのLook-aheadに関する日本語の説明は間違っている - Photo Cafeteria
どうしても納得がいきません。 下はOBS studioのLook-aheadに関する説明なのですが、この記述は

いちおうNvidiaの説明もあるので、そっちを参考にしてみよう。

NVIDIA NVENC Obs Guide
Configure OBS to get the most quality out of your stream.

Look-aheadの記述がある部分を抜き出すとこう。

Look-ahead: Checked. This allows the encoder to dynamically select the number of B-Frames, between 0 and the number of B-Frames you specify. B-frames are great because they increase image quality, but they consume a lot of your available bitrate, so they reduce quality on high motion content. Look-ahead enables the best of both worlds. This feature is CUDA accelerated; toggle this off if your GPU utilization is high to ensure a smooth stream.
Max B-Frames: Set to 4. If you uncheck the Look-ahead option, reduce this to 2 B-Frames.

それぞれ訳してみるとこんな感じ。

Look-ahead(先読み): チェック済み。この機能により、エンコーダーは0から指定したBフレーム数の間で、Bフレームの数を動的に選択できます。Bフレームは画質を向上させる優れた機能ですが、利用可能なビットレートを多く消費するため、動きの激しいコンテンツでは逆に画質を低下させてしまいます。Look-ahead機能を使えば、両方の利点を活かすことができます。この機能はCUDAアクセラレーションに対応しています。GPUの使用率が高い場合は、スムーズな配信を確保するためにこの機能をオフにしてください。
最大Bフレーム数: 4に設定。Look-aheadオプションのチェックを外す場合は、これを2 Bフレームに減らしてください。

Bフレームの動作を簡単に図解すると、こんな感じ。

通常のフレーム順序

I → P → P → P → I
(Iフレーム:完全な画像、Pフレーム:前フレームからの差分)

Bフレームを使った場合

I → B → B → P → B → B → I
(Bフレーム:前後のフレームから予測して圧縮)

動きが激しい場面では効果がある感じですね。

  • Look-aheadがON → 自動的にBフレームを減らす
  • Look-aheadがOFF → 常に指定数のBフレームを使用(画質が落ちる可能性)

適応量子化についての説明もしておこう。

Nvidiaの説明はこんな感じ。

Psycho Visual Tuning: Checked. This enables the Rate Distortion Optimization in the encoder, which greatly optimizes the way you use bitrate, improving image quality on movement.

Bフレーム

Bフレームの説明をするにはちょこっと前知識が必要。

  • Iフレーム(キーフレーム) 完全な画像情報を持つフレーム
  • Pフレーム 前のフレームとの差分情報のみを持つフレーム
  • Bフレーム 前後両方のフレームを参照して作られる双方向予測フレーム

ここの設定をいじることで、連続するBフレームの最大数を設定することができる。数値を上げる(3〜4程度)ことで得られるメリットはこんな感じ。

  • さらに高い圧縮効率
  • より滑らかな動きの表現

一方でデメリットはこんな感じ。

  • エンコード負荷の大幅増加
  • メモリ使用量の増大

再生するときに、カクカクしてしまう原因になってしまうので、まああんまりいじらない方がいい。

結論だが、デフォルトの2のままでいい。

Bフレームを参照

「Bフレームを参照」設定は、エンコード時にBフレーム同士が互いを参照できるかどうかを決める設定。

基本的な仕組みから

Bフレームの参照パターンを理解するために、まず典型的なフレーム構造からみてみよう。

I - B - B - P - B - B - P

Bフレームがある場合、BフレームがIフレームやPフレームだけでなく、ほかのBフレームも参照できるかどうかでBフレームの予測精度が上がるよねって話。

3つの設定の違い

  1. 無効 各Bフレームは、IフレームとPフレームのみを参照。Bフレーム同士は互いを参照ない。最もシンプルで負荷もない方式。メリットは処理負荷が最も軽く、互換性も高いこと。古いハードウェアでも確実に動作し、エンコード時間も最短。デメリットは圧縮効率が劣るので、同じ品質を得るためにはファイルサイズが大きくなってしまうことになる。配信メインで低遅延を重視する場合や、古いハードウェアでの録画で使う感じ。
  2. それぞれ 各Bフレームが、ほかのすべてのBフレームを自由に参照可能。最も柔軟で高効率な圧縮が可能だけれども、計算もむちゃくちゃ複雑になって負荷が爆増。メリットは圧縮効率が最高で、同じファイルサイズでより高品質な映像を得られる(言い方を変えれば小さなファイルサイズで高画質な映像が手に入ること)。特に動きの複雑なシーンや長時間の録画で効果を発揮。デメリットは処理負荷が最も重く、エンコード時間が長くなること。高品質な録画を重視し、十分なハードウェア性能を用意して使う項目。
  3. 中央のBフレームのみ いいとこどりというかわるいとこどりというか、間をとった項目。連続するBフレームのグループの中で、中央に位置するBフレームのみがほかのBフレームを参照できるという制限的なアプローチ。中立的に言えば、「それぞれ」と「無効」の中間的な性能を狙った設定。メリットは「無効」よりも高い圧縮効率を得ながら、「それぞれ」ほど負荷をかけずに済むこと。バランス型の設定とも言える。デメリットは中途半端になりがちで、明確な利点が見えにくいこと。品質と負荷のバランスを取りたい、悪く言えばあんまり使う意味のない設定かもです。

負荷について具体的に

負荷の違いは、プロセス占有率で言えば「無効」を100%とすると、「中央のBフレームのみ」が120-130%、「それぞれ」が150-200%程度の印象です。

古いパソコン、例えば5年以上前のCore i5やGTX 1050クラスだと「それぞれ」設定では録画中にフレームドロップが発生する可能性があります。しかし「軽微」というよりは「明確に重くなる」レベルの差はあります。

カスタムエンコーダオプション

空欄でOK!


これでおっけー、たぶん。

いやあ、動画系の設定って大変だし謎すぎる。少しでも「分かった!」が増えてくれると嬉しいな。おつかれさん

Read more

北海道登别温泉游记:在"地狱"中寻找人间仙境

北海道登别温泉游记:在"地狱"中寻找人间仙境

"山中何所有?岭上多白云。"初到登别,我便想起了陶弘景的这句诗。只是这里的白云,不是飘在岭上,而是从地底升腾而起,氤氲缭绕,如梦如幻。 这座被誉为"温泉百货公司"的小镇,藏着日本11种温泉泉质中的9种——这样的天赐恩泽,即便放眼全球也是凤毛麟角。 初识登别 从新千岁机场出发,我选择了最便捷的直达巴士。窗外的北海道风光如画卷般展开,大约一个多小时,登别温泉的牌坊便出现在眼前。若是从札幌出发,JR北海道的特快列车也是不错的选择,在登别站下车后转乘巴士,很快就能抵达温泉街。 温泉旅宿 百年老店第一滝本馆 在第一滝本馆的大厅里,放置着一根高九米、重达十吨的镀金大金棒,赫然入目气势非凡。这家创立于1858年的老字号温泉旅馆,背后有着一段动人的故事。 创始人滝本金藏的妻子曾患皮肤病,在登别温泉很快痊愈。这神奇的疗效让滝本先生当即决定在此建造温泉旅馆,让更多人享受温泉的恩泽。166年过去了,这份初心依然在每一滴温泉水中流淌。 在大浴场里,5种不同泉质的温泉水各有其妙。这里采用"放流式"——温泉水直接从源头流入,

By Sakashita Yasunobu
曾经的"北方华尔街"小樽深度游记

曾经的"北方华尔街"小樽深度游记

从JR札幌站出发前往小樽,短短32分钟的车程。窗外的风景从现代都市逐渐过渡到怀旧小镇,我的心情也渐渐从都市的喧嚣中沉静下来。电车沿着海岸线驶向小樽,这座曾经被称之为"北方华尔街"的小城。 列车在小樽站停靠,随着人群我走出月台。 如果你像我一样是个喜欢深度体验的旅行者,不妨考虑在KITARINN租一辆电动脚踏车。小樽的坡道不少,电动车会让你的探索之旅轻松很多。我来到站前叫KITARINN自行车租赁(这里还提供行李寄存服务),我们租到一辆电动自行车。老板娘是个热情的人,她用简单的中文跟我们打招呼。 如果您带着孩子或者长辈同行,可以步行两分钟直接前往旁的中央巴士总站。这里的巴士线路四通八达,不仅可以到达市内各个景点,还能前往积丹、札幌、余市等地。对于行程紧凑的游客来说,这无疑是最省力的选择。 华尔街的金色记忆 大约骑行五分钟左右,我便来到了色内街。这里曾经是小樽金融业的心脏,虽然昔日的荣华繁华不再,但那些石制建筑如同这座城市历史的守望者依然威严挺拔。 首先似鸟美术馆映入眼帘时,我被那典雅的建筑风格深深震撼。这座原北海道拓殖银行小樽支店的建筑,见证了《蟹工船》作者小林多喜二的青春

By Sakashita Yasunobu
指宿沙蒸温泉游记

指宿沙蒸温泉游记

玉手箱列车开启指宿之旅 前往沙蒸温泉胜地指宿是我两个月前就开始酝酿的计划,特意选择了乘坐传说中的特急玉手箱号观光列车。说到"玉手箱"的由来,就不能不提及那个在日本家喻户晓、记载在《日本书纪》和《丹后国风土记》中的古老传说。 善良的渔夫浦岛太郎救了一只海龟,被邀请到龙宫做客。在那里,他与美丽的乙姬公主一见钟情,在如梦似幻的海底世界度过了三年时光。当思母之情涌上心头,决定返回人间时,乙姬公主送给他一个精美的玉手箱,千叮咛万嘱咐切不可打开。然而,当浦岛太郎回到故乡,却发现人间已过三百年,熟悉的一切都已不复存在。无比悲痛的他违背了诺言,打开了那个神秘的玉手箱,瞬间从青壮少年变成了白发苍苍的老翁。 据说设计师水户冈锐治正是从浦岛太郎打开玉手箱的瞬间中汲取了灵感。当我亲眼看到指宿玉手箱列车那黑白相间的车身设计,看到停靠时从车顶喷出后飘散而去的白色水雾,不禁为设计师如此传神地将神话传说与现代列车设计融合的妙想而深深折服。 JR KYUSHU D&S TRAINS D&S列車の旅 特急指宿のたまて箱JR KYUSHU D&S TRAINS D&

By Sakashita Yasunobu
“夜空摇曳金穗,万灯承载人愿”秋田竿灯节记

“夜空摇曳金穗,万灯承载人愿”秋田竿灯节记

早就听说过秋田竿灯节的魅力,这个被誉为日本东北三大传统民俗节庆活动之一的盛典。终于在今年8月让我有了亲身体验的机会,于是和朋友相约,踏上了这段探索秋田竿灯文化的旅程。 秋田竿燈まつり-Akita Kanto Festival- 国重要無形民俗文化財厄よけ、五穀豊穣などを願う行事として長い歴史を持つ「秋田竿燈まつり」。約280本もの竿燈の明かりが会場の大通りを埋め尽くし、まるで黄金の稲穂のように揺らめき、真夏の夜空を照らします。国重要無形民俗文化財。 踏上秋田之旅 竿灯祭是约270年历史的国家重要无形民俗文化财产,源自人们为驱离农忙时节的睡魔而举行的除邪消灾活动。据史料记载,关于秋田竿灯节最早的文字记录可以追溯到江户宽政年间,这让我们对即将见证的这一拥有230多年历史的传统民俗充满了期待。8月2日,我们轻装从东京站出发,乘坐新干线约4小时便抵达了JR秋田站。从中央检票口出来,天棚上装饰着竿灯悬挂的米白色的和纸制灯笼立刻营造出了节日氛围。检票口不远处摆放着:憨厚可爱的秋田犬毛绒布偶,旁边是巨大的红脸蓝脸生剥鬼面具,瞬间吸引了我们驻足拍照。生剥鬼是秋田地区独特的民俗文化象征,红脸和蓝

By Sakashita Yasunobu