スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

自動mp4作成まとめ(途中)

そろそろカオスになってきたので、再度環境を整える際に困らないためにも、
ファイルの配置等、整理しなければなるまい・・・


注意書き

※このページの方法はlogoGuillo(v2.00)時点でのものであり、現在では特殊な方法となっています・・・。
(m2vでCMカット(オフセット2)し、d2vなavsに利用する形)
※基本的な処理内容が多めですが、全体としては特殊な例が多く含まれているかもしれません。流れをちら見で参考にするくらいで、ほかのところで学んだほうが良いかもしれません...

他の部分を含め、
近いうちに、書き換える予定です。

→d2vでCMカットし、d2vなavsに利用する例
http://soranikakaruhashi.blog.fc2.com/blog-entry-109.html


というわけで、
今までのカオス状態のものを使いやすい感じに、組み立てなおし中・・・まだカオス・・・
編集履歴
2011 初回
 ※ファイル名等が残念なのは、あきらめていただく方向で…m(_ _)m
2012 編集
 ※編集しましたが、どこを編集したのかは、もはやわかりませんm(_ _)m
2012 編集
 ※いつの間にかLossless_Audio_Edit.batの中身に別のファイルを書き間違えていたのを訂正しましたm(_ _)m

2012 logoGuillo v2.05にあわせて編集中
※→編集中です。


注意点(logoGuilloの設定について)
以下の例に関して、以下のlogoGuilloの設定では、すべてオフセットが2設定されています。(-frameOffset 2)

※以下の例のようにm2vを使って解析して、avsでd2vを使う場合は、オフセットが2必要なため。

解析にm2vを使って、avsでもm2vを使う場合には、オフセット不要のはずです。(-frameOffset 2は不要です)
v2.05以降でd2vを使って解析して、avsでd2vを使う場合、オフセット不要です。(-frameOffset 2は不要です)
→d2vでCMカットし、d2vなavsに利用する例
http://soranikakaruhashi.blog.fc2.com/blog-entry-109.html




もくじ
兼だいたいの流れ

☆EDCBやkkcaldで実際に登録するbatファイル例。(_EDCBがついてるのがポイント。)
※以下の3つのようなbatファイルを用意して、自動予約録画ごとの設定などで、どれか1つを登録しておく。
自動エンコード管理_EDCB.bat (自動エンコード管理.batをEDCBやkkcaldで登録するためのもの)
自動CMカット&自動VFRエンコード_EDCB.bat
自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理)_EDCB.bat(処理したものを自動CMカットしてエンコード)
gen_avs2_d2v_aac_20111228_Common_EDCB.bat (手動CMカット用。)


☆手動でドラッグアンドドロップしたり、TvRockでも登録可能なbatファイル例。
※これらをEDCB(kkcald)で使いたい場合は、↑上の3つのようなbatファイルを登録して、これらを呼び出すことで利用。
自動エンコード管理.bat
自動CMカット&自動VFRエンコード.bat

自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理).bat
gen_avs2_d2v_aac_20111228_Common.bat (手動CMカット用に、avs作成だけおこなう)

以下はEDCB(kkcald)でのbatファイル利用例。
録画完了

---bat処理開始---------
自動エンコード管理_EDCB.bat を登録してある場合。

自動エンコード管理(アニメとそれ以外とで、batファイルを自動選択するテスト)
 ・・・ ■ 自動エンコード管理.bat(※)
(※TSファイルを直接ドラッグアンドドロップ(D&D)すれば処理開始可能。)
(※TvRockでの処理に利用することもできる。)
(指定サイズ以上処理) 
※たとえば、自動エンコード管理の案として、
以下のようなアニメ用VFR、実写用CFRのbatファイルを、指定サイズ以上処理の有無で、それぞれ1つずつ指定する。
有 ・・・ ■ 自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理).bat
有 ・・・ ■ 自動CMカット&自動CFRエンコード(TsSplitter&指定サイズ以上処理).bat


無 ・・・ ■ 自動CMカット&自動VFRエンコード.bat
無 ・・・ ■ 自動CMカット&自動CFRエンコード.bat

(字幕作成)
 ・・・ ■ 字幕ファイル作成PCR_ass_srt作成.bat


自動CMカット(logoGuillo)
 ・・・ ■logoGuillo_放送局処理(自動選択).bat
   ※以下のように放送局ごとにbatを用意して、自動選択する。
    ■logoGuillo_NHKG.bat
    ■logoGuillo_NHKE.bat
    ■logoGuillo_BS11.bat
    ■logoGuillo_BS-NTV.bat


avs作成(logoGuilloで処理済みならCMカットが入力されます。自動CMカットしてない場合は、後で自分で書き込みます)
 ・・・ ■gen_avs2_d2v_aac_20111228_Common.bat
     ■dgindex_d2v_aac_audiodub_Common.avst



(手動CMカットするならこの辺で? 自動化しているので略)

(字幕編集)
 ・・・ ■字幕ass_srt編集_for_encode_logoGuillo_AutoVFR.bat

※いつのまにか、↓この中で字幕カット処理してた。
※自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理).bat
※avsファイルを元ファイルとは別フォルダに作成することにしたため、個別のbatファイルでエンコードフォルダを指定するのが面倒だから1つにしたと思われる。


自動(VFR)エンコード(このbatファイルに、avsファイルをドラッグアンドドロップ(D&D)するとエンコードが始まります)
 ※以下の4つのうち1つを選択。
・・・ ■encode_crf21_for_1280x720auto-test_AutoVFR(ConvEV_EasyVFR).bat
・・・ ■encode_crf21_for_1280x720auto-test_AutoVFR(DupMC2Def)00.bat
・・・ ■encode_crf21_for_24fps_1280x720auto-test_AutoVFR(AutoVfr_Def)00.bat
・・・ ■encode_crf21_for_24fps_1280x720auto-test_AutoVFR(AutoVfr_EasyVFR)00.bat

その他
・・・ ■encode_crf21_for_24fps_640x360auto-test.bat
・・・ ■encode_crf21_for_24fps_1280x720auto-test.bat
・・・ ■encode_crf21_for_24fps_1920x1080auto-test.bat
・・・ ■encode_crf21_for_30fps_640x360auto-test.bat
・・・ ■encode_crf21_for_30fps_1280x720auto-test.bat
・・・ ■encode_crf21_for_30fps_1920x1080auto-test.bat

※音声無劣化処理(aacedit or FakeAacWav)※以下のbatファイルは、aacが記述されたavsを読み込んで音声を無劣化処理するためのもの。
・・・■Lossless_Audio_Edit.bat
 ※gen_avs2_d2v_aac_20111228_Common.batで作成した形式のavs)
 ※以下のツールの入力ファイルはaacです。それぞれの音声編集処理を、Trim処理(CMカット)後にやれば自動化可能。
   aacedit
   FakeAacWav(FAW)


mp4作成完了

(字幕等保存)
(不要な一時ファイル等削除)



---bat処理終了---------














































☆batファイル例
自動エンコード管理_EDCB.bat
@echo off
setlocal
echo 自動エンコード管理
call "D:\encode20111228\自動エンコード管理.bat" "$FilePath$"

endlocal
rem pause
exit /b

もくじに戻る




自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理)_EDCB.bat
@echo off
setlocal
echo 自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理)
call "D:\encode20111228\自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理).bat" "$FilePath$"

endlocal
rem pause
exit /b

もくじに戻る




gen_avs2_d2v_aac_20111228_Common_EDCB.bat
@echo off
setlocal
echo avsファイル作成
call "D:\encode20111228\gen_avs2_d2v_aac_20111228_Common.bat" "$FilePath$"

endlocal
rem pause
exit /b

もくじに戻る






自動エンコード管理.bat
作成してみたものの、これを使う方が面倒・・・。このbatファイル自体にキーワード登録が必要になってしまうからです。こんなことをするよりも、自動予約キーワードごとに、あらかじめ自動CMカットするか、手動CMカットするか、ということを考えて、batファイルを登録しておいた方が簡単です・・・。
    @ECHO OFF
setlocal
@REM テストする変数
SET FILENAME="%~n1"
echo 処理対象ファイル名 %FILENAME%
echo アニメと実写の判定をし、自動CMカット&自動VFRエンコードをします。
echo アニメと実写にあわせて、エンコード用batファイルを自動的に選択します。
echo.


rem ### 検索ワードの指定 ###
@REM 検索対象(※ファイル名に、判定のためのワードを入れておく。)
@REM 検索ワードに当てはまる場合は、アニメ用エンコード。それ以外は実写用エンコード。

SET ANIME_WORD_000="アニメ"
SET ANIME_WORD_001="BS11"
SET ANIME_WORD_002=""
SET ANIME_WORD_003=""
SET ANIME_WORD_004=""
SET ANIME_WORD_005=""


cd /d %~dp0

ECHO %FILENAME% | find %ANIME_WORD_000% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %ANIME_WORD_000% TRUE
goto encode_anime
)
ECHO %FILENAME% | find %ANIME_WORD_001% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %ANIME_WORD_001% TRUE
goto encode_anime
)
ECHO %FILENAME% | find %ANIME_WORD_002% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %ANIME_WORD_002% TRUE
goto encode_anime
)
ECHO %FILENAME% | find %ANIME_WORD_003% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %ANIME_WORD_003% TRUE
goto encode_anime
)
ECHO %FILENAME% | find %ANIME_WORD_004% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %ANIME_WORD_004% TRUE
goto encode_anime
)
ECHO %FILENAME% | find %ANIME_WORD_005% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %ANIME_WORD_005% TRUE
goto encode_anime
)

rem #####
:encode
echo 処理開始(自動CMカット&CFR)
call "自動CMカット&自動CFRエンコード(TsSplitter&指定サイズ以上処理).bat" "%~1"
rem call "自動CMカット&自動CFRエンコード.bat" "%~1"

goto end
rem #####


rem #####
:encode_anime
echo 処理開始(自動CMカット&自動VFR)

call "自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理).bat" "%~1"
rem call "自動CMカット&自動VFRエンコード.bat" "%~1"

goto end
rem #####


:end

endlocal
rem pause
exit /b

もくじに戻る




自動CMカット&自動VFRエンコード(TsSplitter&指定サイズ以上処理).bat
@echo off
setlocal

rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#AutoCMCut_AutoVFR_split
rem ↓以下のbatファイルを参考にしています。
rem http://loggialogic.blogspot.com/2011/11/tsbat.html
rem TSのファイルサイズが指定値以上の場合だけ処理を行うBAT
rem TSのファイルサイズが指定値以上の場合だけ処理を行うBATコードです。
rem TsSplitterで番組情報での分割を行った際に発生する、本編の前後のゴミを除去する為に使用しています。
rem 99GB以下のファイルなら正常に動作します。

rem これを忘れると動かないので注意
setlocal ENABLEDELAYEDEXPANSION

rem TsSplitterのパスを指定。
set TsSplitter="C:\DTV\TsSplitter Ver1.23\TsSplitter.exe"

rem TsSplitterの出力先を指定。以下は、入力ファイルと同じフォルダに出力する設定。
set Out_path=%~dp1
set Out_path=%Out_path:~0,-1%
set Out_path="%Out_path%"
echo Out_path=%Out_path%

echo %TsSplitter% -1SEG -OUT %Out_path% -SEP3 -OVL4,3 -SEPA "%~1"
%TsSplitter% -1SEG -OUT %Out_path% -SEP3 -OVL4,3 -SEPA "%~1"


rem 処理する際のサイズ下限(KB)を指定
rem ※上限 99GB以下のファイルなら正常に動作します。
rem 30MB
rem set ENCSIZETHD=30000
rem 300MB=300000KB
set ENCSIZETHD=300000

