私はそれがIMediaSeeking SetPositions
で行われるべきだと思いますが、どのようにパラメータを定義するのか分かりません。DirectShow.NETでフレームをステップバックする方法は?
1
A
答えて
2
DirectShowに戻るための専用の方法はありません。はい、IMediaSeeking::SetPositions
を使用できますが、実装するDirectShow自体ではなく、実際の基になるフィルタなので、再配置のサポートはフィルタや実装に依存します。たとえば、キーフレームをステップ実行するスプライスポイント)のみ。 DirectShow.NETはDirectShow上のラッパーであり、DirectShowがステッピング用に提供するものの上に何も追加しません。
0
IBasicVideo *pBasicVideo=NULL;//Interface to the Ibasic Video
HRESULT hr;
REFTIME pavgfrt=0;//Get the reftime variable
REFERENCE_TIME pnowrt=0;//Get the reference time variable
pBasicVideo->get_AvgTimePerFrame(&pavgfrt);
pBasicVideo->get_AvgTimePerFrame(&pavgfrt);//Get the avg time per frame in seconds
pSeek->GetCurrentPosition(&pnowrt);//Get the current time in the unit of 100 nanoseconds
REFERENCE_TIME temp=pnowrt;//store it in a temp variable
REFERENCE_TIME temp1=(REFERENCE_TIME)(pavgfrt*10000000);//convert avg time into the format of current time
pnowrt=temp+temp1;//Add to framestep forward and subtract to framestep backward
pSeek->SetPositions(&pnowrt,AM_SEEKING_AbsolutePositioning, NULL,AM_SEEKING_NoPositioning);//Set the seeking position to the new time
pnowrt=0;//Reset the time variable
これは私にとってはC++で動作します。このコードをC#でラップすることは難しくありません。お役に立てれば。
関連する問題
- 1. 他のコンピュータでDirectShow.netアプリケーションを実行する方法
- 2. DirectShow.NETを使用してオーディオストリームにアクセスする方法C#
- 3. C#:このダイアログを表示するにはdirectshow.netを使用する方法?
- 4. DirectShow.Netでカメラビデオを表示するC#コントロール
- 5. cssでフレームをフリーズする方法
- 6. MFCでフレームをキャプチャする方法
- 7. フレームまたは端末でemacsをチェックする方法は?
- 8. wxWidgetsでフレームを手動でアクティブにする方法は?
- 9. HTML5でフレームを使用する方法はありますか?
- 10. ダイアログピクチャをクリアする方法コントロールタイプ=フレーム
- 11. Python、GIFフレームを取得する方法
- 12. UIImagePickerControllerのフレームを変更する方法
- 13. UIView:影でCALayerフレームをアニメーション化する方法は?
- 14. デバッガでフレーム位置を出力する方法は?
- 15. ベクトルをMATLABでフレームに分割する方法は?
- 16. htmlでフレームを追加して整列する方法は?
- 17. Aquamacsのフレーム間でタブをコピーする方法は?
- 18. UIScrollViewフレームのサイズをプログラムで設定する方法は?
- 19. UIButtonのフレームをタグで操作する方法は?
- 20. Javascript変数をフレーム間で保存する方法は?
- 21. 別のビュー内でビューのフレームを取得する方法は?
- 22. フレーム内で.gifを分割する方法は?
- 23. フレームごとにフレームを描く方法フレームxからフレームyへのアニメーション
- 24. 1フレームのDOMを別のフレームのイベントに変更する方法は?
- 25. Java、別のフレームから1つのフレームでJTableを更新する方法
- 26. 例外が発生した後にプログラムをステップバックする - Visual Studio
- 27. UIScrollView、iPhoneアプリケーションでフレームごとにスクロールする方法は?
- 28. IPPのフレームがIDRフレームであるかどうかを確認する方法はありますか?
- 29. DirectShow.NET - ウェブカメラ解像度プロパティページ
- 30. JavaScriptでウィンドウとフレームの間でデータを共有する方法
私は知っていますが、前進と後退を模索するための良い例がありますか? – Saint
あなたは 'IVideoFrameStep :: Step'で前進することができます。これはかなりうまくいきます。後方に歩むことについては、簡単な方法は、現在の数ミリ秒前に特定の時間位置を探すことです。おそらくキャッシングフィルタをパイプラインに配置してフレームを保持し、後ろに正確に踏み込むのを助けることも可能ですが、複雑なアイテムのように聞こえるように思えます。 –
Windows SDKにはC#のサンプルがありませんので、サンプルを探すのに最適な場所はhttp://directshownet.sourceforge.net/です –