「カスタムサムネイル」の編集履歴(バックアップ)一覧はこちら
「カスタムサムネイル」(2012/02/07 (火) 12:28:09) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*サムネイル作成処理を自由にカスタマイズできます
・WhiteBrowser.exeと同じフォルダにavi.batのような"拡張子.bat"が存在すると、そのバッチファイルを使ってその拡張子のファイルのサムネイルを作成します。
・WhiteBrowser.exeと同じフォルダに"all.bat"という名前のバッチファイルが存在すると、そのバッチファイルを使ってすべての拡張子のファイルのサムネイルを作成します。
***入力
バッチファイルには次の引数が渡されます。
- %1 : ファイルのパス
- %2 : 出力jpgのパス
- %3 : サムネイルの必要枚数
- %4 : "random" || "normal"
***出力
例えば%2のパスが "C:\avi_temp.jpg" で、%3の枚数が1だったら、
C:\avi_temp.jpg
を出力してbatを終了してください。
例えば%2のパスが "C:\avi_temp.jpg" で、%3の枚数が4だったら、
C:\avi_temp_0.jpg
C:\avi_temp_1.jpg
C:\avi_temp_2.jpg
C:\avi_temp_3.jpg
の4枚のjpg画像を出力してbatを終了してください。
[[wbtc.exe]]を使って出力画像に時間情報を設定すれば、
カスタムサムネイルで生成したサムネイルでも[[シーンジャンプ]]を使用可能になります。
例:wbtc.exe -s 0 200 avi_temp_0.jpg
※ bat内でpauseを使用しないでください。
※ リサイズは内部で自動的に行われます。
※ 出力した画像は利用後に自動的削除されます。
***例:zip.bat
if "%4" == "normal" actor.exe -c %3 -d %2 %1
if "%4" == "random" actor.exe -r -c %3 -d %2 %1
//適当なんでいらないと思ったら削除してくれて構いません。
***例:all.bat (mplayer.exe mediainfo.exe mediainfo.dllが必要です。コメント行もコピーしてください。)
&nowiki(){@echo off}
&nowiki(){set path=%~dp0;%path%}
&nowiki(){cd /d %~dp2}
&nowiki(){for /f "usebackq delims=." %%A in (`mediainfo.exe --Inform^="General;%%Duration%%." "%~s1"`) do set duration=%%A}
&nowiki(){if not defined duration (}
&nowiki(){for /f "usebackq tokens=2 delims==." %%A in (`mplayer -vo null -ao null -frames 0 -identify "%~s1" ^| find "ID_LENGTH"`) do set duration=%%A000}
&nowiki(){)}
&nowiki(){set duration=%duration:~0,-3%}
&nowiki(){echo Total %duration% Sec>timestamp.txt}
&nowiki(){for %%B in (wmv) do if /i "%~x1" == ".%%B" (call :xxx %1)}
&nowiki(){set /a endcount=%3-1}
&nowiki(){for /l %%C in (0,1,%endcount%) do call :yyy %1 %2 %3 %4 %%C}
&nowiki(){if defined ratio (echo stm_ON width_%width% height_%height% aspectratio_%ratio%>>timestamp.txt)}
&nowiki(){del timestamp.txt}
&nowiki(){goto :eof}
&nowiki(){:xxx}
&nowiki(){for /f "usebackq tokens=1,2 delims=." %%D in (`mediainfo.exe --Inform^="Video;%%DisplayAspectRatio%%." "%~s1"`) do set ratio=%%D%%E}
&nowiki(){for /f "usebackq delims=." %%F in (`mediainfo.exe --Inform^="Video;%%Height%%." "%~s1"`) do set height=%%F}
&nowiki(){set /a width=%height%*%ratio%/1000}
&nowiki(){goto :eof}
&nowiki(){:yyy}
&nowiki(){if "%4" == "normal" set /a ss=%duration%*(%5*2+1)/(%3*2+2)}
&nowiki(){if "%4" == "random" set /a ss=%duration%*%random%/32767}
&nowiki(){if defined ratio (}
&nowiki(){stm -w %width% -h %height% -s %ss% -o "%~dp2\00000001.jpg" %1}
&nowiki(){) else (}
&nowiki(){mplayer -ss %ss% -frames 1 -vf framestep=I,scale=-2:-1 -vo jpeg -ao null %1}
&nowiki(){)}
&nowiki(){if %3 gtr 1 (set count=_%5)}
&nowiki(){ren 00000001.jpg %~n2%count%.jpg}
&nowiki(){wbtc -s 0 %ss% %~n2%count%.jpg}
&nowiki(){echo Thumb_%5_%ss%>>timestamp.txt}
&nowiki(){goto :eof}
Directshowを使ってサムネイルを作成したい拡張子がある場合は10行目のカッコ内に半角スペースで区切って書き加えてください。
例) for %%B in (wmv m2ts vro) do if...
14行目「del timestamp.txt」を消せばtmpフォルダにログが残るようになります。
エラーが出る場合は29行目の「-vf framestep=I,scale=-2:-1」を「-vf scale=-2:-1」に置き換えてみてください。
ログの再生時間が正常でない場合は4行目と6行目を入れ換えてみてください。
最新版を使用してみてください。
※ mplayer.exe
ttp://www.mplayerhq.hu
download -> Binaries -> MPlayer Windows builds -> p4
※ mediainfo.exe mediainfo.dll
ttp://mediainfo.sourceforge.net/ja/Download
Windows -> 32bit CLI
***例:iso.bat (mplayer.exeが必要です。)
&nowiki(){@echo off}
&nowiki(){set path=%~dp0;%path%}
&nowiki(){cd /d %~dp2}
&nowiki(){mplayer -vo null -ao null -frames 0 -identify dvd:// -dvd-device %1>iso.txt}
&nowiki(){for /f "usebackq tokens=2 delims==" %%A in (`find "ID_DVD_TITLES" iso.txt`) do set titles=%%A}
&nowiki(){set duration=0}
&nowiki(){for /l %%B in (1,1,%titles%) do call :xxx %%B}
&nowiki(){echo Total %titles% titles %duration% Sec>timestamp.txt}
&nowiki(){set /a endcount=%3-1}
&nowiki(){for /l %%C in (0,1,%endcount%) do call :yyy1 %1 %2 %3 %4 %%C}
&nowiki(){del timestamp.txt&del iso.txt}
&nowiki(){goto :eof}
&nowiki(){:xxx}
&nowiki(){for /f "usebackq tokens=2 delims==." %%D in (`find "ID_DVD_TITLE_%1_LENGTH" iso.txt`) do set length_%1=%%D}
&nowiki(){set /a duration=%duration%+length_%1}
&nowiki(){goto :eof}
&nowiki(){:yyy1}
&nowiki(){if "%4" == "normal" set /a ss=%duration%*(%5*2+1)/(%3*2+2)}
&nowiki(){if "%4" == "random" set /a ss=%duration%*%random%/32767}
&nowiki(){if %3 gtr 1 (set count=_%5)}
&nowiki(){for /l %%E in (1,1,%titles%) do if not exist %~n2%count%.jpg (call :yyy2 %1 %2 %3 %4 %5 %%E)}
&nowiki(){goto :eof}
&nowiki(){:yyy2}
&nowiki(){set /a length=length_%6}
&nowiki(){if %ss% gtr %length% (}
&nowiki(){set /a ss=%ss%-%length%}
&nowiki(){) else (}
&nowiki(){mplayer -ss %ss% -frames 1 -vf framestep=I,scale=-2:-1 -vo jpeg -ao null dvd://%6 -dvd-device %1}
&nowiki(){ren 00000001.jpg %~n2%count%.jpg}
&nowiki(){wbtc -s 0 %ss% %~n2%count%.jpg}
&nowiki(){echo Thumb_%5_Title%6_%ss%>>timestamp.txt}
&nowiki(){)}
&nowiki(){goto :eof}
11行目「del timestamp.txt&del iso.txt」を消せばtmpフォルダにログが残るようになります。
-----
*サムネイル作成処理を自由にカスタマイズできます
・WhiteBrowser.exeと同じフォルダにavi.batのような"拡張子.bat"が存在すると、そのバッチファイルを使ってその拡張子のファイルのサムネイルを作成します。
・WhiteBrowser.exeと同じフォルダに"all.bat"という名前のバッチファイルが存在すると、そのバッチファイルを使ってすべての拡張子のファイルのサムネイルを作成します。
***入力
バッチファイルには次の引数が渡されます。
- %1 : ファイルのパス
- %2 : 出力jpgのパス
- %3 : サムネイルの必要枚数
- %4 : "random" || "normal"
***出力
例えば%2のパスが "C:\avi_temp.jpg" で、%3の枚数が1だったら、
C:\avi_temp.jpg
を出力してbatを終了してください。
例えば%2のパスが "C:\avi_temp.jpg" で、%3の枚数が4だったら、
C:\avi_temp_0.jpg
C:\avi_temp_1.jpg
C:\avi_temp_2.jpg
C:\avi_temp_3.jpg
の4枚のjpg画像を出力してbatを終了してください。
[[wbtc.exe]]を使って出力画像に時間情報を設定すれば、
カスタムサムネイルで生成したサムネイルでも[[シーンジャンプ]]を使用可能になります。
例:wbtc.exe -s 0 200 avi_temp_0.jpg
※ bat内でpauseを使用しないでください。
※ リサイズは内部で自動的に行われます。
※ 出力した画像は利用後に自動的削除されます。
***例:zip.bat
if "%4" == "normal" actor.exe -c %3 -d %2 %1
if "%4" == "random" actor.exe -r -c %3 -d %2 %1
//適当なんでいらないと思ったら削除してくれて構いません。
***例:all.bat (mplayer.exe mediainfo.exe mediainfo.dllが必要です。コメント行もコピーしてください。保存時に毎行末の空白を削除してください。)
&nowiki(){@echo off}
&nowiki(){set path=%~dp0;%path%}
&nowiki(){cd /d %~dp2}
&nowiki(){for /f "usebackq delims=." %%A in (`mediainfo.exe --Inform^="General;%%Duration%%." "%~s1"`) do set duration=%%A}
&nowiki(){if not defined duration (}
&nowiki(){for /f "usebackq tokens=2 delims==." %%A in (`mplayer -vo null -ao null -frames 0 -identify "%~s1" ^| find "ID_LENGTH"`) do set duration=%%A000}
&nowiki(){)}
&nowiki(){set duration=%duration:~0,-3%}
&nowiki(){echo Total %duration% Sec>timestamp.txt}
&nowiki(){for %%B in (wmv) do if /i "%~x1" == ".%%B" (call :xxx %1)}
&nowiki(){set /a endcount=%3-1}
&nowiki(){for /l %%C in (0,1,%endcount%) do call :yyy %1 %2 %3 %4 %%C}
&nowiki(){if defined ratio (echo stm_ON width_%width% height_%height% aspectratio_%ratio%>>timestamp.txt)}
&nowiki(){del timestamp.txt}
&nowiki(){goto :eof}
&nowiki(){:xxx}
&nowiki(){for /f "usebackq tokens=1,2 delims=." %%D in (`mediainfo.exe --Inform^="Video;%%DisplayAspectRatio%%." "%~s1"`) do set ratio=%%D%%E}
&nowiki(){for /f "usebackq delims=." %%F in (`mediainfo.exe --Inform^="Video;%%Height%%." "%~s1"`) do set height=%%F}
&nowiki(){set /a width=%height%*%ratio%/1000}
&nowiki(){goto :eof}
&nowiki(){:yyy}
&nowiki(){if "%4" == "normal" set /a ss=%duration%*(%5*2+1)/(%3*2+2)}
&nowiki(){if "%4" == "random" set /a ss=%duration%*%random%/32767}
&nowiki(){if defined ratio (}
&nowiki(){stm -w %width% -h %height% -s %ss% -o "%~dp2\00000001.jpg" %1}
&nowiki(){) else (}
&nowiki(){mplayer -ss %ss% -frames 1 -vf framestep=I,scale=-2:-1 -vo jpeg -ao null %1}
&nowiki(){)}
&nowiki(){if %3 gtr 1 (set count=_%5)}
&nowiki(){ren 00000001.jpg %~n2%count%.jpg}
&nowiki(){wbtc -s 0 %ss% %~n2%count%.jpg}
&nowiki(){echo Thumb_%5_%ss%>>timestamp.txt}
&nowiki(){goto :eof}
Directshowを使ってサムネイルを作成したい拡張子がある場合は10行目のカッコ内に半角スペースで区切って書き加えてください。
例) for %%B in (wmv m2ts vro) do if...
14行目「del timestamp.txt」を消せばtmpフォルダにログが残るようになります。
エラーが出る場合は29行目の「-vf framestep=I,scale=-2:-1」を「-vf scale=-2:-1」に置き換えてみてください。
ログの再生時間が正常でない場合は4行目と6行目を入れ換えてみてください。
最新版を使用してみてください。
※ mplayer.exe
ttp://www.mplayerhq.hu
download -> Binaries -> MPlayer Windows builds -> p4
※ mediainfo.exe mediainfo.dll
ttp://mediainfo.sourceforge.net/ja/Download
Windows -> 32bit CLI
***例:iso.bat (mplayer.exeが必要です。コメント行もコピーしてください。保存時に毎行末の空白を削除してください。)
&nowiki(){@echo off}
&nowiki(){set path=%~dp0;%path%}
&nowiki(){cd /d %~dp2}
&nowiki(){mplayer -vo null -ao null -frames 0 -identify dvd:// -dvd-device %1>iso.txt}
&nowiki(){for /f "usebackq tokens=2 delims==" %%A in (`find "ID_DVD_TITLES" iso.txt`) do set titles=%%A}
&nowiki(){set duration=0}
&nowiki(){for /l %%B in (1,1,%titles%) do call :xxx %%B}
&nowiki(){echo Total %titles% titles %duration% Sec>timestamp.txt}
&nowiki(){set /a endcount=%3-1}
&nowiki(){for /l %%C in (0,1,%endcount%) do call :yyy1 %1 %2 %3 %4 %%C}
&nowiki(){del timestamp.txt&del iso.txt}
&nowiki(){goto :eof}
&nowiki(){:xxx}
&nowiki(){for /f "usebackq tokens=2 delims==." %%D in (`find "ID_DVD_TITLE_%1_LENGTH" iso.txt`) do set length_%1=%%D}
&nowiki(){set /a duration=%duration%+length_%1}
&nowiki(){goto :eof}
&nowiki(){:yyy1}
&nowiki(){if "%4" == "normal" set /a ss=%duration%*(%5*2+1)/(%3*2+2)}
&nowiki(){if "%4" == "random" set /a ss=%duration%*%random%/32767}
&nowiki(){if %3 gtr 1 (set count=_%5)}
&nowiki(){for /l %%E in (1,1,%titles%) do if not exist %~n2%count%.jpg (call :yyy2 %1 %2 %3 %4 %5 %%E)}
&nowiki(){goto :eof}
&nowiki(){:yyy2}
&nowiki(){set /a length=length_%6}
&nowiki(){if %ss% gtr %length% (}
&nowiki(){set /a ss=%ss%-%length%}
&nowiki(){) else (}
&nowiki(){mplayer -ss %ss% -frames 1 -vf framestep=I,scale=-2:-1 -vo jpeg -ao null dvd://%6 -dvd-device %1}
&nowiki(){ren 00000001.jpg %~n2%count%.jpg}
&nowiki(){wbtc -s 0 %ss% %~n2%count%.jpg}
&nowiki(){echo Thumb_%5_Title%6_%ss%>>timestamp.txt}
&nowiki(){)}
&nowiki(){goto :eof}
11行目「del timestamp.txt&del iso.txt」を消せばtmpフォルダにログが残るようになります。
-----