XMedia Recode 簡単解説

はじめに

2分程度のかわいい琴葉動画を投稿したので見てください。(これはこの動画のための記事なので)

【琴葉姉妹】XMedia Recode超簡単解説~動画の音声だけ差し替えたい!~【VOICEROID解説】 - ニコニコ動画

他の機能の解説

上の動画はTwitter上の会話*1で自然発生した動画なので、かなり色々と端折られています。

そこで、ここでは動画で解説してないことを用途別にいくつか書いていこうと思います。

なお、ここで扱うXMedia Recodeはバージョン3.4.9.5の64bit版です。

下記リンクの公式サイトから最新版を入手できます。

XMedia Recode - Video Converter, MOV, MP4 , MKV, MP3, FLV


簡単動画編集

「クロップ/プレビュー」タブで簡単な動画編集ができます。

f:id:skyzi000:20200319064913p:plain
「クロップ/プレビュー」タブの画面

ただし、この画面でのプレビュー再生は音ズレしたりすることがあるので注意してください。

出力されるファイルは多分音ズレしないはずです。


リサイズ

大体のソフトでできますが、このソフトでも簡単にリサイズできます。 f:id:skyzi000:20200319073501p:plain

「クロップ/プレビュー」画面左側の下の方にある「アスペクト比を保持」にチェックを入れてから、上の幅か高さを設定します。

スケーリングはとりあえずOBSでお世話になってる「Lanczos」を選んでますが、その上下のやつも強そうなので試してみてもいいと思います。()


映像フィルター

「クロップ/プレビュー」画面左側の「映像トラック:」タブのフィルター追加ボタンから追加できます。

f:id:skyzi000:20200319082314p:plain
映像フィルター

いろいろと便利そうなのもあるので試してみてはいかがでしょうか。(正直使ったことが無い)


音声フィルター

「クロップ/プレビュー」画面左側の「音声トラック:」タブのフィルター追加ボタンから追加できます。

f:id:skyzi000:20200319074540p:plain
音声フィルター

音量補正が使いやすくて良いと思います……が、この音声補正、まさかデフォルトでかかるようになってるんですかね……これ罠では?

f:id:skyzi000:20200319080937p:plain
音声トラック

音量を勝手に変えてほしくないとき*2は必ずここの右下のタイムラインから音量補正を除去しておきましょう!!(右クリックから「フィルター除去」、もしくはクリックして選択してから左側の「フィルター除去」ボタンで除去)


無劣化カット編集

「クロップ/プレビュー」右側の動画の下に並んでいる青色のボタンでカット編集ができます。

f:id:skyzi000:20200319065256p:plain

右の方にある「[」ボタンで動画の開始地点を現在位置にセットし、「]」ボタンで終了地点を現在位置にセットすることができます。

この方法での設定が面倒な場合や、正確なカット位置があらかじめわかっている場合は、その下の欄(下記画像参照)に直接動画時間を打ち込むことでもセットできます。

f:id:skyzi000:20200319065900p:plain

開始地点と終了地点のセットができたら、「映像」タブと「音声トラック1」タブの「モード」を「コピー」に変更してからエンコードすることで、再エンコードすることなくカットができます。

エンコードを待つ時間もなく、劣化せずに動画を切り抜けるのでとても便利ですね!!!

ただし無劣化の性質上、キーフレーム以外でのカットができないはず(という認識で合ってるのかな……)なので、設定した時間から基本的にちょっと*3ズレます。

それが嫌な場合は映像も音声も変換するしかないと思います。

出力設定も簡単なので、AviUtl本体でちまちまとキーフレームを移動しつつ無劣化カットするよりは楽かもしれません(昔やりました)。


各種エンコード設定

主に「映像」タブの設定を載せていきます。(プロファイルの作り方がいまいちよくわからない*4ので、個人的な記録も兼ねてます)


動画の画質を出来るだけ保ったまま容量を減らしたい!(H.265ソフトウェアエンコード)

H.265の画質指定エンコードをします。

時間はかかりますがほとんど劣化させることなく、かなり圧縮できるので個人的によく使う設定です。

フルHD設定は以下の画像の通り。(他はよくわからないので初期値のまま)

f:id:skyzi000:20200319023122p:plain
「一般」の設定
f:id:skyzi000:20200319022955p:plain
「レート制御」の設定(VBV最大ビットレート以外は初期値のまま)

H.264に比べて時間はかかりますが、より小さく圧縮できます。(同じ画質で半分のファイルサイズに出来るとか言われてる。)

僕の場合は、標準(medium)プリセットの品質(CRF)18~22辺り*5エンコードすることが多いです。*6

H.264では低速(slow)とか低速の一つ下のやつ(slower)とかを主に使っていますが、H.265だと標準(medium)がちょうどいいかなと思っています。*7

レート制御のVBV最大ビットレートという項目がかなり重要で、とりあえず0を入れておくと自動で設定してくれるみたいなのでおすすめです。

このVBV最大ビットレートの初期値がかなり低めに設定されているので、初期値のままにしておくと動画によってはどれだけ品質を上げてもノイズが出たりします(2敗)。*8