rem 指定サイズ以上のTSファイルだけを処理
for %%t in ("%~dp1%~n1_*.ts") do (
 set TEMPSIZE=xxxxxxxxxxxx%%~zt
 set TEMPSIZE=!TEMPSIZE:~-11,-3!
 set TEMPSIZE=!TEMPSIZE:x=!
set FILENAME=%%~nt
echo FILENAME = !FILENAME!
 IF !TEMPSIZE! GEQ %ENCSIZETHD% (
  rem ここに処理の内容を記述
echo ##### ファイルサイズ#####
echo ### !TEMPSIZE! KB
echo #########################
echo 処理

cd /d %~dp0
rem 字幕作成
call "C:\DTV\Caption2Ass_PCR_0202\字幕ファイル作成PCR_ass_srt作成.bat" "%~dp1!FILENAME%!.ts"
echo call "C:\DTV\Caption2Ass_PCR_0202\字幕ファイル作成PCR_ass_srt作成.bat" "%~dp1!FILENAME%!.ts"


rem 自動CMカット logoGuillo(放送局処理)
echo call "logoGuillo_放送局処理(自動選択).bat" "%~dp1!FILENAME%!.ts"
call "logoGuillo_放送局処理(自動選択).bat" "%~dp1!FILENAME%!.ts"


echo nt = %%~nt
echo %~dp0
echo FILENAME !FILENAME!

echo 自動avs作成
rem ※logoGuilloの出力結果があれば、Trimを自動記述)
rem call "gen_avs2_d2v_aac_20111228_Common.bat" "%~dp1!FILENAME%!.ts"
echo call "gen_avs2_d2v_aac_20111228_Common.bat" "%~dp1%%~nt.ts"
call "gen_avs2_d2v_aac_20111228_Common.bat" "%~dp1%%~nt.ts"

echo 自動字幕カット
set cutass_path="C:\DTV\up0792 cutass ver0.08 : 内部コード修正、(使わない)機能追加\cutass.exe"

echo !cutass_path! -t "%~dp0%%~nt.avs" "%~dp1%%~nt.ts"
!cutass_path! -t "%~dp0%%~nt.avs" "%~dp1%%~nt.ts"


echo 字幕ファイル(ass,srt)をエンコード用フォルダに移動
copy "%%~dpnt*.ass" "%~dp0%%~nt*.ass"
copy "%%~dpnt*.srt" "%~dp0%%~nt*.srt"


echo エンコード(自動VFR)※以下から1つ指定しておく。
call "encode_crf21_for_24fps_1280x720auto-test_AutoVFR(ConvEV_EasyVFR).bat" "%%~nt.avs"
rem call "encode_crf21_for_24fps_1280x720auto-test_AutoVFR(AutoVfr_Def)00.bat" "%%~nt.avs"
rem call "encode_crf21_for_24fps_1280x720auto-test_AutoVFR(AutoVfr_EasyVFR)00.bat" "%%~nt.avs"
rem call "encode_crf21_for_24fps_1280x720auto-test_AutoVFR(DupMC2Def)00.bat" "%%~nt.avs"


echo TsSplitterで作成したファイルやエンコード用に作成したファイル完全削除。ごみ箱へも入りません。
echo 一定サイズ以上のファイルだけ削除。一定サイズ未満のファイルは残ると思います。
rem del "%%~dpnt_*"

 )
)

echo TsSplitterで作成したファイルやエンコード用に作成したファイルすべて完全削除。ごみ箱へも入りません。
echo ※avsファイルをAviutl等で開いていると、ファイルが削除されず、残ると思います。
del "%~dp1%~n1_*"

endlocal
rem pause
exit /b

もくじに戻る




logoGuillo_放送局処理(自動選択).bat
    @ECHO OFF
setlocal
@REM テストする変数
SET FILENAME="%~n1"
echo 処理対象ファイル名 %FILENAME%
echo 放送局ごとの処理をしていきます。
echo 放送局を判定したら表示します。
echo.


@REM 検索対象(※ファイル名に放送局名を入れておく。)
@REM ※検索対象外の放送局は、logoGuilloで処理されない(自動CMカットなし)

@rem
@rem 地上デジタル放送
@rem

@rem NHKについては全国共通。
SET CHANNEL001="NHK総合"
SET CHANNEL002="NHKEテレ"

@rem 民放は受信可能なものを、自分で指定。とりあえず関東用を用意。
SET CHANNEL003=""
SET CHANNEL003C="チバテレビ"
SET CHANNEL003S="テレ玉"
SET CHANNEL003K="tvk"
@rem         ※tvkはロゴ表示がないのでlogoGuilloはつかえない。
SET CHANNEL004="日本テレビ"
SET CHANNEL005="テレビ朝日"
SET CHANNEL006="TBS"
SET CHANNEL007="テレビ東京"
SET CHANNEL008="フジテレビ"
SET CHANNEL009="TOKYO MX"
SET CHANNEL010=""
SET CHANNEL011=""
SET CHANNEL012="放送大学"

@rem
@rem BSデジタル放送 
@rem

rem 無料放送
SET CHANNEL101="NHKBS1"
SET CHANNEL103="NHKBSプレミアム"

SET CHANNEL141="BS日テレ"
SET CHANNEL151="BS朝日"
SET CHANNEL161="BS-TBS"
SET CHANNEL171="BSジャパン"
SET CHANNEL181="BSフジ"

SET CHANNEL211="BS11"
SET CHANNEL222="TwellV"

SET CHANNEL231="放送大学BS1"
SET CHANNEL232="放送大学BS2"
SET CHANNEL233="放送大学BS3"
SET CHANNEL531="放送大学ラジオ"

rem 有料放送
SET CHANNEL191="WOWOWプライム"
SET CHANNEL192="WOWOWライブ"
SET CHANNEL193="WOWOWシネマ"
SET CHANNEL200="スター・チャンネル1"
SET CHANNEL201="スター・チャンネル2"
SET CHANNEL202="スター・チャンネル3"

SET CHANNEL234="グリーンチャンネル"
SET CHANNEL236="BSアニマックス"
SET CHANNEL238="FOXbs238"
SET CHANNEL241="BSスカパー!"
SET CHANNEL242="J SPORTS 1"
SET CHANNEL243="J SPORTS 2"







cd /d %~dp0


ECHO %FILENAME% | find %CHANNEL001% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL001% TRUE
call "logoGuillo_NHKG.bat" "%~1"
)
ECHO %FILENAME% | find %CHANNEL002% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL002% TRUE
call "logoGuillo_NHKE.bat" "%~1"
)

ECHO %FILENAME% | find %CHANNEL211% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL211% TRUE
call "logoGuillo_BS11.bat" "%~1"
)

ECHO %FILENAME% | find %CHANNEL141% >NUL
IF %ERRORLEVEL% EQU 0 (
ECHO %CHANNEL141% TRUE
call "logoGuillo_BS-NTV.bat" "%~1"
)



rem 放送局名が見つからない場合は、logoGuilloで処理されない(自動CMカットなし)

endlocal
rem pause
exit /b

もくじに戻る



logoGuillo_NHKG.bat
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#logoGuillo_NHKG
@echo off
setlocal
rem 作業開始

:encode

rem ##### 簡易説明書(読んでね!)
rem 都合上、avsファイル作成の前に、自動CMカット。
rem 他の放送局に対応するには、このbatファイルをコピーして、
rem ファイル名と、ロゴデータと検出パラメータの指定を変更すれば簡単です。
rem
rem ①ロゴデータと検出パラメータは、各放送局ごとに指定する必要があります(ロゴデータ等は、自動CMカットの前に用意しておく必要あり)
rem lgdファイル名に日本語を使うと、GUIでの処理で文字化けするかも。
rem logoGuillo本体でも処理できないかも。
rem ②こちらの都合上、オフセットで2を指定してあります(-frameOffset 2)
rem #####

rem ##### ☆logoGuilloの場所
rem ■logoGuilloの場所。
set LOGOG_PATH=C:\DTV\logoGuillo_v200\logoGuillo.exe

rem ##### ①Avisynthの設定 ※基本的には変更なし。固定値。
rem ■avs2pipemod.exe等の場所
set AVS2X_PATH=C:\DTV\logoGuillo_v200\avs2pipemod.exe
rem ■m2v.vfp/ffms2.dllの場所
set AVSPLG_PATH=C:\Program Files\AviSynth 2.5\plugins\m2v_vfp\m2v.vfp

rem ##### ②入力の設定
rem ■動画ファイル
rem 例 set VIDEO_PATH=E:\Videos\Record_20111228-050944.ts
rem ここでは、batファイルで処理される動画ファイル名が入力されます。
set VIDEO_PATH=%~1

rem ■ロゴデータ(lgdファイル)
set LOGO_PATH=C:\DTV\logoGuillo_v200\NHKG 1440x1080.lgd

rem ■ロゴデータ検出パラメータ(paramファイル)
set PRM_PATH=C:\DTV\logoGuillo_v200\NHKG 1440x1080.lgd.autoTune.param

rem ##### 出力の設定
rem ■自動CMカット結果の出力先。
rem 例 set OUTPUT_PATH=E:\Videos\Record_20111228-050944.ts.txt
rem ここでは、動画ファイル名にあわせて出力されるようにする。
set OUTPUT_PATH=%~dpn1.ts.txt

rem Trimコマンド生成
rem こちらの都合上、オフセットで2を指定してあります(-frameOffset 2)
"%LOGOG_PATH%" -video "%VIDEO_PATH%" -lgd "%LOGO_PATH%" -avs2x "%AVS2X_PATH%" -avsPlg "%AVSPLG_PATH%" -prm "%PRM_PATH%" -out "%OUTPUT_PATH%" -outFmt trim -frameOffset 2 -fldOdr unknown

rem 次のファイルがあれば :encode に戻る
shift
if not "%~1"=="" goto encode

endlocal
rem pause
exit /b

もくじに戻る




logoGuillo_NHKE.bat
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#logoGuillo_NHKE
@echo off
setlocal
rem 作業開始

:encode

rem ##### 簡易説明書(読んでね!)
rem 都合上、avsファイル作成の前に、自動CMカット。
rem 他の放送局に対応するには、このbatファイルをコピーして、
rem ファイル名と、ロゴデータと検出パラメータの指定を変更すれば簡単です。
rem
rem ①ロゴデータと検出パラメータは、各放送局ごとに指定する必要があります(ロゴデータ等は、自動CMカットの前に用意しておく必要あり)
rem lgdファイル名に日本語を使うと、GUIでの処理で文字化けするかも。
rem logoGuillo本体でも処理できないかも。
rem ②こちらの都合上、オフセットで2を指定してあります(-frameOffset 2)
rem #####

rem ##### ☆logoGuilloの場所
rem ■logoGuilloの場所。
set LOGOG_PATH=C:\DTV\logoGuillo_v200\logoGuillo.exe

rem ##### ①Avisynthの設定 ※基本的には変更なし。固定値。
rem ■avs2pipemod.exe等の場所
set AVS2X_PATH=C:\DTV\logoGuillo_v200\avs2pipemod.exe
rem ■m2v.vfp/ffms2.dllの場所
set AVSPLG_PATH=C:\Program Files\AviSynth 2.5\plugins\m2v_vfp\m2v.vfp

rem ##### ②入力の設定
rem ■動画ファイル
rem 例 set VIDEO_PATH=E:\Videos\Record_20111228-050944.ts
rem ここでは、batファイルで処理される動画ファイル名が入力されます。
set VIDEO_PATH=%~1

rem ■ロゴデータ(lgdファイル)
set LOGO_PATH=C:\DTV\logoGuillo_v200\NHKE new.lgd

rem ■ロゴデータ検出パラメータ(paramファイル)
set PRM_PATH=C:\DTV\logoGuillo_v200\NHKE new.lgd.autoTune.param

