質問
たいと思い小さな動画ファイルおよび地図の各フレームメモリ(対象となるカスタムフィルタ)があります。いを取り扱う映像コーデックされているのではないかと思いましょう図書館の取り扱います。
私は利用しようとした直接のショーは、samplegrabberをフィルター用サンプル http://msdn.microsoft.com/en-us/library/ms787867(VS.85).aspxがんのみを鷲掴み一部のフレーム(いうわけではありませんのフレーム!).っというまったく新しい映像のソフトウェアプログラミングになったかもしれないを使用しない最高のライブラリになっているので間違っています。
私は貼り付けの一部コード(主に修正コピー/ペーストからにmsdnの例では、残念なことになgrabb日から25日に初のフレームとして期待---
[...]
hr = pGrabber->SetOneShot(TRUE);
hr = pGrabber->SetBufferSamples(TRUE);
pControl->Run(); // Run the graph.
pEvent->WaitForCompletion(INFINITE, &evCode); // Wait till it's done.
// Find the required buffer size.
long cbBuffer = 0;
hr = pGrabber->GetCurrentBuffer(&cbBuffer, NULL);
for( int i = 0 ; i < 25 ; ++i )
{
pControl->Run(); // Run the graph.
pEvent->WaitForCompletion(INFINITE, &evCode); // Wait till it's done.
char *pBuffer = new char[cbBuffer];
hr = pGrabber->GetCurrentBuffer(&cbBuffer, (long*)pBuffer);
AM_MEDIA_TYPE mt;
hr = pGrabber->GetConnectedMediaType(&mt);
VIDEOINFOHEADER *pVih;
pVih = (VIDEOINFOHEADER*)mt.pbFormat;
[...]
}
[...]
があるのか、映像ソフトウェアは経験者サービスを提供できについてのコードまたはその他の簡単なのですか?
感謝
編集:Msdnリンクされていないように見える作業のバグ)
解決
現在、これらの最も人気のある動画の枠組みをごWin32プラットホーム:
映像プラグインについて古いwindowsの枠組みからのWin95も広く使えるのではとてもシンプルに利用します。残念ながら対応しみAVIファイルを適切に設計さcodecが設置されています。
製品:標準WinXPの枠組みでは、基本的に負荷の全てのフォーマットでのセレブを巻き込んで大流行してWindows Media Player.が困難となることに利用します。
Gparted:より正確にlibavcodec、ユーザランド向けユーティリティに付属するGpartedオープンソースのマルチメディアです。では極めて力強くさせていけばよいのでしょうかフォーマット(ほとんどすべてのセレブを巻き込んで大流行して バルク ものがない場合は、コーデック、システムにインストールされた.これは複雑な利用ができャー ffplayることが出荷で他の実装でオープンソースソフトウェアです。とにかくかいが使いやすいよDS(います。が必要でcomipled MinGWビルWindowsの場合、すべての手順を説明していく こちらの (この瞬間のリンクは、希望となる。
QuickTime:リンゴの枠組みは、ベストソリューションのWindowsプラットフォームで必要QuickTimeアプリを設置する必要があるものの適切なQuickTimeコーデック毎のフォーマットサポートしていない多くのフォーマットがなかなか普通にプロフェッショナルのニーズを満(一部コーデックを実際にのみQuickTime).な難しすぎます。
X window system:最新のオープンソースの枠組みあまり知りませんが、いラップもあるその他のシステムのもっています
すべてのこの枠組みとして実施されていバックエンドにOpenCv Highguiを除き、DirectShow.デフォルトの枠組みWin32OpenCVを用に設計さ(つまり、できるだけ開AVIファイルを利用する場合は、その他必要のダウンロード履歴書の代わりに正式リリースもいくつかのハッキングのコードでかすぎず、例えばGPARTEDバックエンドになるのであることを想像することストリームです。を利用する場合はQuickTimeとOpenCV この させていただきますので
他のヒント
利用してい OpenCV ロビデオファイルを処理します。でもお手軽に多くの種類の映像処理を含めに役立つコンピュータビジョンです。
用の"コールバック"モデルのsamplegrabberをしております。例を参照してくださいサンプル\C++\適\編集\GrabBitmaps.
がもたくさんの情報Samples\C++\DirectShow\Filters\Grabber2\grabber_text.txt やreadme.txt.
ただ、それは非常に魅力的にC++に適切な内訳は、ビデオファイルとなっています。が、情報がある、そんな冗長ロビルの授業を手にそれぞれのファイル形式で簡単に一部変更できる将来構造の変化を考慮し、正直それだけではプライベートビーチがあります。
をいただくこともできましたがお勧めgparted.また上記に記載のがん難しいことですが、難しいことではない.多くのオプションより多くの人はいるで以上に困難になるのです。大半の業務だけましょうgpartedでいます。
例えばファイルに変換 gparted-i入力ファイル.mp4outputFile.avi
決定から開始についてgparted業務の実行スレッドは、より正確にスレッド図書館があります。でもお客様が、ご自身のスレッドのクラスのwrapできるようにお客様が、ご自身のEventAgs方法のチェックのスレッドが終了しました。のようなもの:-
ThreadLibManager()
{
List<MyThreads> listOfActiveThreads;
public AddThread(MyThreads);
}
Your thread class is something like:-
class MyThread
{
public Thread threadForThisInstance { get; set; }
public MyFFMpegTools mpegTools { get; set; }
}
MyFFMpegTools performs many different video operations, so you want your own event
args to tell your parent code precisely what type of operation has just raised and
event.
enum MyFmpegArgs
{
public int thisThreadID { get; set; } //Set as a new MyThread is added to the List<>
public MyFfmpegType operationType {get; set;}
//output paths etc that the parent handler will need to find output files
}
enum MyFfmpegType
{
FF_CONVERTFILE = 0, FF_CREATETHUMBNAIL, FF_EXTRACTFRAMES ...
}
こちらは小さなスニペットのgpartedツールのクラスは、この部分の情報を収集す。いGpartedは、特定の場所で、開始時にソフト走行される可能性があるためです。ることがございます。バージョンにおいてデスクトップのもっこっこさん結論かく書いたのパスが正しくまっ嫌いなMSの特別フォルダのシステムでは無視しまっていきたいと考えてい).
とにかく、この使用例無窓gparted.
public string GetVideoInfo(FileInfo fi)
{
outputBuilder.Clear();
string strCommand = string.Concat(" -i \"", fi.FullName, "\"");
string ffPath =
System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\ffmpeg.exe";
string oStr = "";
try
{
Process build = new Process();
//build.StartInfo.WorkingDirectory = @"dir";
build.StartInfo.Arguments = strCommand;
build.StartInfo.FileName = ffPath;
build.StartInfo.UseShellExecute = false;
build.StartInfo.RedirectStandardOutput = true;
build.StartInfo.RedirectStandardError = true;
build.StartInfo.CreateNoWindow = true;
build.ErrorDataReceived += build_ErrorDataReceived;
build.OutputDataReceived += build_ErrorDataReceived;
build.EnableRaisingEvents = true;
build.Start();
build.BeginOutputReadLine();
build.BeginErrorReadLine();
build.WaitForExit();
string findThis = "start";
int offset = 0;
foreach (string str in outputBuilder)
{
if (str.Contains("Duration"))
{
offset = str.IndexOf(findThis);
oStr = str.Substring(0, offset);
}
}
}
catch
{
oStr = "Error collecting file information";
}
return oStr;
}
private void build_ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
string strMessage = e.Data;
if (outputBuilder != null && strMessage != null)
{
outputBuilder.Add(string.Concat(strMessage, "\n"));
}
}
またAVIファイルをいからデータを読み込みAVIファイルの自分を抽出できます。現在利用中のビデオ圧縮のマネージャー解凍します。
AVIファイルの形式はとてもシンプルですので、参照: http://msdn.microsoft.com/en-us/library/dd318187(VS.85).aspx (google).
一度、ファイルを開く"あなただけの抽出各フレームを渡しますICDecompress()を解凍します。
そのような変則的な形になってい作品で最も信頼性の高いる。
がくれた場合、または以上のAVIファイルを使用しgparted.
OpenCVのベストソリューションの場合動画の場合のみ必要な配列の写真です。さえすれば、いリアルな映像処理、ビデオequals"視覚オーディオ"では、お通じている必要があり、また、トラックのものを提供する"martjno".新しいウインドウソもWin7 3新たな可能性また:
- Windowsメディア財団:後継のト;洗浄-アイ
- Windowsメディアエンコーダー9:だけでなく、programmでも船舶の図書館のための符号化
- Windows式4:後継者の2.
最後の2商みソリューション、その第一は無料です。コード類のインストールする必要がありますWindows apiを提供します。