なんか作りたい

PCとかオーディオとか

Chinachuのライブ視聴をSVPで60fps化

ChinacuではXSPF形式のプレイリストを使ってVLCでのリアルタイム視聴を実現しています。
それならせっかくだしSVPでインターレース解除+フレーム補間して視聴したいなーしたくない? ということで色々試してみた。

ちなみにSVPとはAVISynthやらffmpegやらを駆使してフレーム補間再生を可能にするソフトウェアです。
基本的に無料で使えますが中身を弄りたい場合は$15の有料版が必要になりますが、今回は無料版でOKでした。

1. VLCでフレーム補間

SVP Pro ($15)ならVLCに対応するし簡単にできるんじゃね?
と思ったもののSVPとVLCの組み合わせはインターレース動画に対応していませんでした。残念。。
そのうち対応すると思うので面倒なことをしたくない方はそれまで待ちましょう。

2. Chinachuの再生リストをMPC-HCで開かせる

対応していませんでした。
MPC-HCも開発が終わってから長いので仕方がないですね。

3. MPC-BEで開かせる

MPC-HCの後継版ではXSPFに対応していました。
しかしなぜかビデオが再生されずオーディオだけ流れる。。
どうやらプレイリストから読み取るとオーディオトラックとして認識されてしまうらしい。
なぜなのか。。

4. バッチファイルでプレイリストからURLを引っ張り出してNPC-HCに投げつける

もうヤケです。
プレイリストなんて所詮テキストファイルなのでChinachuのURLだけ抜き取ってMPC-HCに投げつければ再生できるはず。
Windowsはバッチファイルにも関連付けが可能なのでこういう荒技が通るのです。
ただXSPFの中身がUTF8なのでバッチファイルで扱うと謎の挙動をするのでPowerShellスクリプトで代用。
が、PowerShellスクリプトは関連付けができないのでPowerShellスクリプトはバッチファイルで起動する。
もうどうとでもな~れ!

xxx.ps1

$MPC = "C:\Program Files (x86)\MPC-HC\mpc-hc.exe"
$file = (Get-Content $Args[0]) -as [string[]]
foreach ($line in $file){
    if($line.Contains("<location>")) {
        $URL = $line.Replace("<location>", "").Replace("</location>", "")
        }
}
& $MPC $URL

xxx.bat

PowerShell -file  C:\xxx\xxx.ps1 %1

-file オプションを付けないとファイル名にスペースが入った場合に途切れるので注意。

新しいPCで使おうとしたらセキュリティで弾かれて使えなかった。
PowerShellスクリプトが標準では実行禁止になっているのをすっかり忘れていた。
セキュリティ的にはよろしくないが、以下を実行すれば問題はなくなる。

Set-ExecutionPolicy Unrestricted

以上。
無理やりだけどいけました。
これでPCでのテレビ視聴が捗ります。