rem ##### 出力の設定
rem ■自動CMカット結果の出力先。
rem 例 set OUTPUT_PATH=E:\Videos\Record_20111228-050944.ts.txt
rem ここでは、動画ファイル名にあわせて出力されるようにする。
set OUTPUT_PATH=%~dpn1.ts.txt

rem Trimコマンド生成
rem こちらの都合上、オフセットで2を指定してあります(-frameOffset 2)
"%LOGOG_PATH%" -video "%VIDEO_PATH%" -lgd "%LOGO_PATH%" -avs2x "%AVS2X_PATH%" -avsPlg "%AVSPLG_PATH%" -prm "%PRM_PATH%" -out "%OUTPUT_PATH%" -outFmt trim -frameOffset 2 -fldOdr unknown

rem 次のファイルがあれば :encode に戻る
shift
if not "%~1"=="" goto encode

endlocal
rem pause
exit /b

もくじに戻る



logoGuillo_BS11.bat
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#logoGuillo_BS11
@echo off
setlocal
rem 作業開始

:encode

rem ##### 簡易説明書(読んでね!)
rem 都合上、avsファイル作成の前に、自動CMカット。
rem 他の放送局に対応するには、このbatファイルをコピーして、
rem ファイル名と、ロゴデータと検出パラメータの指定を変更すれば簡単です。
rem
rem ①ロゴデータと検出パラメータは、各放送局ごとに指定する必要があります(ロゴデータ等は、自動CMカットの前に用意しておく必要あり)
rem lgdファイル名に日本語を使うと、GUIでの処理で文字化けするかも。
rem logoGuillo本体でも処理できないかも。
rem ②こちらの都合上、オフセットで2を指定してあります(-frameOffset 2)
rem #####

rem ##### ☆logoGuilloの場所
rem ■logoGuilloの場所。
set LOGOG_PATH=C:\DTV\logoGuillo_v200\logoGuillo.exe

rem ##### ①Avisynthの設定 ※基本的には変更なし。固定値。
rem ■avs2pipemod.exe等の場所
set AVS2X_PATH=C:\DTV\logoGuillo_v200\avs2pipemod.exe
rem ■m2v.vfp/ffms2.dllの場所
set AVSPLG_PATH=C:\Program Files\AviSynth 2.5\plugins\m2v_vfp\m2v.vfp

rem ##### ②入力の設定
rem ■動画ファイル
rem 例 set VIDEO_PATH=E:\Videos\Record_20111228-050944.ts
rem ここでは、batファイルで処理される動画ファイル名が入力されます。
set VIDEO_PATH=%~1

rem ■ロゴデータ(lgdファイル)
set LOGO_PATH=C:\DTV\logoGuillo_v200\BS11 1920x1080 new.lgd

rem ■ロゴデータ検出パラメータ(paramファイル)
set PRM_PATH=C:\DTV\logoGuillo_v200\Sample_Param\BS11.lgd.autoTune.param

rem ##### 出力の設定
rem ■自動CMカット結果の出力先。
rem 例 set OUTPUT_PATH=E:\Videos\Record_20111228-050944.ts.txt
rem ここでは、動画ファイル名にあわせて出力されるようにする。
set OUTPUT_PATH=%~dpn1.ts.txt

rem Trimコマンド生成
rem こちらの都合上、オフセットで2を指定してあります(-frameOffset 2)
"%LOGOG_PATH%" -video "%VIDEO_PATH%" -lgd "%LOGO_PATH%" -avs2x "%AVS2X_PATH%" -avsPlg "%AVSPLG_PATH%" -prm "%PRM_PATH%" -out "%OUTPUT_PATH%" -outFmt trim -frameOffset 2 -fldOdr unknown

rem 次のファイルがあれば :encode に戻る
shift
if not "%~1"=="" goto encode

endlocal
pause
exit /b

もくじに戻る







logoGuillo_BS-NTV.bat
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#logoGuillo_BS-NTV
@echo off
setlocal
rem 作業開始

:encode

rem ##### 簡易説明書(読んでね!)
rem 都合上、avsファイル作成の前に、自動CMカット。
rem 他の放送局に対応するには、このbatファイルをコピーして、
rem ファイル名と、ロゴデータと検出パラメータの指定を変更すれば簡単です。
rem
rem ①ロゴデータと検出パラメータは、各放送局ごとに指定する必要があります(ロゴデータ等は、自動CMカットの前に用意しておく必要あり)
rem lgdファイル名に日本語を使うと、GUIでの処理で文字化けするかも。
rem logoGuillo本体でも処理できないかも。
rem ②こちらの都合上、オフセットで2を指定してあります(-frameOffset 2)
rem #####

rem ##### ☆logoGuilloの場所
rem ■logoGuilloの場所。
set LOGOG_PATH=C:\DTV\logoGuillo_v200\logoGuillo.exe

rem ##### ①Avisynthの設定 ※基本的には変更なし。固定値。
rem ■avs2pipemod.exe等の場所
set AVS2X_PATH=C:\DTV\logoGuillo_v200\avs2pipemod.exe
rem ■m2v.vfp/ffms2.dllの場所
set AVSPLG_PATH=C:\Program Files\AviSynth 2.5\plugins\m2v_vfp\m2v.vfp

rem ##### ②入力の設定
rem ■動画ファイル
rem 例 set VIDEO_PATH=E:\Videos\Record_20111228-050944.ts
rem ここでは、batファイルで処理される動画ファイル名が入力されます。
set VIDEO_PATH=%~1

rem ■ロゴデータ(lgdファイル)
set LOGO_PATH=C:\DTV\logoGuillo_v200\BS-NTV 1920x1080.lgd

rem ■ロゴデータ検出パラメータ(paramファイル)
set PRM_PATH=C:\DTV\logoGuillo_v200\BS-NTV 1920x1080.lgd.autoTune.param

rem ##### 出力の設定
rem ■自動CMカット結果の出力先。
rem 例 set OUTPUT_PATH=E:\Videos\Record_20111228-050944.ts.txt
rem ここでは、動画ファイル名にあわせて出力されるようにする。
set OUTPUT_PATH=%~dpn1.ts.txt

rem Trimコマンド生成
rem こちらの都合上、オフセットで2を指定してあります(-frameOffset 2)
"%LOGOG_PATH%" -video "%VIDEO_PATH%" -lgd "%LOGO_PATH%" -avs2x "%AVS2X_PATH%" -avsPlg "%AVSPLG_PATH%" -prm "%PRM_PATH%" -out "%OUTPUT_PATH%" -outFmt trim -frameOffset 2 -fldOdr unknown

rem 次のファイルがあれば :encode に戻る
shift
if not "%~1"=="" goto encode

endlocal
rem pause
exit /b

もくじに戻る







gen_avs2_d2v_aac_20111228_Common.bat
@echo off
setlocal

rem #--- 初期設定 ---
rem ### AVS を出力するフォルダのパス ###
rem # デフォルト("%~dp0")はバッチファイルと同じフォルダ
set avs_output_directory="%~dp0"

rem ### バッチ実行時にソース読み込みテンプレートの指定を行うか否かの選択 ###
rem # 1: バッチ実行時に指定する。
rem # 0: バッチ実行時に指定しない(下記 input_filter_template で指定したファイルを使用)。
set specify_input_filter_template=0

rem ### ソース読み込みテンプレートのパス ###
set input_filter_template="dgindex_d2v_aac_audiodub_Common.avst"

rem ### プラグインの読み込みにオートローディング機能を使うか否かの選択 ###
rem # 1: プラグインのオートローディングを使用
rem # 0: LoadPlugin でプラグインを読み込む(要プラグイン読み込みテンプレート)。
set use_auto_loading=1

rem ### プラグイン読み込みテンプレートのパス ###
rem # use_auto_loading=0 の場合に必要。
set plugin_template="my_plugins_example.avst"

rem ### 1.0/2.0 用プラグインを使用するか否かの選択 ###
rem # 1: 1.0/2.0 用プラグインを使用する(要プラグインリスト、要 LoadPluginEx.dll)。
rem # 0: 1.0/2.0 用プラグインを使用しない。
set use_old_plugins=0

rem ### 1.0/2.0 用プラグイン読み込みテンプレートのパス ###
rem # use_old_plugins=1 の場合に必要。
set old_plugin_template="old_plugins_example.avst"

rem ### フィルタ連鎖テンプレートを挿入するか否かの選択 ###
rem # 1: 下記 filter_template で指定したファイルの内容をスクリプトの最後に挿入する
rem # 0: 挿入しない。
set insert_filter_template=0

rem ### フィルタ連鎖テンプレートのパス ###
set filter_template="filter_chain_example.avst"
rem #--- 初期設定終わり ---

echo ### AVS ファイル生成バッチ("%~nx0") ###
echo.

:error_check
rem ### エラーチェック 1 ###
rem # bat をダブルクリックなら即終了
if "%~1"=="" (
rem # エラーメッセージの設定
set error_message=入力ファイルを指定してください。
rem # ラベルerrorへ移動
goto error
)

rem # avs_output_directory が存在するかチェック
if not exist %avs_output_directory% (
rem # エラーメッセージの設定
set error_message=AVS を出力するフォルダのパスが間違っています。
rem # ラベルerrorへ移動
goto error
)

:change_cd
rem ### カレントディレクトリを入力ファイルのあるところに変更 ###
cd /d "%~dp0"

:check_plugin_template
rem ### エラーチェック 2 ###
rem # plugin_template のチェック(use_auto_loading が 1 以外の場合)
if not "%use_auto_loading%"=="1" (
if not exist %plugin_template% (
rem # エラーメッセージの設定
set error_message=%plugin_template% が見つかりませんでした。
rem # ラベルerrorへ移動
goto error
)
)

:check_use_old
rem # old_plugin_template のチェック(use_old_plugins が 1 の場合)
if "%use_old_plugins%"=="1" (
if not exist %old_plugin_template% (
rem # エラーメッセージの設定
set error_message=%old_plugin_template% が見つかりませんでした。
rem # ラベルerrorへ移動
goto error
)
)

:check_filter_template
rem # filter_template のチェック(insert_filter_template が 1 の場合)
if "%insert_filter_template%"=="1" (
if not exist %filter_template% (
rem # エラーメッセージの設定
set error_message=%filter_template% が見つかりませんでした。
rem # ラベルerrorへ移動
goto error
)
)

:check_input_filter_template
rem # ソース読み込みテンプレートの指定(specify_input_filter_template が 1 の場合)
if "%specify_input_filter_template%"=="1" (
echo ### ソース読み込みテンプレートの指定 ###
echo.
echo ソース読み込みテンプレートのパスを指定してください(ドラッグ&ドロップでも可)。
echo 何も入力せずに Enter キーを押すと、%input_filter_template% が使われます。
echo.
set /p input_filter_template=入力して Enter キー:
echo.
) else (
echo %input_filter_template% を使って、AVS ファイルを生成します。
echo.
)
rem # input_filter_template のチェック
if not exist %input_filter_template% (
rem # エラーメッセージの設定
set error_message=%input_filter_template% が見つかりませんでした。
rem # ラベルerrorへ移動
goto error
)

:check_double_quotation
rem # input_filter_template が二重引用符で囲まれているかチェック
if not "%input_filter_template:~1,-1%"==%input_filter_template% (
rem # 二重引用符がない場合は付け直す
set input_filter_template="%input_filter_template%"
)

:gen_avs
rem ### AVS ファイルの出力 ###
rem # AVS ファイルをバッチファイルと同じフォルダに出力
rem set avs_file="%~dp0%~n1.avs"
set avs_file="%~dp0%~n1.avs"

echo "%~n1.avs" を生成します。
echo.
rem # 空の AVS ファイルを出力
type nul> %avs_file%

