OpenCVを試すことができます。私はビデオファイルを読んだり修正したりする機能を持っており、さまざまな形式を開くことができます。 C++では利用可能ですが、JAVAで使用できるかどうかは不明です。また、オーディオを解析しません。ここで
は私のコンピュータビジョンで使用鉱山のサンプル実装が
#ifndef _VPLAYER_H_
の#define _VPLAYER_H_
の#include の#include の#include #
.hファイルを投影しています"cv.h"を含める #include "highgui。H」
クラスVPLAYER [ビューポート画層管理] {
公共: VPLAYER [ビューポート画層管理](); 〜VPLAYER [ビューポート画層管理]();
プライベート:
CvCapture* pAvi;
IplImage* pFrame;
公共: int型の高さ; int型の幅; int fps; int numFrames; 倍のコーデックコード;
公共:
bool LoadVideo(char * fname);
void GetFrame(int FrameNo);
void GetImage (IplImage* &pOutBuffer);
void GetProperties();
}。
.cppファイル
の#include "STDAFX.H" の#include "VideoPlayer_PB_1.h"
ブールVPLAYER [ビューポート画層管理] :: LoadVideo(チャー*のFNAME){
#ENDIF
if(pAvi)cvReleaseCapture(&pAvi);
if(!(pAvi = cvCaptureFromAVI(fname)))return false;
GetProperties();
return true;
VPlayer :: VPlayer(){ pAvi = 0; pFrame = 0; }
VPLAYER [ビューポート画層管理] ::〜VPLAYER [ビューポート画層管理](){
cvReleaseCapture(&pAvi);
}
空隙VPLAYER [ビューポート画層管理] ::関数getframe(INT FrameNo){
cvSetCaptureProperty(pAvi,CV_CAP_PROP_POS_FRAMES,FrameNo);
if(!cvGrabFrame(pAvi)){ // capture a frame
printf("Could not grab a frame\n\7");
exit(0);
}
pFrame = cvRetrieveFrame(pAvi);
}
ボイドVPLAYER [ビューポート画層管理] :: GetImage(IplImage * & pOutBuffer){
pOutBuffer = cvCloneImage(pFrame);
}
空隙VPLAYER [ビューポート画層管理] :: GetPropertiesの(){ IF(PAVI){ cvQueryFrame(PAVI)。 //この呼び出しは、私が見た正しいキャプチャ・プロパティ
Height = (int) cvGetCaptureProperty(pAvi, CV_CAP_PROP_FRAME_HEIGHT);
Width = (int) cvGetCaptureProperty(pAvi, CV_CAP_PROP_FRAME_WIDTH);
fps = (int) cvGetCaptureProperty(pAvi, CV_CAP_PROP_FPS);
numFrames = (int) cvGetCaptureProperty(pAvi, CV_CAP_PROP_FRAME_COUNT);
CodecCode = cvGetCaptureProperty(pAvi, CV_CAP_PROP_FOURCC);
}
}
を取得する必要がある以前の[FMJ(http://fmj-sf.net/)SOに述べ。投稿を覚えていないが、[多数の投稿がある](http://stackoverflow.com/search?q=fmj)。 (私はまだそれを使用していないので、品質や使いやすさについて何も言わないでください) – Atreys