Closed oov closed 6 years ago
obj.getaudio
を使わずに自前で処理してパフォーマンスも向上したので第一関門はクリア。
日常的な用途としての落とし所を考えると多目的スライダー以外はスライダーを使わない可能性が高いので、結構キレイにすべてを統合できるかもしれない。
<?s=[==[
字幕本文
]==];o={
-- 口パク準備
ls_pos = 0.00 ,-- 再生位置
ls_spd = 100.0 ,-- 再生速度
ls_mgl = 0 ,-- 開始マージン
ls_mgr = 0 ,-- 終了マージン
ls_locut = 0 ,-- ローカット
ls_hicut = 0 ,-- ハイカット
ls_thrsh = 0 ,-- しきい値
ls_sense = 0 ,-- 感度
ls = "音声ファイルへのパス",
-- 字幕準備
st_mgl = 0 ,-- 開始マージン
st_mgr = 0 ,-- 終了マージン
st = s,
-- 多目的スライダー
sl_mgl = 0 ,-- 開始マージン
sl_mgr = 0 ,-- 終了マージン
};require("PSDToolKit").prep:set(o,obj,true);o=nil?>
これで大体550バイトぐらい。 字幕とWaveファイルへのパスで400バイト前後しか使えないのは若干不安もある。 口パク準備のパラメーターとファイルへのパスをアニメーション効果に追い出した方が文字数が稼げそう。
口パク準備に再生位置と再生速度を追加すると話が複雑になるので一旦取りやめ。 そのおかげでパラメータ一覧は単純な状態に整理でき、内部構造にも目処がついたので実装に進められる段階になった。
マージンを手作業で変更するのはあまり現実的ではなさそうなので、コメント類などは削除。 見た目はほぼ字幕準備と同じになってきた。
音声と合わせてレイヤーを4本占拠しているのを、最終的には音声+準備の2本まで減らしたい。
超えるべきハードルがいくつかある。
obj.getaudio
依存をやめるFFT が必要になるので自前で用意したもののパフォーマンスが悪いようなら採用できない
obj.getaudio
が呼ばれなかったらロックは開放していいはずなのでそういう実装にするavi_file_open
を使うマージン系は一度設定したら細かく変えない前提でいくと、スライダーじゃなくてもいいかも。
多目的スライダーだけガッツリ引き伸ばして複数の音声を跨ぐ使い方ができなくなるので、個人的にはこれが一番問題。