VLC Media Player 1.xx 以降を使用して MPEG2-TS から MPEG2-PS に変換する

 ネット上で見かけるのは Ver 0.xx の古いものばかりで、新しい Ver 1.xx シリーズではうまく動かないので対応したものを書いておきました。
VLC 1.00以降がインストールされていることが前提で説明します。
TSからPSに変換するのはBonTSDemuxでもいいのですが、私の環境ではソースによって音ズレが直らなかったので、VLCの方法を紹介します。

"C:\Program Files\VideoLAN\VLC\vlc.exe" -vvv %1 --sout "#transcode{acodec=a52,ab=384}:duplicate{dst=std{access=file,mux=ps,dst=\"%~1.mpg\"}}" vlc://quit

↑ブラウザによっては改行されているように見えますが、1行です。
上のコードをメモ帳にコピーして "ts2ps.bat"とでも名前を付けてデスクトップにでも保存してください。

最初の

"C:\Program Files\VideoLAN\VLC\vlc.exe"

は、VLCのパスです。違うフォルダにインストールした場合は適宜変えてください。

acodec=a52,ab=384

は オーディオコーデックの設定です。
a52AC3 のことです。
mp2a なんかも指定できます。
ab の値は ビットレートで 今回の場合は384Kbpsとなります。

dst=\"%~1.mpg\"

は出力先です。
この場合入力元のファイルに.mpgがついて保存されます。

説明し忘れましたが、 %1 はバッジファイルにドラッグアンドドロップしたときにファイル名が自動的に入ります。
これはダブルクォテーション「"」つきですので、除去する必要がある場合は、 %~1 のようにします。
http://www.ne.jp/asahi/hishidama/home/tech/windows/bat.html

さらに、"はエスケープする必要があるので、 \" と記述します。

vlc://quit

最後のコレは変換作業終了後にVLCを閉じるコマンドです。
これがないと終了しません。


使い方は

先ほど作ったts2ps.bat にTSファイルをドラッグアンドドロップするだけです。
動いているシークバーを触るとおかしくなりますので触らないように!!


おまけ

MPEG2-PS化したファイルをGraphEditで読み込ませてみた図

ソースフィルタ標準のものが使われていました。
スプリッターUlead製のものが使われています。
ビデオデコーダーCyberLink製のもの、オーディオデコーダー標準のものでした。

この環境下で、AviUtlDirectShow File Reader 経由で読み込ませてみましたが、ほとんど音ズレなしで変換できました。