2009年07月01日

デジカメ動画の30p活用法

まず最初に謝辞。
ネットでK-7の生ファイルを配布してくれている方に感謝です。
おかげで非常に有意義な実験をさせていただいております。
また、googleにて「avisynth 30p 60i」と検索したところ、2chの情報にたどり着きました。
非常に有効なavisynth活用法の公開、ありがとうございます。


さて、デジカメ動画の活用。
通常ビデオカメラの世界(DVDやAVCHDやBDの規格に沿っている)では、59.94i(29.97i、60iとも言うからややこしい)、23.976p(いわゆる24p)等が主流であり、これに対し、デジカメ動画はプログレッシブの30fps方式を採用していることが多い。
これがけっこう問題で、ディスク化する際に悩んでしまったり、またそのままでは60iと比較すると動きがなめらかに見えずにカクついたりと、悩ましいのである。
これを解決する糸口が見えてきた。

結論から言うと

フルHDの30pは本来AVCHDやBDの規格外だが、H264/AVCの.m2ts入りにすればBW730で再生できる
→ただし、動きは30fpsなので若干カクつく

30pから動きを補間した中間コマを作成して60pにし、そこからインターレース化して60iにすることができる。
→これは感動モノ。ちゃんと60コマのなめらかな動きになってる!
つまり、これでビデオカメラ等の60i映像とのマルチカム編集も可能となる。
※ただし、まだ1つのファイルでしか試していないので、動きの速い映像とかだとうまくいくかどうか・・・より多くの検証が必要。


avisynthを使って、30pから60iに変換する方法を書いておく。
ただし、よくわからないことも多く、間違いもあるとは思う・・・

《必要ソフト・コーデック》
*avisynth&avsp
*aviutl・・・フロントエンド用に
*ffdshow・・・なくてもいいけど、一応
*avisynthのプラグイン「MSU_FRC」・・・コマ補間

《今回の素材》
MotionJPEGのavi(K-7素材)
※mov入りのMotionJPEGや、mp4なんかは、avisynthでの読み込み方が違ってくるので、適当に読み替えること。

《手順》

1.ffdshowの「VFWの設定」から、コーデックの「MJPEG」をibavcodecにする
(デフォルトでは無効になってるのだけど、これを有効にしたことで何か不具合が起きるのだろうか・・・VFWで読むとRGB展開されるとかなんとか読んだことがある気がするのだけど、一応avspで見てもYV12になってる・・・よくわからん)

2.avspを利用して確認しながらavsスクリプトを書く

AVISource("ファイルパス名")
#→1の段階を踏まない場合、AVISourceは使えない。DirectShowSourceを利用することになる。
ConvertToYV12(interlaced=false)
MSU_FRC(2,"slow")

#→フレームレートを2倍に増やす。slowはbest Quality設定。他にmedium、fastがある。
SeparateFields()
SelectEvery(4,1,2) #or SelectEvery(4,0,3)

#→私の認識では、4,1,2はボトムフィールドファースト、4,0,3はトップフィールドファーストの認識だったのだが、やってみたら違った。
エンコードのたびにちゃんとどちらが正しいのか確認してから行なう方が良い。
Weave()
AssumeTFF() #→私の環境ではTFFの方が都合が良いので・・・まぁ人によりけりでしょう。
return last

※ただし、MSU_FRCは、解像度が16の倍数である必要がある。ので例えば1920×1080なんかはそのままではアウト。
ちなみにK-7の1536×1024と1280×720はどちらも16の倍数なのでそのままでOKでした。
強制的に16の倍数にしたいなら、AddBorderで余分を追加しておいて、後でCropする方法もある。

3.AviutlでTFF設定で上記2のavsを60fps読み込みしてみて、コマ送りしてフィールドオーダーが正しいか確認する。
→ここではTFFで正しかったとする。

4.Aviutlで2のavsを普通に読み込み直す。
※この際、もし他のビデオカメラの29.97i素材と混在編集させるつもりなら、この時点でfps変換しておいた方がいいでしょう。
この場合は、読み込みダイアログにて「fps調整」にチェックを入れ、29.97fpsをリスト選択する。
→音声がずれる場合は、WavTimeControl等でなんとかする。

5.avi出力設定は
*映像:任意のコーデック
*音声:PCM推奨。32KHzになっているので、48に変更する。

これで、30fps(4で特別に設定した場合は29.970fps)のインターレースのaviができあがる。

MSU_FRCには大きな可能性を感じるダッシュ(走り出すさま)
これはすごいかも・・・ひらめき
もうちょっといろいろなデータで試してみたい。
手持ちのTZ7も実質は29.97pなので、これでちょっといじってみようかな。
posted by そよはっは at 02:42| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。