ビデオの出力
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*CvVideoWriter* cvCreateVideoWriter( char* filename, int ...
ディスク上にビデオを書き込むWriterを生成する.
**引数 [#b69661c1]
-filename:char*型のファイル名
-fourcc:int型のFOURCC.詳細は後述
-fps:double型のfps
-size:CvSize型の画像の大きさ
-is_color:int型のカラービデオのフラグ
**返り値 [#zd01909e]
-成功した場合,CvVideoWriterのポインタを返す.
-失敗した場合はNULLを返す.
*void cvReleaseVideoWriter( CvVideoWriter** writer ); [#c...
Writerを解放する.
**引数 [#jc12b057]
-writer:CvVideoWriter**型のWriter
**返り値 [#l3ee2df3]
-void型なのでなし
*解説 [#o5bc79d2]
-is_colorのデフォルト値は1
-30fpsビデオも作れるが,再生が乱れるので,29.97にすること.
//俺は試したことないけれど.
-Releaseすることでファイルが完成.
-その途中は書き込み権限をプログラムがもつので,ファイルに...
**fourccについて [#o4d503a3]
-fourccに-1を入力すると出力するコーデックの種類を選択する...
-以下の様にCV_FOURCC()を利用すると,選択でなく,出力する...
CV_FOURCC('D','I','V','3')
-OpenCVではFOURCCは以下のように4バイト長の変数となる.
#define CV_FOURCC(c1,c2,c3,c4) (((c1)&255) + (((c2)&255)...
-FOURCCはcase insensitive.大文字小文字は区別しない.
-' '(半角スペース)も有効なFOURCCなので,スペースを混ぜる...
//-非圧縮AVIと圧縮AVIは別物なので,非圧縮AVIの場合は'-1'...
-非圧縮AVIは'D', 'I', 'B', ' 'らしい.((参考:opencv.jp h...
-FOURCCはもともとはデータ(ビデオに限らず)の形式を指定する...
-FOURCCとcodecの対応は以下参照¬e{fourcc-microsoft-reco...
|Cinepak Code by Radius|CVID|
|Intel 4:2:0 Video V2.50|失敗|
|Intel Indeo(R) Video R3.2| IV32 |
|Intel IndeoR Video 4.5| IV41|
|Intel IYUV code|IYUV |
|Microsoft RLE|失敗|
|Microsoft Video 1|MSVC|
|Microsoft H.263 Video Codec|失敗|
|Microsoft H.261 Video Codec|失敗|
|IndeoR video 5.10|IV50|
|Canopus Software DV Decompressor|失敗|
|Microsoft MPEG-4 Video Codec V1|MPG4|
|Microsoft MPEG-4 Video Codec V2|MP42|
|Microsoft MPEG-4 Video Codec V3|MP43|
|DivX(R) 6.1 Codec (1 Logical CPU)|DIVX¬e{divx-latest:...
|DivX(R) 6.1 YV12 Decoder|?|
|DivX(R) 6.6.1 Codec (2 Logical CPU)|DIVX¬e{divx-lates...
|DivX(R) 6.6.1 YV12 Decoder|失敗|
|Microsoft Windows Media Player Video 9|?|
|Ut Video Codec Suite¬e{utvideo-intro:[[Ut Video Codec...
|Huffyuv¬e{Huffyuv-official:[[Huffyuv>http://neuron2.n...
|非圧縮AVI|DIB|
**OpenCV2.0以降のvideoWriterについて [#n0f490ad]
-OpenCV1.1 時代は無かったと思うんだけれど,OpenCV2.0以降...
-少なくとも2.0と2.1では'MPG4'や'MP42'を指定するとOpenCVの...
-ソースコードを眺めるにあまり変わってないのだが,多分ビル...
-[[参考>http://kato.keiske.info/blog/2009/03/opencvcvcrea...
--ffmpegが使えるか試す(*)
--ffmpegが使えなかったらVFWで読み込む
-というプロセスがあるらしく,2.0以降では(*)時点で不明なFO...
-ちょっと説明が怪しいが・・・
-読み込みではそんなこと無いので,書き出し用の関数を下記の...
-書き換えるファイルはcvcap_w32.cpp (OpenCV2.1では212行目)
--変更前
#geshi(c++,number=on,start=212){{
CvVideoWriter* cvCreateVideoWriter_Win32( const char* fil...
double fps, CvS...
{
CvVideoWriter_FFMPEG_proxy* result = new CvVideoWrite...
if( result->open( filename, fourcc, fps, frameSize, i...
return result;
delete result;
return cvCreateVideoWriter_VFW(filename, fourcc, fps,...
}
}}
--変更後
#geshi(c++,number=on,start=212){{
CvVideoWriter* cvCreateVideoWriter_Win32( const char* fil...
double fps, CvS...
{
//CvVideoWriter_FFMPEG_proxy* result = new CvVideoWri...
//if( result->open( filename, fourcc, fps, frameSize,...
// return result;
//delete result;
return cvCreateVideoWriter_VFW(filename, fourcc, fps,...
}
}}
-つまり,ffmpegで書き出すのをあきらめ,のっけからVFW1本...
-これでビルドしなおせばよい.
-もともと,VFWでの書き出しはVFWでの読み込みに比べて不満は...
-ffmpegを無理に使おうとして不安定になるぐらいならVFWで書...
-しかし,ソースコードを眺めるだけだと不可解な現象だが,結...
-[[参考:OpenCVのcvCreateVideoWrite()でエラーが出る件 - K...
*サンプルコード [#o6873bb3]
#geshi(c++,number){{
#include <cv.h>
#include <highgui.h>
void main(){
CvVideoWriter *writer;
IplImage *image;
writer = cvCreateVideoWriter( "result.avi", -1, 29.97,...
while(end){
image = SomeKindOfProcess( some, parameters);
cvWriteFrame(writer, image);
}
cvReleaseVideoWriter( &writer);
}
}}
*実体ファイル [#d6326a72]
**OpenCV1.1以前 [#y4f81684]
-otherlibs/highgui/highgui.h
-otherlibs/highgui/cvcap_vfw.cpp (Windowsの場合)
**OpenCV2.0以降 [#n74f40f7]
-include/opencv/highgui.h
-src/highgui/cvcap_w32.h (cvcap**.hはたくさんあって良くわ...
ジャンル[[:OpenCV]][[:OpenCV 1.0]][[:OpenCV 1.1]][[:OpenC...
終了行:
#contents
*CvVideoWriter* cvCreateVideoWriter( char* filename, int ...
ディスク上にビデオを書き込むWriterを生成する.
**引数 [#b69661c1]
-filename:char*型のファイル名
-fourcc:int型のFOURCC.詳細は後述
-fps:double型のfps
-size:CvSize型の画像の大きさ
-is_color:int型のカラービデオのフラグ
**返り値 [#zd01909e]
-成功した場合,CvVideoWriterのポインタを返す.
-失敗した場合はNULLを返す.
*void cvReleaseVideoWriter( CvVideoWriter** writer ); [#c...
Writerを解放する.
**引数 [#jc12b057]
-writer:CvVideoWriter**型のWriter
**返り値 [#l3ee2df3]
-void型なのでなし
*解説 [#o5bc79d2]
-is_colorのデフォルト値は1
-30fpsビデオも作れるが,再生が乱れるので,29.97にすること.
//俺は試したことないけれど.
-Releaseすることでファイルが完成.
-その途中は書き込み権限をプログラムがもつので,ファイルに...
**fourccについて [#o4d503a3]
-fourccに-1を入力すると出力するコーデックの種類を選択する...
-以下の様にCV_FOURCC()を利用すると,選択でなく,出力する...
CV_FOURCC('D','I','V','3')
-OpenCVではFOURCCは以下のように4バイト長の変数となる.
#define CV_FOURCC(c1,c2,c3,c4) (((c1)&255) + (((c2)&255)...
-FOURCCはcase insensitive.大文字小文字は区別しない.
-' '(半角スペース)も有効なFOURCCなので,スペースを混ぜる...
//-非圧縮AVIと圧縮AVIは別物なので,非圧縮AVIの場合は'-1'...
-非圧縮AVIは'D', 'I', 'B', ' 'らしい.((参考:opencv.jp h...
-FOURCCはもともとはデータ(ビデオに限らず)の形式を指定する...
-FOURCCとcodecの対応は以下参照¬e{fourcc-microsoft-reco...
|Cinepak Code by Radius|CVID|
|Intel 4:2:0 Video V2.50|失敗|
|Intel Indeo(R) Video R3.2| IV32 |
|Intel IndeoR Video 4.5| IV41|
|Intel IYUV code|IYUV |
|Microsoft RLE|失敗|
|Microsoft Video 1|MSVC|
|Microsoft H.263 Video Codec|失敗|
|Microsoft H.261 Video Codec|失敗|
|IndeoR video 5.10|IV50|
|Canopus Software DV Decompressor|失敗|
|Microsoft MPEG-4 Video Codec V1|MPG4|
|Microsoft MPEG-4 Video Codec V2|MP42|
|Microsoft MPEG-4 Video Codec V3|MP43|
|DivX(R) 6.1 Codec (1 Logical CPU)|DIVX¬e{divx-latest:...
|DivX(R) 6.1 YV12 Decoder|?|
|DivX(R) 6.6.1 Codec (2 Logical CPU)|DIVX¬e{divx-lates...
|DivX(R) 6.6.1 YV12 Decoder|失敗|
|Microsoft Windows Media Player Video 9|?|
|Ut Video Codec Suite¬e{utvideo-intro:[[Ut Video Codec...
|Huffyuv¬e{Huffyuv-official:[[Huffyuv>http://neuron2.n...
|非圧縮AVI|DIB|
**OpenCV2.0以降のvideoWriterについて [#n0f490ad]
-OpenCV1.1 時代は無かったと思うんだけれど,OpenCV2.0以降...
-少なくとも2.0と2.1では'MPG4'や'MP42'を指定するとOpenCVの...
-ソースコードを眺めるにあまり変わってないのだが,多分ビル...
-[[参考>http://kato.keiske.info/blog/2009/03/opencvcvcrea...
--ffmpegが使えるか試す(*)
--ffmpegが使えなかったらVFWで読み込む
-というプロセスがあるらしく,2.0以降では(*)時点で不明なFO...
-ちょっと説明が怪しいが・・・
-読み込みではそんなこと無いので,書き出し用の関数を下記の...
-書き換えるファイルはcvcap_w32.cpp (OpenCV2.1では212行目)
--変更前
#geshi(c++,number=on,start=212){{
CvVideoWriter* cvCreateVideoWriter_Win32( const char* fil...
double fps, CvS...
{
CvVideoWriter_FFMPEG_proxy* result = new CvVideoWrite...
if( result->open( filename, fourcc, fps, frameSize, i...
return result;
delete result;
return cvCreateVideoWriter_VFW(filename, fourcc, fps,...
}
}}
--変更後
#geshi(c++,number=on,start=212){{
CvVideoWriter* cvCreateVideoWriter_Win32( const char* fil...
double fps, CvS...
{
//CvVideoWriter_FFMPEG_proxy* result = new CvVideoWri...
//if( result->open( filename, fourcc, fps, frameSize,...
// return result;
//delete result;
return cvCreateVideoWriter_VFW(filename, fourcc, fps,...
}
}}
-つまり,ffmpegで書き出すのをあきらめ,のっけからVFW1本...
-これでビルドしなおせばよい.
-もともと,VFWでの書き出しはVFWでの読み込みに比べて不満は...
-ffmpegを無理に使おうとして不安定になるぐらいならVFWで書...
-しかし,ソースコードを眺めるだけだと不可解な現象だが,結...
-[[参考:OpenCVのcvCreateVideoWrite()でエラーが出る件 - K...
*サンプルコード [#o6873bb3]
#geshi(c++,number){{
#include <cv.h>
#include <highgui.h>
void main(){
CvVideoWriter *writer;
IplImage *image;
writer = cvCreateVideoWriter( "result.avi", -1, 29.97,...
while(end){
image = SomeKindOfProcess( some, parameters);
cvWriteFrame(writer, image);
}
cvReleaseVideoWriter( &writer);
}
}}
*実体ファイル [#d6326a72]
**OpenCV1.1以前 [#y4f81684]
-otherlibs/highgui/highgui.h
-otherlibs/highgui/cvcap_vfw.cpp (Windowsの場合)
**OpenCV2.0以降 [#n74f40f7]
-include/opencv/highgui.h
-src/highgui/cvcap_w32.h (cvcap**.hはたくさんあって良くわ...
ジャンル[[:OpenCV]][[:OpenCV 1.0]][[:OpenCV 1.1]][[:OpenC...
ページ名: