■レシピ
今回は、以下のような環境の実現を目標としています。
- すべての処理をCLI(コマンドベースの操作)で実現
- TS → 音声分離 → MP4エンコードまでを自動実行
- 最終的に、tvrockの「バッチ実行」に登録することにより、録画からコンコードまでを自動的に行う
- 自動実行を主目的とするため、CMカットなどは行わない
- 上記目的により、多少の音ずれは目をつぶる
BonTsDemux | TSファイルを音声データ(WAVファイルと動画データ(M2Vファイル)に分離する |
Aviutl | WAVファイルとM2Vファイル)を元に、iPhoneで再生できるmp4ファイルを作成する |
AviUtl Control | 本来GUIのAviutlをCLIで操作するためのツール |
■作業手順
- BonTsDemuxのインストール
- FFmpegの最新化
- Aviutlのインストールとx264 出力(GUI)の導入
- Aviutlの設定
- x264 出力(GUI)の設定
- AviUtl Control のインストール
- 自動実行バッチファイルの作成
- 動作確認
- tvrockへの登録
■BonTsDemuxのインストール
BonTsDemux mod 10k..の最新版をインストールします。私は、以下のサイトから、「BonTsDemux mod 10k6」をインストールしました。インストールは、入手したzipファイルを解凍するのみです。なお、BonTsDemuxは、必ず「BonTsDemux mod 10k..」(mod 10k..が付いたもの)をインストールしてください。http://2sen.dip.jp/cgi-bin/friioup/upload.cgi?page=0&lm=200 |
■FFmpegの最新化
BonTsDemuxに入っているFFmpegを、最新のものに入れ換えます。以下のサイトに、最新版のFFmpegが公開されていますので、それをダウンロードし、BonTsDemuxフォルダ内にもともと入っているFFmpegと置き換えてください。オリジナルのFFmpegは削除して頂いて結構です。
http://blog.k-tai-douga.com/article/27740481.html |
■Aviutlのインストールとx264 出力(GUI)の導入
エンコーディング処理を行う、「Aviutl」とAviutlにx264エンコーディング機能を追加するx264出力(GUI)を導入します。なお、aviutlのインストールとx264 出力(GUI)の導入方法については、以下のサイトを参考にさせて頂きました。
http://spring-fragrance.mints.ne.jp/aviutl/ |
<参考にさせて頂いたサイト>
http://www.katch.ne.jp/~kakonacl/douga/aviutl_tmpgenc/x264.html |
■Aviutlの設定
Aviutの以下の設定を変更します。
- システム設定の変更
- 出力サイズの変更
- 入力プラグインの優先度の設定
Aviutlのシステム設定の中で、以下の項目を変更します。
最大画像サイズ | ハイビジョンの規格である1920 x 1080にします |
最大フレーム数 | 初期値では、長時間番組なのでは、最大フレーム数をオーバしましたので、初期値の4倍ほどの値に変更しました。 |
リサイズ設定の解像度リスト | iPhoneに合わせて、480x272を追加しました |
以下、システム設定画面の表示方法と設定例です。
◆システム設定画面の表示方法
◆設定例
<出力サイズの変更>
出力サイズをiPhoneに合わせて、「480x272」に変更します。以下、
<入力プラグインの優先度の設定>
入力プラグインの「MPEG-2 VIDEO File Reader」の優先度を最上位に設定します。
以下、入力プラグインの優先度設定画面の表示方法と設定例です。
◆入力プラグインの優先度設定画面
◆設定例
■x264 出力(GUI)の設定
x264 出力(GUI)の設定を、iPhoneに合わせて変更します。変更は、以下のサイトを参考にさせて頂きました。
<参考にさせて頂いたサイト>
http://d.hatena.ne.jp/coldcup/20090227/p1 |
以下、x264 出力(GUI)の設定画面の表示方法です。
Aviutlで動画ファイルを開きます。動画ファイルは、Aviutlが処理できるものであれば、何でも結構です。
メニューから、[ファイル]-[プラグイン出力]-[プラグイン出力]-[拡張x264 出力(GUI)]を選択します。
メニュー選択後表示されるウィンドウで「ビデオ圧縮」ボタンをクリックします。
表示されるウィンドウで、拡張x264 出力(GUI)の設定を変更します。
■AviUtl Control のインストール
AviUtl Controlをインストールは、以下のサイトからダウンロードすることができます。インストールは、入手したzipファイルを解凍するのみです。
<
http://www.geocities.jp/aji_0/ |
■自動実行バッチファイルの作成
TS → 音声分離 → MP4エンコードまでを自動実行するバッチを作成します。
私は、以下のような内容のバッチファイルを作成しました。なお、下記の例は、以下の環境を想定しています。
バッチファイル名:auc4.bat
BonTsDemuxののフルパス:c:\eguchi\BonTsDemux2\bontsdemux.exe
Aviutlのフルパス:c:\eguchi\aviutl99h4\aviutl.exe
AviUtl Controlの格納ディレクトリのフルパス:c:\eguchi\auc
REM @echo off REM ****************************************************** REM TS → MP4変換バッチ REM REM ■実行方法 REM auc4.bat "TSファイルのフルパス" (ファイル名が「auc4.bat」の場合) REM ******************************************************* REM ******************************************************* REM ■変数 REM 環境に合わせて以下を設定してください。 REM REM BTD=BonTsDemuxのフルパス REM AVU=Aviutlのフルパス REM AUC_DIR=AviUtl Controlの格納ディレクトリのフルパス @set BTD=c:\eguchi\BonTsDemux2\bontsdemux.exe @set AVU=c:\eguchi\aviutl99h4\aviutl.exe @set AUC_DIR=c:\eguchi\auc REM **************************************************** echo "Start Operation" @set TS_FILE_NAME=%~1 @set DREIVE=%~d1 @set PATH_NAME=%~p1 @set NAME=%~n1 @set FILE_NAME=%DREIVE%%PATH_NAME%%NAME% echo echo %TS_FILE_NAME% echo %FILE_NAME% @if not exist "%TS_FILE_NAME%" goto END ping localhost -n 15 > null echo "TS OK!" REM echo "mp4 files exist check" @if exist "%FILE_NAME%.mp4" goto END REM echo "Start Demux(m2v+wav)" @if not exist "%FILE_NAME%.m2v" %BTD% -i "%TS_FILE_NAME%" -encode "Demux(m2v+wav)" -delay 167 -nd -start -quit :READ_WAIT2 @if not exist "%FILE_NAME%.m2v" goto READ_WAIT2 ping localhost -n 15 > null echo "M2V OK!" :READ_WAIT3 @if not exist "%FILE_NAME%.wav" goto READ_WAIT3 ping localhost -n 15 > null echo "WAV OK!" echo "Start AU" for /f "usebackq tokens=*" %%i in (`call %AUC_DIR%\auc_exec %AVU%`) do @set WIN_NUM=%%i echo "Window NUMBER==%WIN_NUM%" call %AUC_DIR%\auc_open %WIN_NUM% "%FILE_NAME%.m2v" ping localhost -n 15 > null echo "Make gl file" :READ_WAIT4 @if not exist "%FILE_NAME%.gl" goto READ_WAIT4 ping localhost -n 15 > null echo "add wave file" call %AUC_DIR%\auc_audioadd %WIN_NUM% "%FILE_NAME%.wav" ping localhost -n 15 > null echo "Make mp4 file" call %AUC_DIR%\auc_plugout %WIN_NUM% 1 "%FILE_NAME%.mp4" %AUC_DIR%\auc_wait %WIN_NUM% ping localhost -n 15 > null echo "Complete all Operation" %AUC_DIR%\auc_exit %WIN_NUM% :END |
■動作確認
以下のように作成したバッチファイルを実行し、mp4ファイルが作成されることを確認します。
なお、下記の例は、バッチファイルのフルパスが「c:\eguchi\bat\auc4.bat
c:\eguchi\bat\auc4.bat "TSファイルのフルパス" |
■tvrockへの登録
作成したバッチファイルを、TvRockで自動実行させます。TvRockの設定→プロセスタブ「コマンドを実行する」にチェックを入れ、次を追加します。
TN:c:\eguchi\bat\auc4.bat "TSファイルのフルパス" |
設定例を以下に示します。
★★ おまけ ★★
これまで、溜まりにたまったTSファイルを、フォルダごと一括エンコードするために、以下のバッチを作成しました。上記で作成した自動エンコード用バッチを使用して、指定したフォルダ内のTSファイルを一括エンコードします。
@echo off REM 引数=コンバート対象ディレクトリ名(最後の\なし) echo "---------------------------------------------------" echo "対象ファイル" echo "---------------------------------------------------" for %%i in (%1\*.ts) do @echo "%%i" echo "---------------------------------------------------" echo "エンコード処理スタート" echo "---------------------------------------------------" for %%i in (%1\*.ts) do call C:\eguchi\bat\auc4.bat "%%i" |
使い方は、以下のとおりです。
c:\eguchi\bat\ts2mp4_dir.bat |
■今後の課題
現状でも、おおよそ満足してはいるのですが、可能であれば、今後以下のことを実現したいと思っています。
- 特にNHKの長時間番組で音づれが発生するので、これを解消したい
- TVRockからの自動実行が、エンコードの最中に停止する場合がある。そのため、現状ではTVRockからの自動実行と「おまけ」で記載した一括処理バッチを併用している。可能であれば、TVRockからの自動実行に統一した。
- CMカット
0 件のコメント:
コメントを投稿