PC関連のチラ裏

自分用(素人)

久しぶりにDVDのVOBをエンコした

DVD映像なんて軽く10年以上は触ってない気がしますが・・・自宅に保管されていた骨董品のようなDVDの映像を見たくなり、これを最近立てたDLNAサーバに突っ込みたくなりました。
適当にエンコしとこうと思ったらハマった点をメモ。想定できそうな再生機器はPC, Android, Viera。ほぼViera(2021年モデル)用。

残す形式はmkv

PS3 Media Serverを立てていた身としては、市販品がmkvを読んでくれることに軽く感動しましたが、Vieraは問題なさそうだったのでmkvで保管することにしました。mp4でもよかった(むしろ好ましいかと思った)んですが、Vieraで字幕が表示できなくて諦め。もうmkvの方が互換性ある世界ってマジか。

  • 映像: H.264

    もうとっくにH.265の時代だけど、一応まだデータ容量(圧縮率)より再生互換性・再生負荷の方が大切かなぁと・・
    aviutlでの画質系フィルターは、SharpenResizeでノイズリダクションかけずにシャープ気味リサイズのみ。以下はx264guiexの自分用コマンド(下部に出てくるやつ)。プリセットはmedium,none,high、何年も前に適当に実写用で設定したのを流用しているだけで、良い感じかは不明。

     --crf 19 --qcomp 0.8 --rc-lookahead 250 --aq-mode 2 --psy-rd 0.8:0.1 --keyint -1 --b-adapt 2 --me umh --direct auto --ref 4 --trellis 2 --cqm jvt
  • 音声: AAC

    後述する方法で分解&再結合したVOBのAC3を、そのままエンコせずにコンテナに入れたら、Vieraでシークできない場合がありました(できる場合もあった)。再エンコした方が良さそうでした、そして再エンコするならAACかなぁ。エンコーダはqaacでTrue VBR。もうNeroAacEncの時代じゃないんですねぇ

  • 字幕: idx+sub

    idxの中身をテキストエディタで弄ってmkvにそのまま入れることができる。トラックごとならmkvextractで再抽出可能。
    抽出はVobSubのVobSub ConfigureからIFOを読ませる。vobsub.dllやDVobSub.axが存在しなくて起動しない事象が発生したけど、SysWOW64からProgram Filesの方にdll,axをコピーして実行ディレクトリを変えた。system32で変なことせんといてもろて・・

    最新のMP4Boxを使ってみたらMP4にidx+subを入れることができ、PCでは字幕表示できたのですが、Vieraでは表示できませんでした。最新のMP4Box(GPAC version 2.0)、実行ファイルがzipで配られてないっぽいのも不満。mkvで事足りる環境になってきたので、もう使わないかも。

言語選択によって(映像埋込の字幕等により)映像が変わる

そのままVOBをaviutlやDGIndexに投入すると、言語1映像→言語2映像→1→2→・・のように同じシーンが交互に繰り返される部分がある。普通にエンコすると交互のシーンはそのまま繰り返されてしまう。

  1. VOBをひとまとめにする。(以下は例)
    copy /b VTS_01_1.VOB + VTS_01_2.VOB + VTS_01_3.VOB VTS_01all.VOB
  2. ひとまとめにしたVOBをVobEditでDemux(VOB IDを選ぶ)。VOB IDの切り替わり毎にVOBがバラバラになるので、ログと実際の映像を見ながら、例えば言語1のストリームだけを抽出する(言語2のVOBファイルを退避or削除する)。
  3. (沢山ある場合は)バラしたVOBを再結合するコマンドを作成。以下の内容のbatにまとめたいVOBを投入する。引数は計8191文字までらしいのでファイルパス長い場合は注意。
    SET command=copy /b %~nx1
    
    :LOOP
    shift
    if "%~x1"=="" goto FIN
    SET command=%command% + %~nx1
    echo %command%
    goto LOOP
    
    :FIN
    echo %command% newVOB.vob>command.txt
  4. ↑で作ったコマンドを実行。
  5. newVOB.vobを元にして普通にエンコする。(単言語の音声ストリームを抜き出す場合も、両言語ともnewVOB.vobからでよかった)

その他

  • aviutl 拡張編集のインタレ解除や24fps化は、綺麗にできたか(フレーム送りで)確認した方がいい。拡張編集の横軸を最大拡大すると、1メモリが1フレームになるので、必要な場合はそれで音声を位置調整。
  • TVのノイズリダクションは優秀なので、ソースからは大して弄る必要ない。素人が似非アプコンをやろうとするよりは、情報量をできるだけ減らさずに残して、テレビにノイズリダクションさせた方がマシ。(それはそう)
  • 再生時のidx+subの位置調整

    レターボックスの黒帯削除等でクリッピングしていると必要。VieraでもPC(MPC-HC←)でもですが、idx内の設定項目のうち位置調整に使えそうなものは、sizeかscaleくらいしか反映されていない印象。少なくともorgやalignは弄っても違いが発生したように見えなかった。
    sizeをクリッピングの分だけ減少させれば元々の位置に設置できると思いきや、VieraとPCで表示位置に微差があった。結局は再生して確認するしかない。

  • mkvtoolnix・・・改めて、便利すぎ!

参考文献はメモするの忘れました