:add_plugin_list
rem ### プラグイン読み込みテンプレートを AVS ファイルと結合 ###
rem # 2.5 用プラグイン読み込みテンプレートを追加(use_auto_loading が 1 以外の場合)
if not "%use_auto_loading%"=="1" (
echo ### AVS ファイルにプラグイン読み込み部分を追加 ###
echo.
echo ### AviSynth 2.5 用プラグインの読み込み ###>>%avs_file%
copy /b %avs_file% + %plugin_template% %avs_file%
echo.>>%avs_file%
echo.
)

rem # 1.0/2.0 用プラグイン読み込みテンプレートを追加(use_old_plugins が 1 の場合)
if "%use_old_plugins%"=="1" (
echo ### AVS ファイルに 1.0/2.0 用プラグインの読み込みを追加 ###
echo.
echo ### AviSynth 1.0/2.0 用プラグインの読み込み ###>>%avs_file%
copy /b %avs_file% + %old_plugin_template% %avs_file%
echo.>>%avs_file%
echo.
)

:call_input_filter_template
rem ### 入力フィルタテンプレートをバッチファイルに変換して呼び出す ###
echo ### 入力フィルタテンプレートの挿入 ###
echo.
echo ### ソースファイルの読み込み ###>>%avs_file%
rem # 入力フィルタテンプレートを元にバッチファイルのパスを設定
set temp_bat="%input_filter_template:~1,-1%.bat"
rem # 入力フィルタテンプレートをバッチファイルとしてコピー
copy /b %input_filter_template% %temp_bat%
echo.
rem # 上で生成したバッチファイルを呼び出して実行
call %temp_bat% "%~1"
rem # 上で生成したバッチファイルを削除
del %temp_bat%
echo.
echo %avs_file% に %input_filter_template% を挿入しました。
echo.

:insert_filter_chain
rem ### フィルタ連鎖テンプレートの挿入 ###
if "%insert_filter_template%"=="1" (
echo ### フィルタ連鎖テンプレートの挿入 ###
echo.
echo.>>%avs_file%
echo ### フィルタ連鎖 ###>>%avs_file%
echo.>>%avs_file%
copy /b %avs_file% + %filter_template% %avs_file%
echo.>>%avs_file%
echo.
)

:move_avs
rem ### avs_file を avs_output_directory に移動 ###
rem # avs_file を移動
move %avs_file% %avs_output_directory%
rem # ラベル parameter_shift へ移動
goto parameter_shift

:parameter_shift
rem ### バッチパラメータをシフト ###
rem # %9 は %8 に、... %1 は %0 に
shift /1
rem # バッチパラメータが空なら終了
if "%~1"=="" goto end
rem # ラベル gen_avs に戻る
echo ------------------------------
echo.
goto gen_avs

:error
echo ### エラー! ###
echo.
echo %error_message%
echo いったん終了するには、何かキーを押してください。
pause>nul
exit

:end
echo ### 終了 ###
echo.
echo ウィンドウを閉じるには、何かキーを押してください。

endlocal
rem pause>nul
exit /b


もくじに戻る






dgindex_d2v_aac_audiodub_Common.avst
@echo off
setlocal

rem ### ソース読み込みテンプレート: ###
rem ### DGIndex を実行し、d2v と aac を読み込んで合成 ###

rem ### 初期設定 開始 ###
rem # ■DGIndex.exe のパス
set dgindex_path="C:\DTV\dgmpgdec158\DGIndex.exe"
rem # aac ソースの読み込みに使用するフィルタ
set aac_decode_function=bassAudioSource
rem # ■tsaac用.batのパス。BS11音声対応のため、ts2aacを利用。
set ts2aac_path="C:\DTV\ts2aac v0.12 SHA-1_F4E3D2796C0006A6C0EC76F93697C8A67027A087\ts2aac_tsD&D用-B_for_encode.bat"

rem ### 初期設定 終わり ###

rem ### コマンドラインツールの実行 開始 ###
echo # DGIndex の実行
rem %dgindex_path% -IF=[%~1] -OF=[%~dpn1] -exit

rem []とかダメ文字に対応
%dgindex_path% -SD=? -AIF=?%~1? -OF=?%~dpn1? -exit

rem ダメ文字。http://unkar.org/r/avi/1197696602 669,758,766,768,770,771,772等
rem ‐ゾЬⅩ云馨犠珪江讃従疹曽綻転脳評望余肋兢咯嫋彎拆枉歉濔畩秕緇臂蘊訃躱鐓饐鷯偰硎褜猤

rem BS11音声対応。ts2aac処理前にダメ音声とそのavs削除
for /f "delims=" %%A in ('dir /b /Oen "%~dpn1 *PID*DELAY*ms.aac"') do (
del "%~dp1%%A"
del "%~dpn1.avs"
)

rem BS11音声対応。2011年4月以降、DGIndexで音声がおかしくなるため、音声を別に作成。ts2aacをつかう。
call %ts2aac_path% "%~1"


rem # videoソース
set video_source="%~dpn1.d2v"

rem # aacソースの検索
for /f "delims=" %%A in ('dir /b /Oen "%~dpn1 *PID*DELAY*ms.aac"') do (
set audio_source="%~dp1%%A"
set Delay_source="%%A"
)
echo aacソース
echo "Delay_source" %Delay_source%

rem Delay_secondの値を取得する(強引な手法で・・・。)
set Delay_second=%Delay_source:~-14,10%

rem 不要な文字を消す。(7とか-7とかの値が得られる)
set Delay_second=%Delay_second:D=%
set Delay_second=%Delay_second:E=%
set Delay_second=%Delay_second:L=%
set Delay_second=%Delay_second:A=%
set Delay_second=%Delay_second:Y=%
set Delay_second=%Delay_second:.=%
set Delay_second=%Delay_second:m=%
set Delay_second=%Delay_second:s=%
set Delay_second=%Delay_second: =%


rem _aには、元の値、_bには絶対値
set Delay_second_a=%Delay_second%
set Delay_second_b=%Delay_second:-=%

echo Delay値(元の値)
echo "Delay_second_a" %Delay_second_a%

echo Delay値(絶対値)
echo "Delay_second_b" %Delay_second_b%

rem 小数点以下は0になる仕様を逆手に取って、小数点以下切り捨てに利用する。
set /a Delay_second_num=%Delay_second_b%/1000

echo 整数値
echo "Delay_second_num" %Delay_second_num%

rem 小数点以下3桁に整える(例 -7⇒-0.007をやりたいので、7⇒007の変換)
set Delay_second_ms=00%Delay_second_b%
set Delay_second_ms=%Delay_second_ms:~-3%

echo 小数点以下3ケタ
echo Delay_second_ms %Delay_second_ms%


echo # Delay値の処理結果
echo # 取得したDelay値
echo Delay_second %Delay_second%

echo # 取得したDelay値の一番左の値
echo %Delay_second:~0,1%

echo # +なら一とか十の位、-ならマイナス
echo %Delay_second_a:~0,1%

echo # 整数値
echo "Delay_second_num" %Delay_second_num%

echo # 小数点以下3桁
echo "Delay_second_ms" %Delay_second_ms%


echo # 書込み用Delay絶対値
echo %Delay_second_num%.%Delay_second_ms%

rem # +-の判定は、AVSファイル書き込み時に。



rem ### コマンドラインツールの実行 終わり ###

rem ### ソース読み込み部分の設定/出力 開始 ###
echo video = MPEG2Source^(%video_source%^)>> %avs_file%
echo audio = %aac_decode_function%^(%audio_source%^)>> %avs_file%
echo.>> %avs_file%
echo AudioDub^(video, audio^)>> %avs_file%
echo.>> %avs_file%

echo ###### 音ズレ補正 #####>> %avs_file%
rem +-判定し、avsファイルに書き込む
if %Delay_second_a:~0,1% == - (
echo DelayAudio^(-%Delay_second_num%.%Delay_second_ms%^)>> %avs_file%
) else (
echo DelayAudio^(%Delay_second_num%.%Delay_second_ms%^)>> %avs_file%
)
echo.>> %avs_file%

echo "%~n1.avs" を生成します。
echo.

rem ### ソース読み込み部分の設定/出力 終わり ###

echo ##### CMカット。本編等残す部分のみ範囲選択、フレーム単位で指定します。>> %avs_file%
echo # 例:Trim(570,6772)++Trim(8571,22836)++Trim(24635,46722)++Trim(48521,49119)>> %avs_file%
echo #Trim(572,5396)++Trim(7196,23348)++Trim(25148,46874)++Trim(48674,50021)>> %avs_file%
echo.>> %avs_file%
echo.>> %avs_file%

rem 自動CMカット(logoGuillo)対応
rem Trim位置を取り込む

rem Trim処理をavsに書き込む
if exist "%~dpn1.ts.txt" (
echo #自動CMカット(logoGuillo)>> %avs_file%
type "%~dpn1.ts.txt">> %avs_file%
echo.>> %avs_file%
) else (
echo ロゴ未検出。Trimなしで処理。
echo #自動CMカット(logoGuillo)>> %avs_file%
echo #ロゴ未検出。Trimなし。>> %avs_file%
echo.>> %avs_file%
)
echo.>> %avs_file%

rem echo return last>> %avs_file%


endlocal
rem pause
exit /b

もくじに戻る






encode_crf21_for_24fps_1280x720auto-test_AutoVFR(ConvEV_EasyVFR).bat
@echo off
setlocal

rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#ConvEV_EasyVFR

cd /d %~dp0

rem 作業開始
:encode

:ConvEV01
set avs_file01=ConvEV01.avs
type "%~1"> %avs_file01%
echo. >> %avs_file01%
echo TFM(output="tfm.txt")>> %avs_file01%
echo TDecimate(mode=4, output="tdec.txt")>> %avs_file01%
rem echo return last>> %avs_file01%


:ConvEV02
set avs_file02=ConvEV02.avs
type "%~1"> %avs_file02%
echo. >> %avs_file02%
echo TFM(input="tfm.txt")>> %avs_file02%
echo TDecimate(mode=5,hybrid=2,vfrDec=1, input="tdec.txt",tfmIn="tfm.txt",mkvOut="tmc_tivtc.txt")>> %avs_file02%
echo trim(0,1)>> %avs_file02%
rem echo return last>> %avs_file02%



rem エンコード
:ConvEV03
set avs_file03=ConvEV03.avs
type "%~1"> %avs_file03%
echo. >> %avs_file03%

rem ### (1) EasyVFR
echo Import("C:\Program Files\AviSynth 2.5\plugins\EasyVFR_ver2.avs")>> %avs_file03%
echo time_file="timecode.txt" #ConvEV.iniの設定はOutTmc=time_file>> %avs_file03%
echo Import("output.avs")>> %avs_file03%
echo. >> %avs_file03%

rem ### (2) Its ※(1)を使わない場合
rem echo its(def="D:\encode20111228\time.def", fps=-1, output="encode_AutoVFR(ConvEV).tmc")>> %avs_file03%
rem echo. >> %avs_file03%

echo # YV12で最終出力。>> %avs_file03%
echo #ConvertToYV12>> %avs_file03%
echo. >> %avs_file03%


echo #####Avisynth内蔵のリサイズフィルタ>> %avs_file03%
echo LanczosResize(1280,720)>> %avs_file03%
echo #BilinearResize(1280,720)>> %avs_file03%
echo #PointResize(1280,720)>> %avs_file03%
echo #BicubicResize(1280,720)>> %avs_file03%

rem v2.55
echo #Lanczos4Resize(1280,720)>> %avs_file03%

rem v2.56
echo #Spline16Resize(1280,720)>> %avs_file03%
echo #Spline36Resize(1280,720)>> %avs_file03%
echo #GaussResize(1280,720)>> %avs_file03%

