C言語関係掲示板

過去ログ

No.1270 動画処理

[戻る] [ホームページ]
No.16840

動画処理
投稿者---まく(2004/09/19 00:37:43)


今まで静止画の処理の経験があるのですが、
動画処理は動画を細切れにして静止画を処理しているのでしょうか?
それとも、そのまま動画を処理しているのでしょうか?
動画処理のプログラムなどがアップしてるHPなどあったら紹介してください。


No.16841

Re:動画処理
投稿者---Sciggepy(2004/09/19 19:06:50)


もちろん、最終的には静止画を連続で切り換えて表示しているはずですが、動画形式のファイルを再生するインターフェイスを使用するのが普通だと思います。


No.16843

Re:動画処理
投稿者---まく(2004/09/20 01:24:04)


Sciggepyさんご意見ありがとうございます。
カメラから撮った動画をリアルタイムで処理しているプログラム(C言語)を見てみたいのですが、どこかにないでしょうか?


No.16844

Re:動画処理
投稿者---シャノン(2004/09/20 15:08:21)


>Sciggepyさんご意見ありがとうございます。
>カメラから撮った動画をリアルタイムで処理しているプログラム(C言語)を見てみたいのですが、どこかにないでしょうか?

#環境が書かれていないので、Windows & VC++ と仮定します。

そのテのプログラミングをしたことはないですが、DirectShow というのを使うのだと思います。検索してみてください。

最近、別の掲示板でそのテの話題が出たときのサンプルです
http://vision.kuee.kyoto-u.ac.jp/%7Ehiroaki/firewire/directshow.html

また、DirectShow SDK を落とせば、その中にもサンプルはあるでしょう。きっと。
DirectShow を含む DirectX SDK は、こちら
http://www.microsoft.com/japan/msdn/directx/default.asp
からダウンロードできます。


No.16845

Re:動画処理
投稿者---Ban(2004/09/20 17:27:21)


>また、DirectShow SDK を落とせば、その中にもサンプルはあるでしょう。きっと。
>DirectShow を含む DirectX SDK は、こちら
>http://www.microsoft.com/japan/msdn/directx/default.asp
>からダウンロードできます。

例えばカメラ制御用フィルタ(MSDV)をデマルチプレクサ(Demux)あたりに
繋いで音声と映像に分割し、これを更にレンダラにでも接続してあげれば
表示はできると思います。
間に変換フィルタ等作ってかませればその中で変換することも可能です。
実現したい"処理"が既存フィルタの組み合わせで実現できない場合、
そのフィルタを実装する必要があるかもしれません。
# とりあえず フィルタ ≒ Codec の実装くらいに考えておいてください。

多分、知りたいのはこれの中身ではないかと思いますが....
操作例はフィルタのサンプル(SDK に添付)の中にもそれなりにあります。

各フィルタの内部では、グラフからの制御に従って上流のフィルタからデータ
ストリームがサンプルと呼ばれるバッファ単位で順次渡されてきて、それを
下流に渡していくだけです。

相手がビデオならデータストリームの型は大抵、MPEG の TS や ES
あたりだと思います。どんな風に処理するかはあなたのお好みしだいですが、
普通は必要がなければ静止画に変換したりはしません。ストリームをこの
形式のまま直接操作すると思います。
勿論、静止画に変換してから処理することもできなくはありませんが。

尚、DirectShow (といか DirectX 自体) が COM ベースなので、
残念ながらサンプルもほぼ全部 C++ (+ SDK) です。
内部処理は C でも C++ でも大差ないので参考にはなると思いますが、
C 言語から使うことはあまりお薦めはできません。



No.16846

Re:動画処理
投稿者---まく(2004/09/20 23:44:33)


Banさん、シャノンさんありがとうございます。

すいません、環境を書くのを忘れていました。
使っている環境はLinuxです。
Windows & VC++でも参考になるのでありがたいです。
Linuxでもあるのでしょうか?





No.16847

Re:動画処理
投稿者---Ban(2004/09/21 01:50:24)


>使っている環境はLinuxです。
>Windows & VC++でも参考になるのでありがたいです。
>Linuxでもあるのでしょうか?

Linux ですか......。Linux でカメラ制御をしたことはありませんので伝聞だけ。

処理対象は MPEG 規格等で決まるのでプラットフォームには依存しないと思いますが、
「Linux DVカメラ」あたりをキーワードにちょっと検索してみたら、IEEE1394 の
カメラなら lib があるみたいです。
確かに 1394 対応のドライバさえあれば、AV/C はプラットフォームに依存しない
規格ですから理屈的には動くわけですね。
内容まではきちんと見てませんが上位のインターフェイスもあるみたいですし、
探せばサンプルに使えそうなオープンソースなソフトもあるんじゃないでしょうか。
(GPL に同意できない場合には幅も狭まるのかもしれませんけど)



No.16895

Re:動画処理
投稿者---まく(2004/09/24 02:03:34)


とても参考になりました。
ありがとうございました。