TV録画TSファイルを逆テレシネ変換しながらFluid Motionを効かせて再生する方法

最終更新日:2016年11月24日
1.    はじめに
せっかく、Fluid Motionを使えるAMDのビデオカードやAPUを持っているのに、「TV録画TSファイルをLAV Filter等で30pにインターレース解除してFluid Motionを効かせて再生すると画面のパン等でむしろガクガクする」、「逆テレシネ変換してエンコードすればいいらしいけど、面倒臭すぎる」といった理由で、Fluid Motionを堪能できていない方が大勢いると思います。
そんな方は、以下に記載する方法でTV録画のTSファイルを再生してみてください。めくるめくヌルヌルの世界が待っています。個人的にはアニメもさることながら、ハリウッド映画を見た時には、良い悪いは別として、その違いに驚きます。
使用するソフトは全部有名どころのフリーソフトです。試すだけ試してもらえればと思います。TV録画TSファイルをインターレス保持でエンコードしたものにも使えます。
ただし、まだ色々不満や弱点があると思いますので、もっと良い設定や再生方法を探ってもらい、みんなで共有できたらと思っています。
また、正直、これを書いている本人は、動画やその処理についての詳しい知識は皆無です…。なので、正しくない説明や知識が記述されている部分が多数ある可能性があることをご了承ください。

2.    この設定方法の特徴
  Fluid Motionに渡す前にリアルタイムに24pに逆テレシネ変換(ただし、変換ミスは結構でると思います)。
  BS放送やCS放送に多いrffを使った放送の録画ファイル再生にも対応。
  再生時に逆テレシネ変換、インターレース解除する方法なので、うまく再生できない動画があった場合にパラメータ調整や異なる方法を簡単に試せる。
  インターレース保持でエンコードしたファイルも同様に再生可能なため、tsファイルをエンコードする場合は、何も考えずにインターレス保持でエンコードすればOK

3.    使用時の注意点
  スポーツ中継やニュース、バラエティ番組等(アニメ、映画、ドラマ以外の番組)は基本的にTV放送の元になっている動画が60p/60iらしいので、Fluid Motionを使うとかえってカクカクになる場合がほとんどです。この方法ではなく通常の方法で再生してください。
  アニメや映画、ドラマなどは、元の動画が24pのものが多いのでこの方法の効果が絶大です。しかし、一部、元動画が30p60p/60iのものもあるので、再生してみてスムーズさに違和感を感じる場合は、ffdshowAvisynth設定をOFFにしてください(再生時にタスクトレイに表示されるffdshowのアイコンを右クリックして、AviSynthのチェックをオフにすると逆テレシネ変換しなくなります)。または、後ほど出てくるffdshowのAvisynth設定でITコマンドに渡すパラメータの24を30に変更してください(rffが使われていても対応できるのでこちらの方が良いです)。これで、スムーズになるなら元動画が30pです。
  ffdshowAviSynth設定をOFFにしてもまだ、スムーズさに欠けるようなら元の動画が60p/60iなので、Fluid Motionを使わない設定(プレイヤーの外部フィルタを全部使用しない設定)にして、通常の方法で60pへインターレース解除して再生してください。
  たまに、再生中に映像だけ止まったり、ひっかかったりする場合があります。特に動画再生し始めた最初の方(数十秒後)に発生しやすいです。その場合、動画プレイヤーで少し前に巻き戻して再生すれば、たいてい問題なく再生できます。頻繁に発生するようであれば、PCの性能不足かも知れません。
  ソフトウェアでインターレース解除と逆テレシネ変換をリアルタイムで行う方法のため、もしかするとCPUの性能に大きく左右される可能性があります。i7-4790KでのCPU使用率は、おおむね15%以下でCPU負荷は大きくないですが、処理速度が命なのでどの程度の処理速度のCPUが必須なのかは、やってみないとわかりません。

