動画作成メモ
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

動画作成メモ

2013-11-15 07:39

    このページは、以下の動画

    を作成した時の作業メモです。

    全体の流れとして、動画をキャプチャ→Avisynthで編集・連結、字幕付け→ツンデレんこでエンコード…という流れになります。

    まず動画1個あたりの尺を決めます。今回は対象の動画は57個。BGMは7分40秒あるので、動画1個につき7.5秒にすると7.5*57で7分8秒ぐらい。7.6秒にもできますが尺は0.5秒単位にしておいたほうが楽です。理由は後述。
    今回の動画は30フレーム/秒で制作するので7.5秒は225フレーム。動画と動画の境が分かるように5フレーム分真っ黒の動画を挟むことにしたので、220フレームの動画→5フレームの真っ黒動画…を57回繰り返すことになります。

    ビデオのキャプチャ
    それぞれ動画ウィンドウを開いてキャプチャしていくわけですが、動画ページの動画情報をたたんでおくと、動画表示部分がいつも同じ位置に来るようにできます。
    ここで注意するのはキャプチャ時のビデオの圧縮形式です。一度試しにキャプチャして、Avisynthで扱える圧縮形式であることを確認しておきます(無圧縮でキャプチャするのであれば関係ありません)。今回はV001.avi~V057.aviの57個の動画をキャプチャしました。


    編集・動画の結合

    Avisynthを使います。今回はこのようなファイルを作りました。#が含まれる行はコメントになります。

    #動画一個当たり7.5秒 225フレーム=動画220フレーム+黒5フレーム


    V001 = avisource("001.avi") V001 = Trim(V001,80,299)
    #V001という変数を作り001.aviを読み込む。 V001を80フレームから299フレームまでトリミングする。

    V002 = avisource("002.avi") V002 = Trim(V002,80,299)
    V003 = avisource("003.avi") V003 = Trim(V003,80,299)

    #※これがV057まで続きます。

    #暗黒動画5フレーム。動画の間に挟むためのもの
    V0 = avisource("xxx.avi")
    V0 = Trim(V0,0,4)

    #暗黒動画60フレーム(2秒)。一部220フレームに満たない動画があったので
    #その空白を埋めるためのもの
    V888 = avisource("xxx.avi")
    V888 = Trim(V888,1,60)

    #暗黒動画180フレーム(6秒)動画のラスト用
    V999 = avisource("xxx.avi")
    V999 = Trim(V999,1,180)

    #変数sを作りすべての動画を連結する
    s = V001 + V0 +V002 + V0 +V003 + V0 +V004 + V0 +V005 + V0 +V006 + V0 +V007 + V0 +V008 + V0 +V009 + V0 +V010 + V0 +V011 + V0 +V012 + V0 +V013 + V0 +V014 + V0 +V015 + V0 +V016 + V0 +V017 + V0 +V018 + V0 +V019 + V0 +V020 + V0 +V021 + V0 +V022 + V0 +V023 + V0 +V024 + V0 +V025 +V888+ V0 +V026 + V0 +V027 + V0 +V028 + V0 +V029 + V0 +V030 + V0 +V031 + V0 +V033 + V0 +V034 + V0 +V035 + V0 +V036 + V0 +V037 + V0 +V038 + V0 +V039 + V0 +V040 + V0 +V041 + V0 +V042 + V0 +V043 + V0 +V044 + V0 +V045 + V0 +V046 + V0 +V047 + V0 +V048 + V0 +V049 + V0 +V050 + V0 +V051 + V0 +V052 + V0 +V053 + V0 +V054 + V0 +V055 + V0 +V056 + V0 +V057 + V0 +V058 + V0 +V999


    x = WAVSource ("xyz.wav")
    #音声ファイルを読み込む。

    AudioDub (s,x)
    #動画と音声を組み合わせる。

    LoadPlugin("VSFilter.dll")
    #VSFilterの読み込み※これは字幕ファイルを読み込むために必要です。

    TextSub("131114.ass")
    #字幕ファイルの読み込み

    FadeOut2(180)
    #動画のフェードアウト6秒

    V001 = avisource("001.avi") V001 = Trim(V001,80,299)”を1から57まで延々と書いていくのはめんどくさいので、今回は
    http://www.quel.jp/tools/renban/
    を使いました。入力の仕方によっては¥記号が含まれてしまうのですが、テキストエディタの置換機能で消せるので今回は問題なしです。

    「キャプチャした動画のどの部分を使うか」は”V003 = Trim(V003,80,299)”の「80」や「299」の部分を変えることで指定します。

    注意しなければならないのはフレーム数指定です。"V001 = Trim(V001,80,299)"という動画を200フレーム分切り出す箇所がありますが、これを例えば
    "V001 = Trim(V001,80,300)"にしてしまうと80から300までの221フレームを切り出すことになり、字幕を付ける時にタイミングが合わなくなります。

    字幕

    次は字幕ファイルを作ります。”Aegisub”というソフトで字幕指定ができるのですが、字幕ファイル自体はテキストエディタで編集できるので、過去に一度作ったファイルをそのまま使い回しています。(ファイルの中に"しねきゃぷしょん"というフォント名がありますが今回は使っていません)

    [Script Info]
    ; Script generated by Aegisub 2.1.8
    ; http://www.aegisub.org/
    Title: Default Aegisub file
    ScriptType: v4.00+
    WrapStyle: 0
    PlayResX: 640
    PlayResY: 480
    ScaledBorderAndShadow: yes
    Video Aspect Ratio: 0
    Video Zoom: 8
    Video Position: 272
    Last Style Storage: Default
    Video File: ?dummy:30.000000:3150:512:384:5:64:107:

    [V4+ Styles]
    Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
    Style: oreore,しねきゃぷしょん,28,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,10,10,25,128
    Style: Default,Arial,28,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

    [Events]
    Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
    Dialogue: 0,0:00:00.00,0:00:07.00,oreore,,0000,0000,0000,,sm1058796 ラクガキ王国で初音ミクを作ってみた。
    Dialogue: 0,0:00:07.50,0:00:14.50,oreore,,0000,0000,0000,,sm1062419 初音ミク3D その1  3Dミクができるまで

    ファイルの字幕テキストを指定する部分は2個分しか載せていません。後は同じ書式の行が延々続きます。

    最後の行の”7.50”は7.5秒を意味します。フレーム数で指定できないっぽいです。(私が知らないだけかもしれませんが)上の文章で動画1個の尺を0.5秒単位にしたのはこの時間指定を楽にするためです。字幕の文章ですが、文の中に空白を入れるとそれを改行可能ポイントと認識して、一行が長すぎて動画で表示された時にはみ出す場合は改行してくれます。

    最後にAvisynthのファイル(*.avs)をメディアプレイヤーにドラッグしてちゃんと再生されることを確認してから、avsファイルをツンデレんこにドラッグして出来上がりです。

    追記


    では、字幕を少し変えました。例えば以下の行では

    Dialogue: 0,0:00:42.00,0:00:48.00,oreore,,0000,0000,0000,,{\fad(300,300)}sm2085588 2008/01/20 \N{\fs(23)}【初音ミク】「流星」3DPVの メイキングのような物(修正版)

    {\fad(300,300)}…字幕のフェードイン・フェードアウト(時間は300ミリ秒)
    \N…強制改行
    {\fs(23)}…フォントサイズを23に変更

    を加えています。これで文字数が多い字幕を少ない改行で画面内に収めることができます。

    参考:http://www20.atwiki.jp/ass_advancedssa/


    その他どうでもいいAvisynthメモ
    Avisynthは32bit版で提供されているアプリケーションで、64bitOSでも動きます。
    ただ、*.avsファイルの再生にも32bitのプレイヤーを使う必要があるようです。
    VirtualDubの64bit版だと”AVI Import Filter error: (Unknown) (80040154)”と出てavsファイルを再生できません。32bit版なら再生できます。




    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。