ちなみに最近の録画はOBSのNVIDIA H.264 NVENC (new)のCQレベル16とかですることが多いです。結構奇麗。(なおファイルサイズ)

ソースにもよりますが、この設定で1080p60の動画をエンコードするのに、うちのRyzen9 3900X(12コア24スレッド)だと動画時間の約2倍の時間で終わります(つまり30fpsくらい)。

「動き推定」の「Bスライスの重み付き予測を有効」にチェックを入れたりすると、画質がちょっと良くなるような気がします(が、よくわからない……)。

レート制御の「AQモード」を「AQ有効-自動分散」にすると画質が良くなるらしいですが、なぜかファイルサイズもかなり大きくなるので微妙な感じ(1度のテストケースではAQ有効より30%ほど増えました。低ビットレートだと効果を発揮するのかもしれない……?)。*9


グラボを使って高速でバランスよく圧縮したい!(NVENC_HEVC/H.265ハードウェアエンコード)

CPUでのH.265ソフトウェアエンコードだと時間がかかりすぎる上に重くて何もできなくなるので、グラボを使ってバックグラウンドで高速に高圧縮エンコードしたいっていうわがままな設定です。

ハードウェアエンコードは録画や速度を要するときには非常に便利ですが、保存目的にはあまり向かないような気がするので僕はあまりやりませんけど。

※この設定はNVENCが利用できるNVIDIA製のグラボを必要とします。
 NVIDIA製のグラボでも一部利用できないものもあるのでご注意ください。*10

設定は以下の画像の通りです。(GTX1660以前(1650を含む)のグラボはおそらくBフレーム関連の機能が使えないはずなのでそこら辺の項目は飛ばしてください?)

f:id:skyzi000:20200319054103p:plain
「一般」の設定

僕自身あまり使わない(上にそれぞれの設定項目についてよくわかってない)ので微妙に適当感のある設定ですが、うちの環境だとCPUでのH.265エンコードより5倍くらい速い?(150FPSくらい)です。

でもH.264のmediumプリセットのソフトウェアエンコードでも十分な速度(80~120FPSくらい)が出るのでそっちでもいいかなという感じ……だったんですが、結構画質も良い気がしますねこれ……。

量子化のQP値は、小さいほど高画質になります。

3つの値がありますが、I<P<Bになるように設定すると良いらしいです。

デフォルトの値は結構小さいですが、試してみたところ画像の26-28-30でも動画鑑賞が目的ならほぼ問題なさそうな感じです。

容量もH.264のソフトウェアエンコードとあまり変わらないくらいです。 *11

ちなみに設定の「VBR品質」はレート制御モードが「量子化」の時は意味ないです。

あと下の方の設定は未だいまいちよくわかってないのでどなたか教えてください……。(なんとなくそれっぽいものにチェックを付けてるだけ)

「重み付き予測」のチェックボックスは、「B-フレーム数」を0以外に設定するとチェックできなくなりますが、一番上の「モード」を一旦「コピー」にしてから「変換」に戻すと、何故かチェックできるようになります。しかし、チェックしてエンコードすると速度が半分くらいに落ちます。


参考資料


脚注

*1:KKIさんのこの発言のおかげです。ありがとうございます。

*2:MIX・マスタリング済みの音声を乗せる時にこれやられると発狂ものですよ多分。僕はやらかしてないのでセーフですが危なかった……。

*3:何秒もずれたりはしない。動画によってまちまちだけど大きくても1秒程度かな……

*4:ファイル→設定を保存で良いんかな……面倒……(その点HandBrakeはとても分かりやすかった)

*5:もしかしたら動画とかで再利用するかもしれないものは16~18、個人的に見るものは18~20、おそらく見ないけど置いておきたいものは20~24といった感じで分けてます。どっちにしろ多少なりとも劣化するので、動画に使う素材は基本エンコードしません。

*6:でもぶっちゃけ動きの激しい動画なら同じCRF値のH.264とあまり変わらないファイルサイズになるのでH.265使う必要が無い気もする……設定がおかしいのかな……。

*7:H.264ではプリセットを遅いものに変えると画質はあまり変わらずファイルサイズが小さくなるようですが、それに対してH.265で遅いプリセットにすると画質が良くなる代わりにファイルサイズも大きくなるらしいです。そのうち検証したい……。

*8:ちなみにH.264エンコードの場合も同様です。ただし、これが高すぎると再生できる環境が制限されたりするのでそこらへんには注意した方が良いかもしれません。(光学ドライブに焼いても再生できなくなったりとか)

*9:AQモードというと、画面内の目立たない場所の画質を下げ、その分目立つ場所の画質を上げることによって見た感じの画質向上を狙う機能のはず。全体のビットレートが増えるものなんですかね……?

*10:ハードウェアエンコードをするなら、HEVCでBフレームが使えるGTX1660以上のグラボをお勧めします。

*11:えっ今までCPUでのソフトウェアエンコードにこだわってたけど、ひょっとして保存用のエンコードでも大量に処理したいときとかにはかなり使えるのでは……?(ぐるぐる目)時間はかかるけどやっぱりソフトウェアエンコードの方がビットレート当たりの画質は良いです。