問題タブ [ffdshow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - video/x-flv デコーダーを搭載した配送アプリ
ファイルを再生する必要があるアプリケーションがありvideo/x-flv
ます。すべてのお客様がコーデックをインストールしてvideo/x-flv
いるわけではなく、コーデックは Windows に付属していないため、アプリと一緒に出荷する必要があります。
video/x-flv
問題は、コーデック パックをインストールしていない新しいコンピューターでデコードを有効にするために出荷する必要があるものを理解できないことです。
と をインストールしようとしましffdshow
たFLVSplitter
が、うまくいきませんでした。
作品のインストールCombined Community Codec Pack
- ただし、アプリを完全なコーデック パックで出荷したくはありませんが、デコードに最低限必要なvideo/x-flv
.
何か案は?
c++ - C ++でdirectdhowアプリケーションの前にffdshowダイアログがポップしないようにする方法
C++ で Direct show api を使用してラップトップ Web カメラで画像を自動的にキャプチャするアプリケーションを作成しました。正常に動作していますが、画像がキャプチャされる前に ffdshow ダイアログが表示されます。プログラムでffdshowダイアログを停止するには?
c# - ffdshow オーディオ プロセッサ インスタンスの作成エラー
最新の ffdshow ( ffdshow_rev4527_20131203_clsid ) をダウンロードしてインストールしました。アプリケーションでffdshow オーディオ プロセッサフィルタを使用したいと考えています。そのインスタンスを作成したいときはいつでも、キャストエラーで失敗します。GraphStudio も GraphEditPlus もフィルターを追加することはできませんが、驚くべきことに GraphEdit はフィルターを追加して使用することができます。
何か考えはありますか?インスタンス数に「制限なし」を設定しました。
ありがとう
c++ - デインターレースのために FFDShow を DirectShow グラフにコーディングしますか?
わかりました、私はしばらく探し回っていましたが、現在かなり困惑しています。これについて私が見つけることができる助けをいただければ幸いです。
複数のフィルター グラフで複数のカメラを開くアプリケーションがあります。それぞれが同じなので、そのうちの 1 つだけを説明します。大まかなアイデアは、PAL ビデオ ストリームがビデオ グラバー カードを介して読み込まれ、アプリケーションによって処理されるというものです。アプリは、DirectShow ビデオ フィルター グラフを構築します。各グラフには、ビデオ ソース、サンプル グラバー フィルター、およびヌル レンダラー フィルターが含まれています。取得したサンプルは、ビデオからのさまざまな静止画を表示し、OpenCV で描画およびスケーリングするために使用されます。したがって、現在のフィルタ グラフは次のようになります。
[Video Source] --> [/* ある種のコーデック フィルタ */] --> [Sample Grabber] --> [Null Renderer]
DirectShowがそれ自体をレンダリングできるようにするため、「何らかの」と言います。
ただし、PAL ビデオからのインターレースに問題があります。FFDShow と GraphEditor アプリを使用して、上記と同様のグラフを作成しましたが、SampleGrabber の前に FFDShow フィルターを使用して、ビデオ フィードで 3 次インターレース解除を実行するように設定しました。または、それを使用して、ビデオ グラバーからのビデオ ストリームをデコードし、インターレースを解除することもできます。
私の問題はこれです: コードで FFDShow フィルターを作成する方法がわかりません。コードにフィルターを追加する方法はありますか?もしそうなら、何をプロジェクトに含めたりリンクしたりすればよいですか? または、RenderStream を呼び出すときにインターレース解除を行う FFDShow フィルターを使用するように DirectShow を構成する方法はありますか?
このトピックに関するヘルプをいただければ幸いです。
更新 1:
さて、私が開発していた PC である Windows 8.1 マシンは何らかの理由で FFDShow フィルターを実行しないことがわかりましたが、ターゲット マシンである Windows 7 マシンではまったく同じコードが問題なく実行されます。なんらかの非互換性があるようです。:/
次のフェーズに進みます。インターレース解除です。Sample Grabber フィルタとその前のフィルタ (この場合は AVI デコンプレッサ) を分離することに成功し、それらを互いに切断してから、それらの間に FFDShow 生ビデオ フィルタを接続しました。もう 1 つの FFDShow フィルターは、サンプル グラバーから出力が読み取られないというグラフを何らかの形で混乱させるため、前者のフィルターを使用します。問題は、ビデオ フィードのインターレース解除を有効にするにはどうすればよいかということです。GraphEdit プログラムで同じグラフを作成したところ、インターレースが消えたので、フィルターがそれを実行できることがわかりました。しかし、コードでそれを有効にするにはどうすればよいですか?
更新 2 / 解決策
フィルター グラフを実行し、フィルターのトレイ アイコンを選択し、アイコンを右クリックしてメニューでインターレース解除を設定することで、なんとか機能させることができました。それは完璧に機能しました。Roman R の助けに感謝します。
delphi - delphiでdspackのbasefilterの設定を制御する方法
Delphi 7 で実行時に dspack の basefilter に ffdshow を追加します。明るさなどの設定を実行時に変更するにはどうすればよいですか
video - 品質を犠牲にして ffmpeg の CPU 使用率を改善する
画面キャプチャに FFMpeg を使用しています。1000 台の VM (windows と mac) で実行できるスクリーン キャプチャ ツールを探しています。VM には制限のある CPU (1 コア) と 2GB の RAM があり、GPU はありません。
現在、私はffmpegを呼び出します
画面をキャプチャするために gdigrab を使用していますか? CPU の使用量を減らす可能性のあるより良いオプションはありますか? またはエンコーダーまたはフォーマットを変更しますか?
CPU 使用率の 4 ~ 5% の削減を目指しています。
前もって感謝します
c++ - AVFrame に負の線サイズがあります
libav (MSVC 用にビルドされた 2.7) を使用して、dshow を使用してカメラを開きます。
ビデオストリームを開くと、それはフォーマットの「生のビデオ」(その によるlong_name
)ですAV_PIX_FMT_BGR24
。フレームが必要なAV_PIX_FMT_RGB24
ので、次のように SwsContext を作成します。
次に、ループ タイマーを使用してフレームを読み取り、AVFrame にデコードします。AVFrame は、sws_scale に渡されます。
この時点の後av_picture
、アプリケーションで使用しますが、sws_scale
ハングしてクラッシュします。何も入っていないすべてのデータを見ると、 のラインサイズをsws_scale
除いて奇妙に見えます。(とは の予想どおり 0 です)。私のフレームの幅は 640 なので、1920 を期待しますが、負の符号は非常に奇妙に思えます。サインをひっくり返してみましたが、役に立ちません。毎回クラッシュするわけではないことに注意してください (一部の実行では、最初に数フレーム通過します)。av_frame
av_frame->linesize[0] == -1920
linesize[1]
linesize[2]
BGR24
ラインサイズが負になるのはなぜですか? それは何かを意味していますか、それともどういうわけか台無しにされていますか?