4.    使用するソフト(2016/11/12時点)
使用するソフトは以下の通りですが、基本的に最新版か安定版で動くはずです。OSは、残念ながらWindows7では動かないので、Windows8以降である必要があります。

  Radeon Software Crimson(グラフィックカードドライバ)
  Bluesky Frame Rate CoverterBlueskyFRCFluid Motionを使ったフレームレート変換用のフィルタ)
  ffdshow tryouts(デコードやインターレース解除等々を行うフィルタ)
  avisynth+(動画編集用ソフト)※avisynth2.5.86.0、それぞれの派生mt版や64bit版でも構いません。
  avisynthプラグイン
IT_YV12(逆テレシネ変換用プラグイン)※IT_YV12_0103_width8K.zipをダウンロード。
  動画プレイヤーffdshowBlueskyFRCをフィルタとして登録できればなんでも構いません。
  MPC-BE
※動画プレイヤーは、ffdshowBlueskyFRCを外部フィルタとして登録できればなんでも構いません。MPC-HCqonohaPotPlayer辺りで好きなものを使ってください。以下では、MPC-BEでの設定例を記載しています。
複数の動画プレイヤーや32bit版、64bit版をインストールしておき、Fluid Motionを使わずに通常の再生(LAV Filterや動画内蔵デコーダで60pへインターレース解除)するプレイヤーと本設定を使用してFluid Motionを使って再生するプレイヤーを使い分けるようにするのがおすすめです。MPC-BEの32bit版と64bit版をインストールしておき、32bit版の方にだけ本設定をしておくのが使い勝手も変わらずに使い分けできて一番いいかもしれません。

5.    各ソフトのインストール
基本的に各ソフトのインストールはデフォルト設定で構いませんが、注意点のあるものだけ以下に記載します。
64bit版と32bit版があるものは、OS64bit版なら基本的に両方インストール可能です(qonohaOSと同じbit数版のみ使用可能)。
ただし、使用する動画プレイヤーが64bit版なら各ソフトも64bit版の方(動画プレイヤーが32bit版なら各ソフトも32bit版の方)が使用されますので、使用する動画プレイヤーと同じbit数のものがインストール、設定されている必要があります。

  ffdshow tryoutsのインストール
インストール時に[DirectShow-video decoder]は必要なのでチェックしてください。あとはお好みで構いません。




  avisynth+のインストール(※avisynth2.5.86.0、それぞれの派生mt版や64bit版でも構いません。)
avisynth+は、デフォルト設定でインストールしてください。
MT版(マルチスレッド版)の方がパフォーマンスがでるかも知れませんので、気になる方は以下のURLからMT版をダウンロードしてください。
MT版にインストーラはありませんので、通常版をインストール後に、MT版の「x86」(32bit版)の「AviSynth.dll」と「DevIL.dll」を「C:\Windows\SysWOW64」フォルダ下に上書きコピーします。ただし、OS32bit版の方は、「C:\Windows\System32」フォルダ下に上書きコピーしてください。
また、MT版の「x86」(32bit版)の「plugins」フォルダ下のファイルをすべてAvisynth+インストールフォルダの「plugins+」フォルダ下に上書きコピーします。
MT版の「x64」(64bit版)の「AviSynth.dll」と「DevIL.dll」は「C:\Windows\System32」フォルダ下に上書きコピーします。64bit版の「plugins」フォルダ下のファイルは、Avisynth+インストールフォルダの「plugins64+」に上書きコピーします。

  avisynthプラグイン(IT_YV12)のインストール
IT_YV12_0103_width8K.zipを解凍し、解凍された「x86」フォルダ下にある「IT.dll」(32bit版)をavisynth+をインストールしたフォルダ(デフォルトは「C:\Program Files (x86)\AviSynth+」)の下の「plugins」フォルダにコピーしてください。
また、解凍された「x64」の「IT.dll」(64bit版)はavisynth+インストールフォルダ下の「plugins64」フォルダにコピーしてください。
もちろん、avisynth+のインストール時に32bit版または64bit版のどちらかのみを選択した場合は、片方だけで構いません。

6.    Radeon Software Crimsonの設定
[ビデオ]の設定で「カスタム」を選択し、[AMD Fluid Motion Video]を「オン」に設定してください。
 

