カラオケ字幕付きの楽曲動画の作り方 その3(エンコード編)
はじめに
エンコードをする目的は、できるだけビットレートを節約して元のファイルを小さくしながら、できるだけ元の品質を維持することです。
実際、ニコカラメーカー2で書き出したAVIファイルは20GBもあるので何とかして小さくしたいですよね。
このエンコードの目的を念頭に置いて、説明していきます
映像に関するキーワード
エンコードを説明する前に覚えておくべき映像に関するキーワードを紹介します。
解像度、フレームレート、ビットレート、コーデックの4つです。
解像度
解像度は映像の鮮明度を表しています。単位はpx(ピクセル)です。数値が大きいほど高精細です。
FHD(1920×1080 px)
4K(3840×2160 px)
DVD(720×480 px)
Full HD(フルエイチディ)を略してFHDと表記します。1920×1080 pxはよく使うのでこの値は覚えておきましょう。
フレームレート
フレームレートは1秒間のコマ数です。単位はfps(frames per second)です。この数字が大きいほど滑らかな映像になります。
23.976 fps 映画/アニメ
29.97 fps テレビ(地上デジタル放送)
30 fps,60fps,120fps ゲーム
ここで注意すべきことは、30 fpsと呼ばれていても中身は29.97 fpsだということがあります。同様に24 fpsと呼ばれていても23.976 fpsだということがあります。
地上波デジタル放送なら29.97 fps。映画/アニメなら23.976 fpsだということは覚えておきましょう。
フレームレートの使い分けに関してはこちらを参照ください。
・24fps 映画で採用されています。映画のような表現効果を希望されるとき。(23.98fps)
・30fps 日本国内などNTSC圏内でテレビやDVDに採用されています。(29.97fps)
ビットレート
ビットレートは1秒間あたりのデータ量のことです。
単位はbps(bit per second)です。この数値が高いと画質が良くなります。
8Mbps YouTubeのFHD時のおすすめ
9.8 Mbps DVD
10-20 Mbps VimeoのFHD時のおすすめ
40 Mbps Blu-ray
一概にビットレートが高ければ良いというわけではなく、動画によって適切なビットレートを割り当てる必要があります。無駄に高いビットレートでエンコードしても画質の差を実感できずファイル容量が大きくなるだけということもあります。
コーデック
コーデックは動画がエンコードされる形式のことです。
H.264は高画質と効率的なファイルサイズとのバランスを取るスタンダードなコーデックです。
H.265はH.264と比較して小さいサイズで高画質なファイルが作れます。
音声に関するキーワード
次に音声に関するキーワードも紹介します。
サンプルレート、ビット深度、ビットレート、コーデックの4つです
サンプルレート
サンプルレートは音声をアナログ信号からデジタル信号に変換する時、1秒間に何回音声のサンプリングの処理が行われるかを表す数値です。この数値が大きいほど、滑らかな音になり音質が良くなったと感じることができます。単位はHz。
ビット深度
ビット深度は、音声の記録をどれくらいの細かさで行うかの数値です。数値が大きいほど小さい音でもきめ細かく収録可能となります。単位はbit。
ビットレート
ビットレートは1秒間あたりのデータ量のことで動画と同じです。この数値が高いと音質が良くなります。単位はbps。
コーデック
音声コーデックも動画と同様でエンコード形式のことです。
よく見かけるものを上げると
MP3
データサイズを原音の約10分の1に圧縮しているためファイル容量は小さいが、その分音質は劣る。ほぼ出番なし。
AAC(AAC-LC)
MP3より少ないデータ量で高音質を実現。H.264コーデックでエンコードした動画ファイルの多くはこの形式で圧縮が行われています。よく使います。
WAV
Windows標準の音声ファイル形式。CDをリッピングするとこの形式で保存されることが多い。CDとほぼ同じ音質だがデータ容量は大きい。
FLAC
高音質ながらデータサイズを圧縮している。ハイレゾ楽曲データで使われていることが多い。
良く見る組み合わせ
44.1 kHz ビット深度不明 320 kbps AAC ダウンロード音源(レコチョク)
44.1 kHz 16 bit 1411 kbps WAV CD音源
96 kHz 24 bit 4617 kbps FLAC ハイレゾ音源
以上の映像と音声に関するキーワードを踏まえて、
今回は「YouTubeにアップロードする動画におすすめのエンコード設定」を参考にエンコードをします。
このYouTubeヘルプを参考にすると映像の解像度、フレームレート、ビットレート、コーデックはそれぞれ
解像度:1920×1080 px
フレームレート:29.97 fps
ビットレート:8 Mbps
コーデック:H.264
カラオケ音声の場合、おすすめ設定ではなくミュージックビデオのエンコーディングの仕様の方が参考になります。
コーデック、サンプルレート、ビットレート、チャンネル数はそれぞれ
コーデック:AAC-LC
サンプルレート:44.1 kHz
ビットレート: チャンネル 2 つで 320 kbps 以上
チャンネル数:2(ステレオ)
ではこの設定になるようにエンコードを行っていきます。
エンコードソフト(HandBrake)のインストール
まずエンコードソフトHandBrakeをインストールします。

