- PR -

C# 複数のbitmapオブジェクトから動画ファイルを作成したい

投稿者投稿内容
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2005-02-10 15:11
>(1)無劣化であること。
>(2)データ構造が単純で1ピクセルごとの輝度値が配列に取り出せること。
>(b) 輝度配列byte[640,240,3,60] (幅,高さ,RGB,フィールド番号)

これでいいのなら、無理にAVIにしなくても、Raw形式(生データ)で
保存しておけばいいのではないでしょうか?
(配列の内容を全部そのまま書き出してファイルにするだけ)

あとは、DirectShowとか使うことになるのではないかと思いますが、
こちらは難しいのでよくわかりません。
xxななおxx
ベテラン
会議室デビュー日: 2005/01/18
投稿数: 61
お住まい・勤務地: 東京(練馬)
投稿日時: 2005-02-10 16:28
仕様からして最初からMPEGはありえなかったことになりますね。。

Video for Windows APIを見て、
AVIを作るのにどんなパラメータが必要か調べたのでしょうか?
そんなに簡単に手でガリこめるとは私は思えませんが??


”なか-chanさん”の意見とかぶるかもしれませんが・・。2つ簡単な方法。

(1)BITAMPのビットデータ部分を連結した巨大ピットマップを1つのファイルとして作成。
     (W:640H:240×n枚 RGB24bitビットマップヘッダーをくっつける)
   見るときは、DirectXのDirectDrawで見たいPOINTに(高さ:240×nフレーム)
   画像を移動させれば十分高速に再生できます。
   (※映画のフィルムのように再生)
   
(2)BITMAPのままフレームを全部連結。そのファイルから各フレームを切り取って
   元のビットマップオブジェクトと同じようにメモリ上に展開し、
   PictureBoxにBITMAPオブジェクトとして読み込めば同じことになりませんか?
   でなければ、RGBのビットデータの連結で決まったサイズで切り出してお決まりの   ヘッダーをつけるのでも良いと思います。

この方が、再生フレームレートは自分のコードでSleepして決められるし、
コマ落ちの問題・コマ送り・コマ進みの問題も起こらないです。
さらに、1ファイルに原本をすべて格納しておけます。
作成するのにファイル操作だけなので簡単だと思います。
お金もかかりません。


[ メッセージ編集済み 編集者: xxななおxx 編集日時 2005-02-10 17:03 ]

[ メッセージ編集済み 編集者: xxななおxx 編集日時 2005-02-10 19:48 ]

スキルアップ/キャリアアップ(JOB@IT)