rem v2.58
echo #Spline64Resize(1280,720)>> %avs_file03%
echo #BlackmanResize(1280,720)>> %avs_file03%
echo #####>> %avs_file03%

echo #SplineResize(1280,720)>> %avs_file03%
echo #Spline144Resize(1280,720)>> %avs_file03%

echo. >> %avs_file03%

echo ##### ワープシャープで輪郭をすっきりさせる>> %avs_file03%
echo #WarpSharp(95,3,85,0)>> %avs_file03%
echo. >> %avs_file03%

echo ##### アンシャープマスクでボケた映像を鮮明にする>> %avs_file03%
echo #UnsharpMask(32,8,38)>> %avs_file03%
echo. >> %avs_file03%


echo return last>> %avs_file03%
echo. >> %avs_file03%

echo function TIVTC24P2(clip clip){>> %avs_file03%
echo Interp = clip.AssumeTFF().SeparateFields().SelectEven().eedi3(dh=true) >> %avs_file03%
echo Deinted=clip.TDeint(order=1,field=1,edeint=Interp) >> %avs_file03%
echo clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted) >> %avs_file03%
echo clip = clip.TDecimate(mode=1) >> %avs_file03%
echo return clip >> %avs_file03%
echo }>> %avs_file03%
echo. >> %avs_file03%



rem #############################
rem やること(ConvEV EasyVFR
rem 1
rem 2
rem ConvEV タイムコード
rem 3本エンコ
rem #############################


rem set DOPT=-lc
rem set DRAT=-br 192000 -2pass
rem set DTH=auto

set OPT=-lc
set RAT=-br 192000 -2pass
set TH=auto

echo ***************************************
echo ** 音声エンコード **
echo ** オプション指定 **
echo ** AAC-LC=-lc HE-AAC=-he 無記入=-lc **
echo ** aacgainを使用する場合はlcにする **
echo ***************************************
rem set /p OPT=
echo **********************************************
echo ** 音声ビットレート指定(-mode bps) **
echo ** ABRの例「-br 128000」 **
echo ** VBRの例「-q 0.4」(0.4=128k 0.5=192k相当) **
echo ** 無記入 = -br 192000 -2pass **
echo **********************************************
rem set /p RAT=
echo **********************************************
echo **    スレッド数      **
echo ** 無記入 = auto **
echo **********************************************
rem set /p TH=

rem if "%OPT%"=="" SET OPT=%DOPT%
rem if "%RAT%"=="" SET RAT=%DRAT%
rem if "%TH%"=="" SET TH=%DTH%

rem 作業開始
rem :encode
rem ファイルネーム代入
set FN="%~n1"

rem 半角#でmp4boxが落ちるので変換。あとで戻す。
echo #→#変換 ※mp4boxが使えないため
SET FN0=%FN%
SET FN=%FN:#=#%

echo オリジナルネームFN0 %FN0%
echo 半角#⇒全角#  FN %FN%

echo ***************************************
echo **   音声出力   **
echo ***************************************
avs2wav "%~1" %FN%wav.wav

echo ***************************************
echo ** エンコード中(音声) **
echo ***************************************
neroAacEnc -ignorelength %OPT% %RAT% -if %FN%wav.wav -of %FN%wav.m4a

rem PSP等用の高圧縮時設定
rem neroAacEnc -ignorelength -lc -br 84000 -if "tempwav.wav" -of "tempwav_mob.mp4"

echo ***************************************
echo ** 音量調整中 **
echo ***************************************
aacgain /r /a /c %FN%wav.m4a
aacgain /g 2.0 %FN%wav.m4a

echo ↑音声処理(ビットレート指定&音量調整等)
echo →音声処理(無劣化Trim)
call "Lossless_Audio_Edit.bat" "%~1"

echo 音声ファイルの準備が完了しました。

echo ***************************************
echo ** エンコード中(映像) **
echo ***************************************

rem 映像をAVSを元にx264でエンコードする
rem 右側にある--output部分に先ほど作ったAVSと、出力する映像を指定
rem 出力形式は.264(raw形式)と.mp4の2つで、サンプルではmp4で出力

echo エンコード開始…%time%

echo *******************************
echo ** TIVTC-VFRの1pass目    **
echo *******************************
avs2avi ConvEV01.avs -c null -o n
rem x264 --preset ultrafast --tune fastdecode --merange 4 --no-psy --profile baseline --bitrate 0 -o nul ConvEV01.avs

echo tdec.txtおよびtfm.txtを作成しました。

echo *******************************
echo ** 2pass目でタイムコード出力 **
echo *******************************
x264 -o nul ConvEV02.avs

echo tdec.txtおよびtfm.txtからtmc_tivtc.txtを作成しました。

echo *******************************
echo tivtcのtimecodeから     **
echo     EasyVFRのコード生成 **
echo *******************************
rem ○60/30/24で分割する場合
rem ConvEV.exe --if "tmc_tivtc.txt" --tfm "tfm.txt" --of "output.avs"
rem ○60/24で分割する場合
ConvEV.exe --if "tmc_tivtc.txt" --of "output.avs"

echo output.avsを作成しました。

echo *******************************
echo ** 本エンコ         **
echo *******************************
x264 --crf 21 --level 4.1 --keyint 300 --min-keyint 1 --scenecut 65 --bframes 3 --8x8dct --trellis 2 --ref 4 --mixed-refs --subme 6 --no-fast-pskip --sar 1:1 --no-dct-decimate --output %FN%temp.mp4 ConvEV03.avs
echo timecode.txtを作成しました。
echo 映像の本エンコードが完了しました。

echo ***************************************
echo ** 映像と音声の結合  **
echo ***************************************

rem 可変フレームレートの際はこちらの2行を使用する
tc2mp4Mod.exe -i %FN%temp.mp4 -o %FN%temp_vfr.mp4 -t "timecode.txt"
mp4box -add %FN%temp_vfr.mp4 -add %FN%wav.m4a -new %FN0%_1280x720_AutoVFR(ConvEV).mp4

echo 映像と音声の結合が完了しました。

echo ***************************************
echo ** 一時ファイルの削除 **
echo ***************************************

if exist %FN0%_1280x720_AutoVFR(ConvEV).mp4 (
del %FN%wav.wav
del %FN%wav.m4a
del %FN%temp.mp4
del %FN%temp_vfr.mp4

rem 無劣化音声処理用
rem del %FN0%_aacedit_Trim.aac
rem del %FN0%_FAW.avs
rem del testaac_FAW.wav
rem del testaac_FAW_Trim.wav
rem del %FN0%_FAW_Trim_kaijo.aac




rem echo #→#変換(うまくいかないのでmp4boxの出力で直接)
rem ren %FN%_1280x720.mp4 %FN0%_1280x720.mp4
rem echo リネーム完了

copy tfm.txt %FN0%_1280x720_-_tfm.txt >nul
copy tdec.txt %FN0%_1280x720_-_tdec.txt >nul
copy tmc_tivtc.txt %FN0%_1280x720_-_tmc_tivtc.txt >nul
copy timecode.txt %FN0%_1280x720_-_timecode.txt >nul
copy output.avs %FN0%_1280x720_-_output.avs >nul
echo 一時ファイルのコピーの保存が完了しました。

del tfm.txt
del tdec.txt
del tmc_tivtc.txt
del timecode.txt
del output.avs
echo 一時ファイルの削除が完了しました。

)

rem 次のファイルがあれば :encode に戻る
shift
if not "%~1"=="" goto encode

endlocal
rem pause
exit /b

もくじに戻る




encode_crf21_for_24fps_1280x720auto-test_AutoVFR(DupMC2Def)00.bat
@echo off
setlocal
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#DupMC2Def
cd /d %~dp0

rem 作業開始
:encode


rem 説明
rem このbatファイルには、avsファイル(※)を入力する
rem ※処理の都合上、空に架かる橋ブログでのavs生成batファイルで出力したavsファイルのみ。
rem  gen_avs2_d2v_aac_20111228_Common.bat

rem ①ログ出力。ログ出力用avsファイルを作成(↓以下のsample.avsと同じ形式)
rem ②Dupmc2Defを使用。
rem ③mp4


rem sample.avs
rem #LoadPlugin("ReduceFlicker.dll")
rem #LoadPlugin("DeDup.dll")
rem #LoadPlugin("TIVTC.dll")
rem
rem #ソース読み込み
rem MPEG2source("datafile.d2v")
rem
rem #横リサイズ
rem BilinearResize(960,last.height)
rem
rem #縞検出
rem writefilestart("combed_log.txt", """ "header" """)
rem writefile("combed_log.txt", "current_frame", """ "," """, "IsCombedTIVTC(MI=160,blockx=16,blocky=32)")
rem
rem #TFM&フレーム上書き
rem #video=last
rem #TFM(mode=0,pp=0,slow=0,blockx=16,blocky=32,output="tfm_log.txt",micout=1,micmatching=0)
rem #Overlay(video,opacity=1)
rem
rem #60fps化&縦リサイズ
rem Bob(height=540)
rem
rem #フリッカ低減&ボカシ&DupMC
rem ReduceFlicker(strength=2)
rem Blur(1.0)
rem DupMC(log="dupmc_log.txt")
rem
rem return last
















:DupMC2Def01
rem ①ログ出力用avsファイルの作成
rem avs名
set avs_file01=DupMC2Def01.avs
type nul > %avs_file01%

echo avsファイルからソース読み込み
echo 映像部分(MPEG2Source or MPEG2VIDEO)

type "%~1">> %avs_file01%
echo. >> %avs_file01%

rem テンプレ(新)
echo BilinearResize(960,last.height)>> %avs_file01%
rem #縞検出
rem writefilestart("combed_log.txt", """ "header" """)
rem writefile("combed_log.txt", "current_frame", """ "," """, "IsCombedTIVTC(MI=160,blockx=16,blocky=32)")
rem
rem #TFM&フレーム上書き
rem #video=last
rem #TFM(mode=0,pp=0,slow=0,blockx=16,blocky=32,output="tfm_log.txt",micout=1,micmatching=0)
rem #Overlay(video,opacity=1)
rem
rem #60fps化&縦リサイズ
echo Bob(height=540)>> %avs_file01%
rem

echo #blank=BlankClip(width=240,height=120)>> %avs_file01%
echo #Overlay(blank,x=40,y=10,opacity=1.0)>> %avs_file01%

rem #フリッカ低減&ボカシ&DupMC
echo ReduceFlicker(strength=2)>> %avs_file01%
echo Blur(1.0)>> %avs_file01%
echo DupMC(log="dupmc_log.txt")>> %avs_file01%
rem
echo return last>> %avs_file01%



rem テンプレ(旧)avs記述例にしたがって、avs作成。このavsをつかって、入力用のログを作成。
rem MPEG2source("datafile.d2v")
rem Import("trim.avs")
rem writefilestart("combed_log.txt", """ "header" """)
rem writefile("combed_log.txt", "current_frame", """ "," """, "IsCombedTIVTC(MI=160,blockx=32,blocky=16)")
rem Bob()
rem PointResize(1280,720)
rem #PointResize(720,480,190,10,1060,1060)#SD用
rem ReduceFlicker(strength=2)
rem Blur(1.0).Blur(1.0).Blur(1.0)
rem DupMC(log="dupmc_log.txt")

rem avs記述例にしたがって、avs作成。このavsをつかって、入力用のログを作成。
rem ReduceFlickerを使う時、~が必要(ReduceFlickerをプラグインに入れると、~を用意するまでダイアログ表示がでる)
rem MPEG2source("datafile.d2v")
rem Import("trim.avs")
rem #writefilestart("combed_log.txt", """ "header" """)>> %avs_file01%
rem #writefile("combed_log.txt", "current_frame", """ "," """, "IsCombedTIVTC(MI=160,blockx=32,blocky=16)")>> %avs_file01%
rem #Bob()>> %avs_file01%
rem #PointResize(1280,720)>> %avs_file01%
rem #PointResize(720,480,190,10,1060,1060)#SD用>> %avs_file01%
rem echo blank=BlankClip(width=300,height=150)>> %avs_file01%
rem echo #Overlay(blank,x=80,y=20,opacity=1.0)>> %avs_file01%
rem echo #ReduceFlicker(strength=2)>> %avs_file01%
rem echo Blur(1.0).Blur(1.0).Blur(1.0)>> %avs_file01%
rem echo DupMC(log="dupmc_log.txt")>> %avs_file01%
rem echo ConvertToYV12>> %avs_file01%


:DupMC2Def02
set avs_file02=DupMC2Def02.avs
type nul > %avs_file02%
echo LoadCplugin("C:\Program Files\AviSynth 2.5\plugins\yadif.dll")>> %avs_file02%
type "%~1">> %avs_file02%
echo. >> %avs_file02%

echo its(def="time_AutoVFR(DupMC2Def).def", fps=-1, output="encode_AutoVFR(DupMC2Def).tmc")>> %avs_file02%
echo. >> %avs_file02%

echo # YV12で最終出力。>> %avs_file02%
echo ConvertToYV12>> %avs_file02%
echo. >> %avs_file02%

echo LanczosResize(1280,720)>> %avs_file02%
echo #BilinearResize(1280,720)>> %avs_file02%
echo. >> %avs_file02%

echo ##### ワープシャープで輪郭をすっきりさせる>> %avs_file02%
echo WarpSharp(95,3,85,0)>> %avs_file02%
echo. >> %avs_file02%

echo ##### アンシャープマスクでボケた映像を鮮明にする>> %avs_file02%
echo UnsharpMask(32,8,38)>> %avs_file02%
echo.>> %avs_file02%


echo return last>> %avs_file02%
echo.>> %avs_file02%

echo function TIVTC24P2(clip clip){>> %avs_file02%
echo Interp = clip.AssumeTFF().SeparateFields().SelectEven().eedi3(dh=true) >> %avs_file02%
echo Deinted=clip.TDeint(order=1,field=1,edeint=Interp) >> %avs_file02%
echo clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted) >> %avs_file02%
echo clip = clip.TDecimate(mode=1) >> %avs_file02%
echo return clip >> %avs_file02%
echo }>> %avs_file02%
echo.>> %avs_file02%