赤いボタンを押すとHandBrake-1.5.1-x86_64-Win_GUI.exeというファイルがダウンロードできます(2022.9.25現在)。このファイルをダブルクリックします。

Nextを押していきます。


インストール場所を確認してInstallボタンを押します。

HandBrakeがインストールされました。

HandBrakeを起動するとこんなメッセージが出た場合は、はいを押しましょう。Webページが開くので指示されたアプリケーションをダウンロードしましょう。

Run desktop appsのDownload x64を選びました。(64 bitのPCを使っているのでこれを選択しましたが、どれをダウンロードするかはお使いのPCのシステムによります。)
ダウンロードしたwindowsdesktop-runtime-6.0.9-win-x64.exeをダブルクリックします。インストールボタンを押します。


エンコード基礎編 ビットレート指定(YouTubeおすすめ設定)
これでようやくHandBrakeが起動できます。

エンコードする動画をドラッグします。(書き出した約20 GBのAVI)


動画が読み込まれると概要タブが開きプレビューが表示されます。
設定するタブは寸法、動画、音声の3個のタブです。
寸法タブ
寸法タブに移動します。

寸法タブでは動画の解像度が変更できます。
今回は変更の必要はないので1920×1080の設定になっているかを確認するだけで値は変更しません。
確認する所は
ソース解像度の格納サイズ、表示サイズが1920×1080
最終解像度の格納サイズが1920×1080
を確認します。
動画タブ
続いて動画タブへ移動します。

ここではコーデック、フレームレート、ビットレートの設定を行います。
コーデックは動画エンコーダーの欄からH.264(x264)を選びます。(紛らわしいものがあるので注意)

フレームレートは29.97 fps、固定フレームレート。(可変は選ばない)
右側の平均ビットレート(kbps)にチェックを入れて8000を入力します。
2-passエンコードと1パス目を高速化にもチェックしておきましょう。
(きれいにかつエンコード時間も高速化してくれます。)
音声タブ
最後に音声タブへ移動します。

ここでは音声のコーデック、ビットレート、チャンネル数、サンプルレートを設定します。
コーデック:AAC(avcodec)
Bitrate:320
ミックスダウン:Stereo
サンプリングレート:44.1
ようやくYouTubeおすすめ設定ができました。
最後に画面の右下に出ている参照ボタンを押して保存先のフォルダを選択します。
そして、緑色のエンコード開始ボタンを押したらエンコード開始です。
2分くらい書き出しにかかるので待ちます。(PCの性能により時間は前後します。)
書き出した動画のプロパティを参照してみます。