7.    BueskyFRCの設定
次図のように設定してください。
AFMモード]や[ビデオ品質フィルタを有効にする]、[デコード]タブの設定はお好みで構いません。
Zero-Copyモードを有効にする]は、今回の設定ではレンダラにEVR系を使うので、ONの方が良さそうです。ただし、EVR系以外のレンダラ(madVR等)を使う場合は、このZero-CopyモードをOFFにする必要があります。




また、<終了>ボタン右横の▲をクリックして、BlueskyFRCDirectShowフィルタとして登録してください。


8.    ffdshowの設定
ffdshowの[ビデオデコーダの設定]を起動して設定を行います。以下、各画面での設定ごとに下部の<適用>ボタンをクリックして設定を保存してください。

まず、左側の領域にある[コーデック]を選択し、下図のように[MPEG2]のデコーダを「libavcodec」に設定します。また、お好みで右側の領域を右クリックし[安定な形式すべてをlibavcodecに設定する]を選択してください。



次に、左側の領域の[デコーダのオプション]を選択し、下図のように[ソフトテレシネを検出して表示時間の長さを平均する]のチェックをOFFに設定します。この設定は、rffの処理にかかわりますのでちょっとしたポイントです。



次に、左側の領域の[インターレース解除]を選択し(左側の領域の項目はドラッグで表示順を変更できます)、下図のように[インターレース解除]のチェックをONに設定し、[手法]で「ffmpegのインタレース解除」を選択します。

  yadifを使わないの?と思う方もいるかも知れませんが、yadifでも24pインターレース解除できるのですが、試した結果、今回の方法とは相性が悪く動作の安定性がイマイチでした。ただし、画質はyadifの方が上かも知れません。

次に、左側の領域の[AviSynth]を選択します。
まず、入力ボックスに以下のテキストを入力してください。

IT(fps = 24, ref = "TOP", blend = false, diMode = 0)

これが、24pに逆テレシネ変換を行うコマンドになります。元動画が30pと思われるものは、24の部分を30に変更して再生ください。また、動画によっては、上記の”TOP”を”BOTTOM”にしないと動きがスムーズにならない場合もありますので都度調整してもらえればと思います(再生時にタスクトレイのffdshowアイコンを右クリックして[ffdshow Video Decoder]を選択すれば簡単に変更できます)。
今のところ、試した範囲ではこのITプラグインコマンドが一番安定していましたが、Avisynth用にはこれ以外にも多数の逆テレシネ変換プラグインが開発されており、何を使うと速くて奇麗で処理ミスがないか試行錯誤する部分になります。
また、ITの前後に他のコマンドを入れたり、引数の値を変えたりということも考えられます。avisynthの達人の方々により、より良い設定が見つかればと思います。



この他、この画面で以下の設定を行ってください。
AviSynth]のチェックをON
ffdshowのビデオソースを追加する]のチェックをON
[入力色空間]の[YV12]と[YUY2]のチェックをON
3:2プルダウン]を「プルダウンを適用する」に設定(※この設定が、rffの処理に関係します)
[バッファー(後方/前方])に「10」、「10」を設定
(※このバッファーの設定は、実はどういう値が良いのかわからないので、適当です。ファイルによっては、ファイルの最後の部分で前方バッファ分の映像が再生されず音声のみになったりします。詳しい方のアドバイス募集中。)

また、使用していてffdshowを使うように設定していないプレイヤーでの動画再生時やゲームで、ffdshowが介在(タスクトレイにffdshowのアイコンが表示される)してしまう場合は、ffdshowの[ビデオデコーダーの設定]を起動する際に、右クリックして管理者として実行し、[DirectShowのコントロール]で[メリット値]を「使用しない」(スライダーを一番左側にする)に設定してください。 このメリット値の設定は、設定ツールを管理者として実行しないと保存されないので注意してください。



9.    MPC-BEの設定
最後に、MPC-BEの[オプション]で以下の設定を行います。

