ラベル 動画 の投稿を表示しています。 すべての投稿を表示
ラベル 動画 の投稿を表示しています。 すべての投稿を表示

2010年12月23日木曜日

早回し再生動画を作成する

以前の記事「撮影した動画の高度な編集を試す」の続編です。

その後、ビデオのデータから日時を取り出すことを諦めて、手動で字幕に日時を埋め込むことに方針を変えました。その時のメモです。


【目的】
MOVファイルから以下のようなWMVファイルを作成する。

  • 撮影データに日時を入れる。
  • 撮影データの早回し再生動画(360倍速)に変換。
  • オープニング画面を入れる。

【処理手順】

  1. MOD(ビクター製ビデオの保存形式)をmp2に拡張子書き換え(フォーマットはmp2と同じ)。
  2. DGIndex.exe」でd2vファイルに変換。
  3.  撮影データ、水位などの情報、早回し再生、タイトルなどの処理を記述した、AviSynthスクリプト(*.avs)を作成する (変換した動画の確認には、「Area61」にaviファイルを読み込んで行う)。時刻テロップは、オリジナルファイルの更新日時とFPSなどから計算したタイミングに、適切な時刻を表示するスクリプトをエクセルで作成して表示。
  4. 上記avsファイルを「DVD Flick」で読み込み、DVD形式に変換する。ただし、AviSynthにはmpeg2デコードプラグイン(DGDecode.dll)を入れておく必要がある。
  5. 作成したVOBファイル(DVD形式のデータ)の拡張子をmpgに書き換え。
  6. Windows Media エンコーダ」でmpegからwmvへ変換する。

2010年11月12日金曜日

撮影した動画の高度な編集を試す

業務で、ビデオカメラで定点撮影したデータ(*.MOD)を加工する必要がありまして、いろいろ試行錯誤の末の方法をメモっておきます。
元動画データはビクターのビデオカメラの保存形式であるMODファイルですが、内容はmpegと同じだそうです。データサイズは約4GBでした。

【まとめ】
<目的>

  • 撮影日時を入れたい
  • できれば、撮影データの早回し再生動画を作成したい

<作成手順>

  1. MOD(ビクター製ビデオの保存形式)をmp2に拡張子書き換え(フォーマットはmp2と同じ)、
  2. DGIndex.exeでd2vファイルに変換し、 
  3. これをmpeg2デコードプラグイン(DGDecode.dll)を含むAviSynthスクリプトで変換する。 
  4. AviSynthスクリプトファイルであるavsファイルをDVD Flickで読みDVDを作成。
  5. 作成したVOBファイル(DVD形式のデータ)の拡張子をmpgやmp2にすると、そのままmpegとして扱える。 

<結果> 

  • 10倍速AviSynthスクリプトを作成して、以上の手順での変換には成功。 ただし、さらに時刻の挿入AviSynthスクリプトで変換を試みたが、うまくいかなかった。

<参考にしたサイト>

MODファイル=mpg、しかし「動画'タイムスタンプ情報が含まれている小さいMOIをファイルと一緒に伴われる。」らしい
http://bit.ly/hkt9i1A0v
AviSynth 
http://www.avisynth.info
d2vファイルに変換
http://bit.ly/hkt98bvvG
d2vを使ってmpeg2デコードプラグイン(DGDecode.dll)を含むAviSynthスクリプトで変換
http://bit.ly/hktdyzPRF

このサイトが大きなヒントになりました。
http://bit.ly/hktcvccds

http://bit.ly/hktb75ifu
上記サイトにあるスクリプトを参考に、日付を入れようとしたけれど、「Frame# too high」という文字しか挿入されない。そこで、mpegを分割できる編集ソフトMovicaをインストール。
http://bit.ly/hkt92XyzB
結局解消されず。

再生速度を変更する関数とスクリプト
http://bit.ly/hktahAkq2
上記をちょっとだけ書き換えた10倍速のスクリプト
-----------------------------------

#DGDecode.dllを明示的に使う


LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
# ソース


clip_org =MPEG2Source("C:\tmp\MOVIE\MOV006.d2v")
# 再生速度を 10 倍に変更。フレームレートは変更前のまま。 


clip_new = clip_org.ChangePlaySpeed(10.0)


#そのままビューアに渡す


clip_new
return last


#以下、再生速度を変更する関数
#http://bit.ly/hktahAkq2 function ChangePlaySpeed(clip clip, float speed, float "fps", bool "pitch") {


fps = default(fps, -1.0)
pitch = default(pitch, false)


clip =
\ ((pitch) \ ? clip.TimeStretch(rate=100.0*speed) \ : clip.TimeStretch(tempo=100.0*speed) \ ) rate = clip.Framerate() clip = \ ((0.0 == fps) \ ? clip.AssumeFPS(rate*speed) \ :(fps < 0.0) \ ? clip.AssumeFPS(rate*speed).ChangeFPS(rate) \ : clip.AssumeFPS(rate*speed).ChangeFPS(fps) \ ) return clip }
-----------------------------------