===========================================================
exoMaker - make a slide show using AviUtl

        by FUJIWARA Teruyoshi <tf@dsl.gr.jp>
===========================================================

このプログラムは，AviUtl を使ったスライドショー動画の作成を支援します．


1. 準備 ===================================================
a) 動作要件
Windows上で「AviUtl + 拡張編集」が動作する環境が必要です．

b) 設定ファイル
config.txt を編集．JSON 形式で記述．

2. 使い方 =================================================
a) 入力ファイルの編集
テキストファイルに下記のコマンド行を記述

-----------------------------------------------------------
DIR,<ディレクトリ>
title,<画像ファイル名>,<キャプション>
image,<画像ファイル名>,<画面切り替え効果>,<キャプション>
blank
-----------------------------------------------------------

DIRは画像が置かれているディレクトリを指示します．

titleはタイトルスライドを作成します．<画像ファイル>は空でもかまいません．

imageは一般の画像スライドを作成します．<画像ファイル>には jpg ファイルまたは mp4 ファイルを指定しますが，空でもかまいません．<画面切り替え効果>は整数または-1(効果なし)を指定します．画面切り替え効果の指定については，AviUtlの定義を参照すること．

blankは何も表示しないスライドを作成します．

なお，title, image に記述するキャプション中には改行文字(\n)を含めることができます．

b) コマンドの実行
exoMaker.bat <入力ファイル> <出力ファイル>

c) AviUtl へのインポート
上記で作られた出力ファイルを AviUtlの拡張編集タイムラインにドラッグ&ドロップ

3. TIPS ===================================================
a) 画像の一括サイズ変換(ImageMagick)

ImageMagickは画像をバッチ処理できる，優秀なコマンドラインツールです．

カレントディレクトリにある画像を一括で1280x720にサイズ変更し，その結果を out_dir に出力する場合には，下記のコマンドを実行します．

> mogrify -path <out_dir> -resize 1280x720 *.JPG


b) 画像をセピア調にする(ImageMagick)

> convert before.jpg -sepia-tone 45%  -modulate 10 after.jpg

-sepia-tone でセピア調にする
-modulate は明るさの変更．数字が大きいほうが明るい．


c) 動画のサイズ変更，一部切り出し(ffmpeg)

> ffmpeg -y -ss <start> -i sample.mp4 -ss 0 -t <length> -vf scale=1280:720 out.mp4

-vf scale=1280:720 ... 画像サイズを変更
-ss <sec> ... 動画から切り出したい部分の位置(秒)
-t <sec> ... 切り出す長さ

-ss は -i の前にひとつ(開始位置のシーク)，-i の後にひとつ(開始時刻からの切り取り)．

> ffmpeg -y -ss 0:00:1.5 -i sample.mp4 -ss 0 -t 3 -vf scale=1280:720 out.mp4


d) 動画からのサムネイル切り出し(ffmpeg)

スタート後1秒のところで，サイズが320x180の画像を切り出す．

> ffmpeg -i input.mp4 -ss 1 -vframes 1 -f image2 -s 320x180 output.jpg

4. 補助ツール ===================================================
1) 画像の標準化(normailze.py)
このツールは
- 縦長の画像に対し，余白を追加して縦横比16:9に調整
- AviUtlに入力する画像サイズ(1280x720)にリサイズ

使い方は下記．

a) 変換後の画像ファイルを置くフォルダを用意する
b) python normalize.py <入力フォルダ> <出力フォルダ>

2) 動画の標準化とクリッピング

指定の時間を取り出した上で，AviUtl の入力に適したサイズに変更する．

mp4slice.bat <入力ファイル> <開始時間> <抜き出す秒数> <出力ファイル>


3) GUIツール(exoMakerGUI.py)

未完成ですが使い方は下記．

a) ひとつのフォルダに jpg画像, mp4 動画を置く．これらはAviUtlが受け付けるサイズになっている必要がある．
b) 'python exoMakerGUI.py' を実行
c) 'File'メニューから'Open Folder'を選択．フォルダ選択ダイアログが開くので，画像・動画が置かれているフォルダを選択．
d) GUIでスライドの並べ替え，削除，キャプション付けを実施．
e) 最後に'File->Save Script'コマンドで，exoMaker の入力ファイルができる．

現在の制限:
title, blank に未対応