[外部フィルター]の設定で<フィルターの追加…>ボタンをクリックして、以下のフィルタを追加します。
ffdshow Video Decoder
Bluesky Frame Rate Converter

追加したら、それぞれチェックをONにして、「優先する」に設定してください。


最後に、[映像]の設定でビデオレンダラーを「エンハンスドビデオレンダラー(カスタム)」に設定します。
EVRバッファー]を「30」に設定します。(※この設定もよくわからないので、適当に最大値にしています。)
レンダラに関するその他の設定はお好みで。


※レンダラはやっぱり、最強(最狂?)の「madVR」でしょ?という方も多数いると思います。今のところ、試してみた結果では、この方法とmadVRはあまり相性が良くないみたいで不安定になったりしました。ただ、RX470でやっているので処理性能が足りなかったり、madVRの設定が良くなかっただけかも知れません。当然、画質はmadVRの方が上なので、色々試してみてもらえればと思います。

ここまでの設定が完了したら、一度、MPC-BEを再起動して設定を確認してからTSファイルの動画を再生してください。
動画再生中にBlueskyFRCの状態タブに下図のように、FrameType: Progressive、FrameRate: 24fps、VpMode: Progressive(frame Interpolation)と表示されていれば成功です。


10.最後に
以上が、色々試してみた結果、それなりに満足できたTV録画TSファイルをFluid Motionを効かせて再生する設定方法です。
この他、ffdshow raw video filterLAV Video Decoderを使って、ハードウェアデコードやハードウェアインタレース解除とavisynthでの逆テレシネ処理を組み合わせたり、ffdshowを使わずに、PotPlayerで直接Avisynthを使ってみたり、Avisynth2.5.8MT6.0MTでマルチスレッド設定をしてみたり、ITプラグインではなくて、Auto24FPSTDecimateで逆テレシネ等々いくつか試してみましたが、今のところ、rffも上手く処理できてシーク操作時もそれなりで、一番安定して再生できると感じたのが今回の設定方法です。
しかし、最初にも書きましたが、これを書いている本人は、動画やその処理についての詳しい知識は皆無です。ググってなんとなくかき集めた情報を試行錯誤してできた設定なので、もっともっと良い設定や方法があるはずだと思っています。
今後、動画の達人の方々がより良い設定や方法を編み出し、公開してくれることを祈っています。

以上。

余談ですが、SVPでも同じことをやろうとしたのですが、avisynthでエラーが発生し上手くいきませんでした。Avisynthの達人たちが昔からやっているように、svpflow1.dllsvpflow2.dllのコマンドを使って、avsスクリプトを自分で書いてSVP Managerを通さなければうまくいくのだと思いますが、SVPの柔軟性はなくなるのでなんとなく気乗りしません…

4 件のコメント:

  1. 元の動画60p/60iを再生する
    オススメのプレイヤーがありましたら教えてください。
    よろしくお願いします。

    返信削除
    返信
    1. コメントありがとうございます。
      スポーツ中継などの60p/60i撮影番組のTSファイルでしたら、この方法を使わずに、
      TVTest(+TvtPlayプラグイン+TVTest DTV Video Decoder)やMPC-HC、MPC-BE(内蔵デコーダまたは
      LAV Video Decoder)で、60pにインターレース解除して再生するのが良いと思います。

      削除
    2. 返信ありがとうございます。

      MPC-HCやMPC-BEで内蔵デコーダ(EVRとか)を使えば
      後は何もしなくても60pにインターレース解除されるという
      理解でよろしいでしょうか?

      ちなみにmadVRはどうでしょうか?

      あまり詳しくないので
      変な質問してたらすみません。

      削除
    3. 多分デフォルトのままでも通常の60pへのインターレース解除が
      されると思いますが、視聴していて違和感があるようでしたら
      mpc-hcやbeのデコーダの設定方法をネットで検索して、
      設定を見直してみて下さい。また、MPC系でレンダラをEVRカスタムや
      madVRにしている場合は、動画再生中にctrl+jキーを押すと、
      再生フレームレート等の情報が表示されます

      削除