1

Web カメラからのビデオをプレビューし、MJPEG 圧縮フィルターを介して .avi 形式にキャプチャするコンソール プログラムを作成しました。私のスキーマ:

WebCam
->IBaseFilter(Video capture filter)
 ->IBaseFilter(MJPEG compression filter)
  ------------->ICaptureGraphBuilder2::RenderStream
                ->.avi
  1. IAMVideoCompression インターフェースを介して MJPEG 圧縮パラメータを設定し、最小のビデオ サイズと少なくとも平均的な品質を得る方法に関するアドバイスはありますか? 今のところ、putQuality メソッドのパラメーターを 0.1 に設定していますが、これは非常に役に立ちます。私のビデオ ファイル サイズは約 15 mb/分です。

  2. このキャプチャした .avi ファイルをどのビデオ プレーヤーでもレンダリングできません (Windows Media Player、WMP Classic、VLC を試しました)。このビデオを見る前に解凍プログラムを作成する必要がありますか?

  3. 使用すべき別の圧縮フィルターはありますか? どれが最高ですか?

私の目的は、ビデオ ストリーミング サーバー (Skype など) を作成することです。ネットワークでビデオ パケットを転送するには、15 MB/分が適切なサイズだと思いますか? UDP(RTP) ソケットを使用してメディアストリームを転送します。

4

1 に答える 1

0

Gstreamer を参照してください。

MJPEG ストリームをデコードするパイプラインの例は次のようになります。

gst-launch -v souphttpsrc location="http://[ip]:[port]/[dir]/xxx.cgi" do-timestamp=true is_live=true ! multipartdemux ! jpegdec ! ffmpegcolorspace ! autovideosink

代わりにファイルに保存するには

gst-launch -v souphttpsrc location="http://[ip]:[port]/[dir]/xxx.cgi" do-timestamp=true is_live=true ! multipartdemux ! jpegdec ! ffmpegcolorspace ! filesink location=test.avi

ウェブカメラからビデオを取得して保存するには (Ubuntu Linux でテスト済み)

gst-launch v4l2src ! jpegdec ! filesink location=test.avi

jpegdec は、品質のための「idct-method」を含む jpeg 形式をデコードするためのビンです。

上記のパイプラインは、同等の C/C++、Java、または Python コードで記述できます。それはかなり良いバインディングを持っています。

プログラミングについては、私の他の投稿を見てください

python-gstreamer で RTSP を再生する

ネットワーク関連のものについては、RTSP(UDPベースのRTP)を見たいと思うかもしれません ここの投稿に対する私の答えを見てください

GStreamer を使用したスト​​リーミング

于 2012-03-29T16:02:07.363 に答える