rem #############################
rem やること(DupMC2Def EasyVFR
rem 1
rem 2
rem DupMC2Def タイムコード
rem 3本エンコ
rem #############################


rem set DOPT=-lc
rem set DRAT=-br 192000 -2pass
rem set DTH=auto

set OPT=-lc
set RAT=-br 192000 -2pass
set TH=auto

echo ***************************************
echo ** 音声エンコード **
echo ** オプション指定 **
echo ** AAC-LC=-lc HE-AAC=-he 無記入=-lc **
echo ** aacgainを使用する場合はlcにする **
echo ***************************************
rem set /p OPT=
echo **********************************************
echo ** 音声ビットレート指定(-mode bps) **
echo ** ABRの例「-br 128000」 **
echo ** VBRの例「-q 0.4」(0.4=128k 0.5=192k相当) **
echo ** 無記入 = -br 192000 -2pass **
echo **********************************************
rem set /p RAT=
echo **********************************************
echo **    スレッド数      **
echo ** 無記入 = auto **
echo **********************************************
rem set /p TH=

rem if "%OPT%"=="" SET OPT=%DOPT%
rem if "%RAT%"=="" SET RAT=%DRAT%
rem if "%TH%"=="" SET TH=%DTH%

rem 作業開始
rem :encode
rem ファイルネーム代入
set FN="%~n1"

rem 半角#でmp4boxが落ちるので変換。あとで戻す。
echo #→#変換 ※mp4boxが使えないため
SET FN0=%FN%
SET FN=%FN:#=#%

echo オリジナルネームFN0 %FN0%
echo 半角#⇒全角#  FN %FN%

echo ***************************************
echo **   音声出力   **
echo ***************************************
avs2wav "%~1" %FN%wav.wav

echo ***************************************
echo ** エンコード中(音声) **
echo ***************************************
neroAacEnc -ignorelength %OPT% %RAT% -if %FN%wav.wav -of %FN%wav.m4a

rem PSP等用の高圧縮時設定
rem neroAacEnc -ignorelength -lc -br 84000 -if "tempwav.wav" -of "tempwav_mob.mp4"

echo ***************************************
echo ** 音量調整中 **
echo ***************************************
aacgain /r /a /c %FN%wav.m4a
aacgain /g 2.0 %FN%wav.m4a

echo ↑音声処理(ビットレート指定&音量調整等)
echo →音声処理(無劣化Trim)
rem call "Lossless_Audio_Edit.bat" "%~1"

echo 音声ファイルの準備が完了しました。

echo ***************************************
echo ** エンコード中(映像) **
echo ***************************************

rem 映像をAVSを元にx264でエンコードする
rem 右側にある--output部分に先ほど作ったAVSと、出力する映像を指定
rem 出力形式は.264(raw形式)と.mp4の2つで、サンプルではmp4で出力

echo エンコード開始…%time%

echo *******************************
echo ** 入力用のログを作成    **
echo *******************************
avs2avi DupMC2Def01.avs -c null -o n

rem x264 --preset ultrafast --tune fastdecode --merange 4 --no-psy --profile baseline --bitrate 0 -o nul DupMC2Def01.avs

echo 入力用のログ(dupmc_log.txt)を作成しました。



echo *******************************
echo ** ③縞検出
echo *******************************

echo ④DupMC2Defで処理(DupMCのログ等を参照し、ItsのDefファイルを出力)
rem DupMC2Def.exe "D:\encode20111228\dupmc_log.txt"
echo DupMC2Def.exe "%~dp0dupmc_log.txt"
rem DupMC2Def.exe "%~dp0dupmc_log.txt"

rem ★重要★ 入力ファイルはフルパスで指定★

rem ①DupMCのログ
DupMC2Def.exe -d "%~dp0dupmc_log.txt"

rem ④DupMCのログ + Trim
rem DupMC2Def.exe -d "%~dp0dupmc_log.txt" -t "%~dp0Trim.txt"

rem Trimファイル作成+不要な行を削除
rem type "%~1" | findstr "Trim" > "%~dp0Trim1.txt"
rem type "%~dp0Trim1.txt" | findstr /V "#" > "%~dp0Trim2.txt"

rem DupMC2Def.exe -d "%~dp0dupmc_log.txt" -t "%~dp0Trim2.txt"




rem -------------------------------------------
rem ・DupMCのログを参照する
rem DupMC2Def.exe "C:\dupmc_log.txt"
rem
rem ・DupMCのログと縞検出フィルタのログを合わせて参照する
rem DupMC2Def.exe "C:\dupmc_log.txt" "C:\combed_log.txt"
rem -------------------------------------------

echo *******************************
echo ** 本エンコ         **
echo *******************************
rem x264 --crf 21 --level 4.1 --keyint 300 --min-keyint 1 --scenecut 65 --bframes 3 --8x8dct --trellis 2 --ref 4 --mixed-refs --subme 6 --no-fast-pskip --sar 1:1 --no-dct-decimate --tcfile-in "encode_AutoVFR(DupMC2Def).tmc" --timebase 1001/120000 --output %FN%temp.mp4 DupMC2Def02.avs
x264 --crf 21 --level 4.1 --keyint 300 --min-keyint 1 --scenecut 65 --bframes 3 --8x8dct --trellis 2 --ref 3 --mixed-refs --subme 6 --no-fast-pskip --sar 1:1 --no-dct-decimate --tcfile-in "encode_AutoVFR(DupMC2Def).tmc" --timebase 1001/120000 --output %FN%temp.mp4 DupMC2Def02.avs


echo 映像の本エンコードが完了しました。

echo ***************************************
echo ** 映像と音声の結合  **
echo ***************************************

mp4box -add %FN%temp.mp4 -add %FN%wav.m4a -new %FN0%_1280x720_AutoVFR(DupMC2Def).mp4

echo 映像と音声の結合が完了しました。

echo ***************************************
echo ** 一時ファイルの削除 **
echo ***************************************

copy dupmc_log.txt %FN0%_AutoVFR_dupmc_log.txt >nul
copy time_AutoVFR(DupMC2Def).def %FN0%_time_AutoVFR(DupMC2Def).def >nul
copy encode_AutoVFR(DupMC2Def).tmc %FN0%_encode_AutoVFR(DupMC2Def).tmc >nul
echo 一時ファイルのコピーの保存が完了しました。

del dupmc_log.txt
del time_AutoVFR(DupMC2Def).def
del encode_AutoVFR(DupMC2Def).tmc

if exist %FN0%_1280x720_AutoVFR(DupMC2Def).mp4 (
del %FN%wav.wav
del %FN%wav.m4a
del %FN%temp.mp4
rem del %FN%temp_vfr.mp4

rem 無劣化音声処理用
rem del %FN0%_aacedit_Trim.aac
rem del %FN0%_FAW.avs
rem del testaac_FAW.wav
rem del testaac_FAW_Trim.wav
rem del %FN0%_FAW_Trim_kaijo.aac




rem echo #→#変換(うまくいかないのでmp4boxの出力で直接)
rem ren %FN%_1280x720.mp4 %FN0%_1280x720.mp4
rem echo リネーム完了

echo 一時ファイルの削除が完了しました。
)





rem 次のファイルがあれば :encode に戻る
shift
if not "%~1"=="" goto encode

endlocal
rem pause
exit /b

もくじに戻る




encode_crf21_for_24fps_1280x720auto-test_AutoVFR(AutoVfr_Def)00.bat
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#AutoVfr_Def
@echo off
setlocal

cd /d %~dp0

rem 作業開始
:encode

:AutoVfr01
set avs_file01=AutoVfr01.avs
type "%~1"> %avs_file01%
echo. >> %avs_file01%

rem テンプレ
rem MPEG2Source("video_file")
rem Trim()#CMカット
rem #TBSCrop()
rem Auto_VFR("log_file",IsCrop=false,IsDup=false)
rem return last

rem avs記述例にしたがって、avs作成。このavsをつかって、入力用のログを作成。
rem MPEG2Source("video_file") ←上の方で処理。
rem Trim()#CMカット      ←上の方で処理
echo Import("Auto_Vfr.avs")>> %avs_file01%
echo blank=BlankClip(width=450,height=250)>> %avs_file01%
echo Overlay(blank,x=100,y=20,opacity=1.0)>> %avs_file01%
echo #TBSCrop()>> %avs_file01%
echo Auto_VFR("log_file",IsCrop=false,IsDup=false) >> %avs_file01%
echo return last>> %avs_file01%


:AutoVfr02
set avs_file02=AutoVfr02.avs
type "%~1"> %avs_file02%
echo. >> %avs_file02%

echo its(def="time_AutoVFR(AutoVfr).def", fps=-1, output="encode_AutoVFR(AutoVfr).tmc")>> %avs_file02%
echo. >> %avs_file02%

echo # YV12で最終出力。>> %avs_file02%
echo ConvertToYV12>> %avs_file02%
echo. >> %avs_file02%

echo LanczosResize(1280,720)>> %avs_file02%
echo #BilinearResize(1280,720)>> %avs_file02%
echo. >> %avs_file02%

echo ##### ワープシャープで輪郭をすっきりさせる>> %avs_file02%
echo WarpSharp(95,3,85,0)>> %avs_file02%
echo. >> %avs_file02%

echo ##### アンシャープマスクでボケた映像を鮮明にする>> %avs_file02%
echo UnsharpMask(32,8,38)>> %avs_file02%
echo. >> %avs_file02%


echo return last>> %avs_file02%
echo. >> %avs_file02%

echo function TIVTC24P2(clip clip){>> %avs_file02%
echo Interp = clip.AssumeTFF().SeparateFields().SelectEven().eedi3(dh=true) >> %avs_file02%
echo Deinted=clip.TDeint(order=1,field=1,edeint=Interp) >> %avs_file02%
echo clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted) >> %avs_file02%
echo clip = clip.TDecimate(mode=1) >> %avs_file02%
echo return clip >> %avs_file02%
echo }>> %avs_file02%
echo. >> %avs_file02%