動画のビットレートの値が小さい原因は、動画にほぼ動きがないので8 Mbpsも必要なかったからです。
また、オーディオのビットレートが307 kbpsとなっています。
音声ビットレートで設定した320 kbpsというのは、あくまで平均ビットレートなのでピッタリ320にはなりません。
その他の値はHandBrakeで設定した通りになっているのが確認できます。
ここまでで、エンコード基礎編(YouTubeおすすめ設定)は終わりです。
エンコード応用編 固定品質
つづいて動画のエンコード応用編になります。
難しい話も出てくるので興味ある人だけ読み進めてください。
「はじめに」でも話しましたが、エンコードの目的は、できるだけビットレートを節約して元のファイルを小さくしながら、できるだけ元の品質を維持することでした。
動画のビットレートは、映像の動きが多いか少ないかによって必要なビットレートが変わってきます。
極端な話、最適なビットレートを毎回検証する必要が出てきます。
ただ毎回検証するのは面倒なので、基礎編では当てずっぽうで「8 Mbpsくらいかな?YouTubeのオススメ設定だし」ってやった訳です。見事に外れましたが…
この品質とビットレートの問題を解決して一定レベルの品質を維持してくれるエンコードのやり方があります。
それはCRF(Constant Rate Factor)固定率係数をビットレートを指定する代わりに設定します。
この単語だけ聞いてもわからないと思うので、実際にHandBrakeで設定していきます。
基礎編と同様に動画を読み込み動画タブに移動します。

先ほどは平均ビットレートを選択し、数値を入力しましたが、今回は上の固定品質を選びます
22 RFと表示されているのが固定率係数のことです。
H.264(x264)の推奨RF値に関してはこちらのHandBrake公式ドキュメントに記載があり、22+/−1が推奨されています。
High Definition (e.g Blurays 720/1080) Use an RF value of 22 +/- 1 Since HD sources are typically quality, you can get away with a slightly higher RF value than SD content without any perceived difference in quality.
なのでデフォルト設定のRF 22のままでいきます。音声設定は基礎編と同じです。8000 kbpsで書き出した動画と容量を比較してみます。

9.66 MBの左が平均ビットレート8000 kbpsで書き出した動画
5.73 MBの右が固定品質RF 22で書き出した動画
固定品質RF 22の方が動画サイズが小さくなっています。品質の違いは再生した限りではわかりませんでした。
固定品質でCRF(Constant Rate Factor)を設定する方が平均ビットレートを設定するより簡単で容量が小さくなるように思えてきませんか?
極めつけにコーデックをH.265(x265)に設定してみましょう。
H.265(x265)固定品質RF 28がデフォルトとされています。
In H.264 and H.265, CRF ranges from 0 to 51 (like the QP). 23 is a good default for x264, and 28 is the default for x265. 18 (or 24 for x265) should be visually transparent; anything lower will probably just waste file size.
https://slhck.info/video/2017/03/01/rate-control.html
H.265(x265)固定品質RF 28で書き出すと5.66 MBとなり、さらにファイルサイズが小さくなりました。
コーデックごとCRF(Constant Rate Factor)の値をまとめると
H.264(x264) RF 22ならデフォルト設定。RF 18なら高品質。
H.265(x265) RF 28ならデフォルト設定。RF 24なら高品質。
ちなみに筆者はH.265(x265) RF 24で書き出しを行っています。
まとめ
映像と音声のキーワードを理解しよう。
映像(解像度、フレームレート、ビットレート、コーデック)
音声(サンプルレート、ビット深度、ビットレート、コーデック)
エンコードソフトHandBrakeの設定を理解しよう。
・ビットレートを指定してエンコード
・固定品質でCRF(Constant Rate Factor)を設定してエンコード
おまけ
HandBrakeで作った設定はプリセットとして保存できます。
「新しいプリセットを保存」ボタンを押して名前を付けて保存しましょう。

画面上部のプリセットボタンを押すとカスタムプリセットが表示されます。

次回予告
次回は、RhythmicaLyricsで英語の歌詞にタイムタグとルビを付けるやり方を解説します。
ニコカラの作り方のまとめ記事
その1から5まで読めばニコカラ作成で困ることは無くなるはずです。
その1 RhythmicaLyrics編
https://note.com/fukkun_mochikara/n/n4fca56c7bc4f
その2 ニコカラメーカー2編
https://note.com/fukkun_mochikara/n/n90cd8299fb7a
その3 エンコード編
https://note.com/fukkun_mochikara/n/nc30c0a9987a5
その4 英語の歌詞にタイムタグとルビを付ける
https://note.com/fukkun_mochikara/n/n50f85ddbe92d
その5 デュエット曲のニコカラ
https://note.com/fukkun_mochikara/n/n0a4979bb6d16