具体的には、TSSplitterで不要な情報をカット→改良したFFMpegで変換をV-autoEncoderを使用して自動的に行う。
詳細
FFmpegのAACエンコードはFDK-AACが優れているようなのだが、そのままでは使えない。
ソースコードを入手して自力でビルドする必要があるが、それも大変
このツールは最新ソースコードを取り入れてFFMpegを半自動でビルドしてくれるというもの。使い方は作者様のサイトが分かりやすいため読んでください。
オレ流FFmpegビルドツールWEB
http://www.sakura-zaka.net/ffmpeg/
このサイトのダウンロードのページから順番に読み進める
上記ツールでビルドしたffmpeg.exeを任意のフォルダに配置し、続いてFFmpegのプリセットを作成し保存する。(下記のコマンドをメモ帳にコピペしてlibx264.ffpresetという名前で保存する。)
level=41 coder=1 flags=+loop cmp=+chroma partitions=+parti8x8+parti4x4+partp8x8+partb8x8 me_method=umh subq=7 me_range=16 g=250 keyint_min=25 sc_threshold=40 i_qfactor=0.71 b_strategy=1 qmin=10 rc_eq='blurCplx^(1-qComp)' bf=16 bidir_refine=1 refs=6
次にTSSplitterを入手して任意のフォルダに配置
http://www3.wazoku.net/2sen/dtvup/source/up0797.zip
そしてV-autoEncoderを入手。
http://www3.wazoku.net/2sen/dtvup/source/up0392.zip
V-autoEncoderは、コマンドラインでいろいろな処理を自動的に処理するためのプログラム。
コマンドプロンプトでのバッチファイルより柔軟な使い方ができる。
V-autoEncoderは、
[P1Application] 実行プログラム [P1Dir] ファイルが出力されるフォルダ [P1Arguments] プログラムに渡す引数 [P1SearchPattern] 出力されたファイル名の検索パターン [P1SearchMethod] 出力されたファイルの検索方法の構文からなる。が、ここで詳しい仕様方法を解説すると大変なため、今回はTSを音ズレなしで、簡単かつ確実にある程度の画質、音質でエンコードする事を主眼として解説する。
要は以下の設定ファイルをコピペして改変して使って欲しい。
下記コマンドをメモ帳にコピペして編集した上で、V-autoEncoder.exeと同じ場所にTSh264.cfgというファイル名で保存する。(赤の部分だけ変える。他は分からなければ変えない)
[RenameInputFile] YES [P1Application] 'TSSplitter.exeの場所 '例:C:\Program Files\TsSplitter\TsSplitter.exe [P1Dir] 'TsSplitter.exeによる一時出力先 '例:C:\ProgramData\TsSplitter [P1Arguments] "%Input%" -SD -1SEG -OUT "%P1Dir%" -BUFF 512 -SEP -OVL5,7,0 -SEPA -WAIT2,1 [P1SearchPattern] %InputName%*.ts [P1SearchMethod] Largest [P2Application] 'ffmpeg.exeの場所 '例:C:\Program Files\ffmpeg\ffmpeg.exe [P2Dir] '変換したMP4ファイルの保存先 '例:C:\Users\user\videos [P2Arguments] -dual_mono_mode main -i "%P1Output%" -vcodec libx264 -s 1280x720 -aspect 16:9 -crf 25 -fpre "libx264.ffpresetの場所(例:C:\Program Files\ffmpeg\libx264.ffpreset)" -acodec libfdk_aac -vbr 2 -ac 2 -vol 384 -vf yadif -f mp4 "%P2Dir%\%InputName%.mp4" [P2SearchPattern] %InputName%.mp4 [P2SearchMethod] [P1DeleteTemporalFiles] yes [P2DeleteTemporalFiles]上記のコマンドを設定して保存したら、最後に実行するためのバッチファイルを作る
下記コマンドをコピペしてエンコード.batという名前で保存
@echo off
setlocal enableextensions
:repeat
start V-AutoEncoder.exeの場所(例:C:\Program Files\V-AutoEncoder\V-AutoEncoder.exe) -input %1 -settings "TSh264.cfg" -queue
if "%~2"=="" goto end
shift
goto repeat
:end
exit
あとは エンコード.batに、録画したTSデータをドラッグアンドドロップで持っていけば勝手に変換が開始される。(複数一気にドロップ可能)やや注意する点として、 ドロップするTSファイルのファイル名もしくはフォルダ名のどこかに半角スペースが入ってないと不具合が出ることがある。
なのでTSファイルを保存するフォルダに半角スペースを入れておくとよい。例:"PT2 TS"など。
参考:
オレ流FFmpegビルドツールWEB(作者様のページ)
http://www.sakura-zaka.net/ffmpeg/
塵も積ればほこりと成る(V-autoEncoder作者様のページ)
http://ahnan.blog.fc2.com/