rem #############################
rem やること(AutoVfr EasyVFR
rem 1
rem 2
rem AutoVfr タイムコード
rem 3本エンコ
rem #############################


rem set DOPT=-lc
rem set DRAT=-br 192000 -2pass
rem set DTH=auto

set OPT=-lc
set RAT=-br 192000 -2pass
set TH=auto

echo ***************************************
echo ** 音声エンコード **
echo ** オプション指定 **
echo ** AAC-LC=-lc HE-AAC=-he 無記入=-lc **
echo ** aacgainを使用する場合はlcにする **
echo ***************************************
rem set /p OPT=
echo **********************************************
echo ** 音声ビットレート指定(-mode bps) **
echo ** ABRの例「-br 128000」 **
echo ** VBRの例「-q 0.4」(0.4=128k 0.5=192k相当) **
echo ** 無記入 = -br 192000 -2pass **
echo **********************************************
rem set /p RAT=
echo **********************************************
echo **    スレッド数      **
echo ** 無記入 = auto **
echo **********************************************
rem set /p TH=

rem if "%OPT%"=="" SET OPT=%DOPT%
rem if "%RAT%"=="" SET RAT=%DRAT%
rem if "%TH%"=="" SET TH=%DTH%

rem 作業開始
rem :encode
rem ファイルネーム代入
set FN="%~n1"

rem 半角#でmp4boxが落ちるので変換。あとで戻す。
echo #→#変換 ※mp4boxが使えないため
SET FN0=%FN%
SET FN=%FN:#=#%

echo オリジナルネームFN0 %FN0%
echo 半角#⇒全角#  FN %FN%

echo ***************************************
echo **   音声出力   **
echo ***************************************
avs2wav "%~1" %FN%wav.wav

echo ***************************************
echo ** エンコード中(音声) **
echo ***************************************
neroAacEnc -ignorelength %OPT% %RAT% -if %FN%wav.wav -of %FN%wav.m4a

rem PSP等用の高圧縮時設定
rem neroAacEnc -ignorelength -lc -br 84000 -if "tempwav.wav" -of "tempwav_mob.mp4"

echo ***************************************
echo ** 音量調整中 **
echo ***************************************
aacgain /r /a /c %FN%wav.m4a
aacgain /g 2.0 %FN%wav.m4a

echo ↑音声処理(ビットレート指定&音量調整等)
echo →音声処理(無劣化Trim)
call "Lossless_Audio_Edit.bat" "%~1"

echo 音声ファイルの準備が完了しました。

echo ***************************************
echo ** エンコード中(映像) **
echo ***************************************

rem 映像をAVSを元にx264でエンコードする
rem 右側にある--output部分に先ほど作ったAVSと、出力する映像を指定
rem 出力形式は.264(raw形式)と.mp4の2つで、サンプルではmp4で出力

echo エンコード開始…%time%

echo *******************************
echo ** 入力用のログを作成    **
echo *******************************
rem avs2avi "D:\encode20111228\%~n1_AutoVfr01.avs" -c null -o n
avs2avi AutoVfr01.avs -c null -o n
rem x264 --preset ultrafast --tune fastdecode --merange 4 --no-psy --profile baseline --bitrate 0 -o nul AutoVfr01.avs

echo 入力用のログ(log_file.txt)を作成しました。



echo *******************************
echo ** ログを参照し、ItsのDefファイル出力
echo *******************************

AutoVfr -i "log_file" -o "time_AutoVFR(AutoVfr).def" -skip 3 -30f 0 -60f 1



echo *******************************
echo ** 本エンコ         **
echo *******************************
x264 --crf 21 --level 4.1 --keyint 300 --min-keyint 1 --scenecut 65 --bframes 3 --8x8dct --trellis 2 --ref 4 --mixed-refs --subme 6 --no-fast-pskip --sar 1:1 --no-dct-decimate --tcfile-in "encode_AutoVFR(AutoVfr).tmc" --timebase 1001/120000 --output %FN%temp.mp4 AutoVfr02.avs

echo encode_AutoVFR(AutoVfr).tmcを作成しました。
echo timecode.txtを作成しました。
echo 映像の本エンコードが完了しました。

echo ***************************************
echo ** 映像と音声の結合  **
echo ***************************************

mp4box -add %FN%temp.mp4 -add %FN%wav.m4a -new %FN0%_crf21_for_24fps_1280x720_AutoVFR(AutoVfr_Def).mp4

echo 映像と音声の結合が完了しました。

echo ***************************************
echo ** 一時ファイルの削除 **
echo ***************************************

copy log_file %FN0%_log_file_AutoVFR(AutoVfr) >nul
copy time_AutoVFR(AutoVfr).def %FN0%_time_AutoVFR(AutoVfr).def >nul
copy encode_AutoVFR(AutoVfr).tmc %FN0%_encode_AutoVFR(AutoVfr).tmc >nul
echo 一時ファイルのコピーの保存が完了しました。

del log_file
del time_AutoVFR(AutoVfr).def
del encode_AutoVFR(AutoVfr).tmc

if exist %FN0%_crf21_for_24fps_1280x720_AutoVFR(AutoVfr_Def).mp4 (
del %FN%wav.wav
del %FN%wav.m4a
del %FN%temp.mp4
rem del %FN%temp_vfr.mp4

rem 無劣化音声処理用
rem del %FN0%_aacedit_Trim.aac
rem del %FN0%_FAW.avs
rem del testaac_FAW.wav
rem del testaac_FAW_Trim.wav
rem del %FN0%_FAW_Trim_kaijo.aac




rem echo #→#変換(うまくいかないのでmp4boxの出力で直接)
rem ren %FN%_1280x720.mp4 %FN0%_1280x720.mp4
rem echo リネーム完了

echo 一時ファイルの削除が完了しました。
)





rem 次のファイルがあれば :encode に戻る
shift
if not "%~1"=="" goto encode

endlocal
rem pause
exit /b

もくじに戻る






encode_crf21_for_24fps_1280x720auto-test_AutoVFR(AutoVfr_EasyVFR)00.bat
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#AutoVfr_EasyVFR
@echo off
setlocal
cd /d %~dp0

rem 作業開始
:encode

:AutoVfr01
set avs_file01=AutoVfr01.avs
type "%~1"> %avs_file01%
echo. >> %avs_file01%

rem テンプレ
rem MPEG2Source("video_file")
rem Trim()#CMカット
rem #TBSCrop()
rem Auto_VFR("log_file",IsCrop=false,IsDup=false)
rem return last

rem avs記述例にしたがって、avs作成。このavsをつかって、入力用のログを作成。
rem MPEG2Source("video_file") ←上の方で処理。
rem Trim()#CMカット      ←上の方で処理
echo Import("Auto_Vfr.avs")>> %avs_file01%
echo blank=BlankClip(width=450,height=250)>> %avs_file01%
echo Overlay(blank,x=100,y=20,opacity=1.0)>> %avs_file01%
echo #TBSCrop()>> %avs_file01%
echo Auto_VFR("log_file",IsCrop=false,IsDup=false) >> %avs_file01%
echo return last>> %avs_file01%


:AutoVfr02
set avs_file02=AutoVfr02.avs
type "%~1"> %avs_file02%
echo. >> %avs_file02%

rem echo its(def="time_AutoVFR(AutoVfr).def", fps=-1, output="encode_AutoVFR(AutoVfr).tmc")>> %avs_file02%
echo Import("C:\Program Files\AviSynth 2.5\plugins\EasyVFR_ver2.avs")>> %avs_file02%
echo tcpath="timecode_AutoVFR(AutoVfr_EasyVFR).txt">> %avs_file02%
echo Import("time_AutoVFR(AutoVfr_EasyVFR).avs")>> %avs_file02%
echo. >> %avs_file02%

echo # YV12で最終出力。>> %avs_file02%
echo ConvertToYV12>> %avs_file02%
echo. >> %avs_file02%

echo LanczosResize(1280,720)>> %avs_file02%
echo #BilinearResize(1280,720)>> %avs_file02%
echo. >> %avs_file02%

echo ##### ワープシャープで輪郭をすっきりさせる>> %avs_file02%
echo WarpSharp(95,3,85,0)>> %avs_file02%
echo. >> %avs_file02%

echo ##### アンシャープマスクでボケた映像を鮮明にする>> %avs_file02%
echo UnsharpMask(32,8,38)>> %avs_file02%
echo. >> %avs_file02%


echo return last>> %avs_file02%
echo. >> %avs_file02%

echo function TIVTC24P2(clip clip){>> %avs_file02%
echo Interp = clip.AssumeTFF().SeparateFields().SelectEven().eedi3(dh=true) >> %avs_file02%
echo Deinted=clip.TDeint(order=1,field=1,edeint=Interp) >> %avs_file02%
echo clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted) >> %avs_file02%
echo clip = clip.TDecimate(mode=1) >> %avs_file02%
echo return clip >> %avs_file02%
echo }>> %avs_file02%
echo. >> %avs_file02%


