カスタムサムネイル


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

サムネイル作成処理を自由にカスタマイズできます


  • 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が必要です。コメント行もコピーしてください。保存時に毎行末の空白を削除してください。)

@echo off
set path=%~dp0;%path%
cd /d %~dp2
for /f "usebackq delims=." %%A in (`mediainfo.exe --Inform^="General;%%Duration%%." "%~s1"`) do set duration=%%A
if not defined duration (
for /f "usebackq tokens=2 delims==." %%A in (`mplayer -vo null -ao null -frames 0 -identify "%~s1" ^| find "ID_LENGTH"`) do set duration=%%A000
)
set duration=%duration:~0,-3%
echo Total %duration% Sec>timestamp.txt
for %%B in (wmv) do if /i "%~x1" == ".%%B" (call :xxx %1)
set /a endcount=%3-1
for /l %%C in (0,1,%endcount%) do call :yyy %1 %2 %3 %4 %%C
if defined ratio (echo stm_ON width_%width% height_%height% aspectratio_%ratio%>>timestamp.txt)
del timestamp.txt
goto :eof

:xxx
for /f "usebackq tokens=1,2 delims=." %%D in (`mediainfo.exe --Inform^="Video;%%DisplayAspectRatio%%." "%~s1"`) do set ratio=%%D%%E
for /f "usebackq delims=." %%F in (`mediainfo.exe --Inform^="Video;%%Height%%." "%~s1"`) do set height=%%F
set /a width=%height%*%ratio%/1000
goto :eof

:yyy
if "%4" == "normal" set /a ss=%duration%*(%5*2+1)/(%3*2+2)
if "%4" == "random" set /a ss=%duration%*%random%/32767
if defined ratio (
stm -w %width% -h %height% -s %ss% -o "%~dp2\00000001.jpg" %1
) else (
mplayer -ss %ss% -frames 1 -vf framestep=I,scale=-2:-1 -vo jpeg -ao null %1
)
if %3 gtr 1 (set count=_%5)
ren 00000001.jpg %~n2%count%.jpg
wbtc -s 0 %ss% %~n2%count%.jpg
echo Thumb_%5_%ss%>>timestamp.txt
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が必要です。コメント行もコピーしてください。保存時に毎行末の空白を削除してください。)

@echo off
set path=%~dp0;%path%
cd /d %~dp2
mplayer -vo null -ao null -frames 0 -identify dvd:// -dvd-device %1>iso.txt
for /f "usebackq tokens=2 delims==" %%A in (`find "ID_DVD_TITLES" iso.txt`) do set titles=%%A
set duration=0
for /l %%B in (1,1,%titles%) do call :xxx %%B
echo Total %titles% titles %duration% Sec>timestamp.txt
set /a endcount=%3-1
for /l %%C in (0,1,%endcount%) do call :yyy1 %1 %2 %3 %4 %%C
del timestamp.txt&del iso.txt
goto :eof

:xxx
for /f "usebackq tokens=2 delims==." %%D in (`find "ID_DVD_TITLE_%1_LENGTH" iso.txt`) do set length_%1=%%D
set /a duration=%duration%+length_%1
goto :eof

:yyy1
if "%4" == "normal" set /a ss=%duration%*(%5*2+1)/(%3*2+2)
if "%4" == "random" set /a ss=%duration%*%random%/32767
if %3 gtr 1 (set count=_%5)
for /l %%E in (1,1,%titles%) do if not exist %~n2%count%.jpg (call :yyy2 %1 %2 %3 %4 %5 %%E)
goto :eof

:yyy2
set /a length=length_%6
if %ss% gtr %length% (
set /a ss=%ss%-%length%
) else (
mplayer -ss %ss% -frames 1 -vf framestep=I,scale=-2:-1 -vo jpeg -ao null dvd://%6 -dvd-device %1
ren 00000001.jpg %~n2%count%.jpg
wbtc -s 0 %ss% %~n2%count%.jpg
echo Thumb_%5_Title%6_%ss%>>timestamp.txt
)
goto :eof


11行目「del timestamp.txt&del iso.txt」を消せばtmpフォルダにログが残るようになります。