rem #############################
rem やること(AutoVfr EasyVFR
rem 1
rem 2
rem AutoVfr タイムコード
rem 3本エンコ
rem #############################


rem set DOPT=-lc
rem set DRAT=-br 192000 -2pass
rem set DTH=auto

set OPT=-lc
set RAT=-br 192000 -2pass
set TH=auto

echo ***************************************
echo ** 音声エンコード **
echo ** オプション指定 **
echo ** AAC-LC=-lc HE-AAC=-he 無記入=-lc **
echo ** aacgainを使用する場合はlcにする **
echo ***************************************
rem set /p OPT=
echo **********************************************
echo ** 音声ビットレート指定(-mode bps) **
echo ** ABRの例「-br 128000」 **
echo ** VBRの例「-q 0.4」(0.4=128k 0.5=192k相当) **
echo ** 無記入 = -br 192000 -2pass **
echo **********************************************
rem set /p RAT=
echo **********************************************
echo **    スレッド数      **
echo ** 無記入 = auto **
echo **********************************************
rem set /p TH=

rem if "%OPT%"=="" SET OPT=%DOPT%
rem if "%RAT%"=="" SET RAT=%DRAT%
rem if "%TH%"=="" SET TH=%DTH%

rem 作業開始
rem :encode
rem ファイルネーム代入
set FN="%~n1"

rem 半角#でmp4boxが落ちるので変換。あとで戻す。
echo #→#変換 ※mp4boxが使えないため
SET FN0=%FN%
SET FN=%FN:#=#%

echo オリジナルネームFN0 %FN0%
echo 半角#⇒全角#  FN %FN%

echo ***************************************
echo **   音声出力   **
echo ***************************************
avs2wav "%~1" %FN%wav.wav

echo ***************************************
echo ** エンコード中(音声) **
echo ***************************************
neroAacEnc -ignorelength %OPT% %RAT% -if %FN%wav.wav -of %FN%wav.m4a

rem PSP等用の高圧縮時設定
rem neroAacEnc -ignorelength -lc -br 84000 -if "tempwav.wav" -of "tempwav_mob.mp4"

echo ***************************************
echo ** 音量調整中 **
echo ***************************************
aacgain /r /a /c %FN%wav.m4a
aacgain /g 2.0 %FN%wav.m4a

echo ↑音声処理(ビットレート指定&音量調整等)
echo →音声処理(無劣化Trim)
call "Lossless_Audio_Edit.bat" "%~1"

echo 音声ファイルの準備が完了しました。

echo ***************************************
echo ** エンコード中(映像) **
echo ***************************************

rem 映像をAVSを元にx264でエンコードする
rem 右側にある--output部分に先ほど作ったAVSと、出力する映像を指定
rem 出力形式は.264(raw形式)と.mp4の2つで、サンプルではmp4で出力

echo エンコード開始…%time%

echo *******************************
echo ** 入力用のログを作成    **
echo *******************************
rem avs2avi "D:\encode20111228\%~n1_AutoVfr01.avs" -c null -o n
avs2avi AutoVfr01.avs -c null -o n
rem x264 --preset ultrafast --tune fastdecode --merange 4 --no-psy --profile baseline --bitrate 0 -o nul AutoVfr01.avs

echo 入力用のログ(log_file.txt)を作成しました。



echo *******************************
echo ** ログを参照し、ItsのDefファイル出力
echo *******************************

AutoVfr -i "log_file" -o "time_AutoVFR(AutoVfr_EasyVFR).avs" -skip 3 -30f 0 -60f 1



echo *******************************
echo ** 本エンコ         **
echo *******************************
x264 --crf 21 --level 4.1 --keyint 300 --min-keyint 1 --scenecut 65 --bframes 3 --8x8dct --trellis 2 --ref 4 --mixed-refs --subme 6 --no-fast-pskip --sar 1:1 --no-dct-decimate --output %FN%temp.mp4 AutoVfr02.avs

echo timecode.txtを作成しました。
echo 映像の本エンコードが完了しました。

echo ***************************************
echo ** 映像と音声の結合  **
echo ***************************************

rem 可変フレームレートの際はこちらの2行を使用する
tc2mp4Mod.exe -i %FN%temp.mp4 -o %FN%temp_vfr.mp4 -t "timecode_AutoVFR(AutoVfr_EasyVFR).txt"
mp4box -add %FN%temp_vfr.mp4 -add %FN%wav.m4a -new %FN0%_crf21_for_24fps_1280x720_AutoVFR(AutoVfr_EasyVFR).mp4

echo 映像と音声の結合が完了しました。

echo ***************************************
echo ** 一時ファイルの削除 **
echo ***************************************

copy log_file %FN0%_log_file_AutoVFR(AutoVfr) >nul
rem copy time_AutoVFR(AutoVfr).def %FN0%_time_AutoVFR(AutoVfr).def >nul
rem copy encode_AutoVFR(AutoVfr).tmc %FN0%_encode_AutoVFR(AutoVfr).tmc >nul
copy timecode_AutoVFR(AutoVfr_EasyVFR).txt %FN0%_1280x720_-_timecode_AutoVFR(AutoVfr_EasyVFR).txt >nul
copy time_AutoVFR(AutoVfr_EasyVFR).avs %FN0%_1280x720_-_time_AutoVFR(AutoVfr_EasyVFR).avs >nul
echo 一時ファイルのコピーの保存が完了しました。

del log_file
rem del time_AutoVFR(AutoVfr).def
rem del encode_AutoVFR(AutoVfr).tmc
del timecode_AutoVFR(AutoVfr_EasyVFR).txt
del time_AutoVFR(AutoVfr_EasyVFR).avs

if exist %FN0%_crf21_for_24fps_1280x720_AutoVFR(AutoVfr_EasyVFR).mp4 (
del %FN%wav.wav
del %FN%wav.m4a
del %FN%temp.mp4
del %FN%temp_vfr.mp4

rem 無劣化音声処理用
rem del %FN0%_aacedit_Trim.aac
rem del %FN0%_FAW.avs
rem del testaac_FAW.wav
rem del testaac_FAW_Trim.wav
rem del %FN0%_FAW_Trim_kaijo.aac




rem echo #→#変換(うまくいかないのでmp4boxの出力で直接)
rem ren %FN%_1280x720.mp4 %FN0%_1280x720.mp4
rem echo リネーム完了

echo 一時ファイルの削除が完了しました。
)





rem 次のファイルがあれば :encode に戻る
shift
if not "%~1"=="" goto encode

endlocal
rem pause
exit /b

もくじに戻る




Lossless_Audio_Edit.bat
下のbatファイルは、aacとTrimが記述されたavsを読み込んで音声を無劣化処理するためのもの。
※gen_avs2_d2v_aac_20111228_Common.batで作成した形式のavs)
@echo off
setlocal
rem http://soranikakaruhashi.blog.fc2.com/blog-entry-100.html#Lossless


echo ####################
echo ### Delay値の取得
echo ####################

for /F "tokens=* delims=" %%l in ('findstr /R "bassAudioSource" "%~1"') do set AudioSource=%%l

echo #####
echo AudioSource
echo %AudioSource%
echo #####

rem 音声ファイルのパスの抽出
set AudioSource_path=%AudioSource%

rem m文字目から、最後まで
set AudioSource_path=%AudioSource_path:~23%
set AudioSource_path=%AudioSource_path:("=%
set AudioSource_path=%AudioSource_path:")=%

echo #####
echo 音声ファイルのパス
echo AudioSource_path
echo %AudioSource_path%
echo #####

rem Delay値の取得
rem Delay_secondの値を取得する(強引な手法で・・・。)
set Delay_second=%AudioSource_path:~-14,10%

rem 不要な文字を消す。(2とか-2とかの値が得られる)
set Delay_second=%Delay_second:D=%
set Delay_second=%Delay_second:E=%
set Delay_second=%Delay_second:L=%
set Delay_second=%Delay_second:A=%
set Delay_second=%Delay_second:Y=%
set Delay_second=%Delay_second:.=%
set Delay_second=%Delay_second:m=%
set Delay_second=%Delay_second:s=%
set Delay_second=%Delay_second: =%


rem _aには、元の値、_bには絶対値
set Delay_second_a=%Delay_second%
set Delay_second_b=%Delay_second:-=%

echo Delay値
echo "Delay_second_a" = %Delay_second_a%





echo ####################
echo ### aac処理
echo ### (aaceditの利用)
echo ####################

rem aacedit2 -d %Delay_second_a% -t "D:\encode20111228\%~n1_aacedit.avs" -o "D:\encode20111228\%~n1_aacedit_Trim.aac" %AudioSource_path%
rem echo aacedit2 -d %Delay_second_a% -t "D:\encode20111228\%~n1_aacedit.avs" -o "D:\encode20111228\%~n1_aacedit_Trim.aac" %AudioSource_path%

rem aacedit2 -d %Delay_second_a% -t %1 -o "D:\encode20111228\%~n1_aacedit_Trim.aac" "%AudioSource_path%"

cd /d %~dp0
echo ### aaceditを利用します。
echo aacedit2 -d %Delay_second_a% -t "%~1" -o "%~n1_aacedit_Trim.aac" "%AudioSource_path%"
echo ###
aacedit2 -d %Delay_second_a% -t "%~1" -o "%~n1_aacedit_Trim.aac" "%AudioSource_path%"
mp4box -mpeg4 -add "%~n1_aacedit_Trim.aac" -new "%~n1_aacedit_Trim.m4a"


echo ####################
echo ### aac処理
echo ### (FakeAacWavの利用)
echo ####################
rem FakeAacWaveのパス(fawclの方はウィンドウ表示なし)
set faw_path="C:\DTV\up1009FakeAacWav Ver0.28+fawcl0.11\fawcl.exe"
rem set faw_path="C:\DTV\up1009FakeAacWav Ver0.28+fawcl0.11\FAW.exe"


echo FakeAacWavファイルの作成(偽装wavファイル作成)
rem とりあえず暫定版
copy "%AudioSource_path%" %~dp0testaac.aac
rem %faw_path% testaac.aac testaac_FAW.wav
%faw_path% -s2 -d%Delay_second_a% testaac.aac testaac_FAW.wav

echo FAWのTrim用のavsファイルを用意
for /F "tokens=* delims=" %%l in ('findstr /R "MPEG2Source" "%~1"') do set MPEG2Source=%%l
echo 映像部分→ %MPEG2Source%
echo 音声部分→ %~dp0testaac_FAW.wav

set avs_file_FAW="%~dp0%~n1_FAW.avs"
echo %MPEG2Source%> %avs_file_FAW%
rem echo audio = WavSource^("%~dpn1_FAW.wav"^)>> %avs_file_FAW%
echo audio = WavSource^("%~dp0testaac_FAW.wav"^)>> %avs_file_FAW%
echo.>> %avs_file_FAW%
echo AudioDub^(video, audio^)>> %avs_file_FAW%
echo.>> %avs_file_FAW%

echo Trim処理の把握。
echo ##### CMカット。本編等残す部分のみ範囲選択、フレーム単位で指定します。>> %avs_file_FAW%
rem type test.txt | findstr abc
type "%~1" | findstr "Trim(" >>%avs_file_FAW%

echo.>> %avs_file_FAW%



echo ####################
echo FAWをavsでTrim
echo ####################
rem avs2wav FAW⇒FAW_Trim
avs2wav "%~dp0%~n1_FAW.avs" "testaac_FAW_Trim.wav"



echo ####################
echo Trim済みFAWをaacにもどす
echo ####################
rem FAW_Trim.wav⇒FAW_kaijo.aac
rem "C:\DTV\up1009FakeAacWav Ver0.28+fawcl0.11\FAW.exe" "%~dpn1_FAW_Trim.wav" "%~dpn1_FAW_Trim_kaijo.aac"
rem "C:\DTV\up1009FakeAacWav Ver0.28+fawcl0.11\FAW.exe" "%~dpn1_FAW.wav" "%~dpn1_FAW_kaijo.aac"
rem %faw_path% "%~dpn1_FAW_Trim.wav" "%encode_path%\%~n1_FAW_Trim_kaijo.aac"
rem %faw_path% "%~n1_FAW_Trim.wav" "%encode_path%\%~n1_FAW_Trim_kaijo.aac"

%faw_path% "testaac_FAW_Trim.wav" "%~n1_FAW_Trim_kaijo.aac"
mp4box -mpeg4 -add "%~n1_FAW_Trim_kaijo.aac" -new "%~n1_FAW_Trim_kaijo.m4a"

del testaac.aac
del testaac_FAW.wav
del testaac_FAW_Trim.wav


endlocal
rem pause
exit /b

もくじに戻る











AmazonベストセラーTOP5
アニメ(BD/DVD)
ライトノベル
コミック
フィギュア・ドール
アニメゲームmusic

trackback


この記事にトラックバックする(FC2ブログユーザー)

-

管理人の承認後に表示されます

コメントの投稿

非公開コメント

承認待ちコメント

このコメントは管理者の承認待ちです

承認待ちコメント

このコメントは管理者の承認待ちです

承認待ちコメント

このコメントは管理者の承認待ちです
プロフィール

空に架かる橋

Author:空に架かる橋
FC2ブログへようこそ!
このブログについて(プライバシーポリシー)
Amazon.co.jpアソシエイト
こちらのブログはたまに各種実験会場となるため、デザイン変更等により表示が遅くなったり、文字が読みにくかったりする場合があります。 そのうちなおりますm(_ _)m
記事の内容に問題がある場合は、ただちに記事内容の利用をやめてください。

カウンター

現在の閲覧者数:

DTV研究
検索フォーム
カテゴリ
PT3 (3)
最新記事
最新コメント
最新トラックバック
月別アーカイブ
Amazonランキングテスト3.2
内容:

カテゴリー:

ノード:

アダルトを
選択しない 表示しない
※カテゴリー変更後に有効
RSSへのリンク
TGテストエリア
テストエリアb
AmazonベストセラーTOP5
アニメ(BD/DVD)
ライトノベル
コミック
フィギュア・ドール
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。