0

私の目標は、ビデオをキャプチャし、x264 でエンコードし、RTP 経由でストリーミングし、Android で受信し、デコードして、可能な限り低レイテンシで表示することです。エンコーダ/送信機は、OSS ビルド「GStreamer-WinBuilds-GPL-x86-Beta04-0.10.7.msi」がインストールされた Windows 7 です (2011 年 3 月にリリース)。次のようなキャプチャ/エンコード/ストリーム パイプラインを問題なく実行します。

gst-launch.exe -v ksvideosrc device-index=0 ! ビデオレート!video/x-raw-yuv、幅=320、高さ=240、フレームレート=30/1 ! ffmpegcolorspace ! x264enc tune=zerolatency ! rtph264ペイ!udpsink ホスト=127.0.0.1 ポート=5400

同じマシンで実行されているクライアント パイプラインでストリームをテストしました。

gst-launch.exe udpsrc port=5400 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! gstrtpjitterbuffer ! rtph264depay ! h264パース!ffdec_h264 ! ffmpegcolorspace ! ビデオスケール!"video/x-raw-yuv, width=320, height=240" ! 自動ビデオシンク

そして、それは本当にうまく演奏します。

GStreamer に基づく Android アプリケーションの構築に成功しました。カスタム pipilenes を構築して Android で実行することは可能です。しかし、携帯電話の IP にストリーミングし、Android で同じレシーバー パイプラインを実行すると、画像全体にブロックやアーティファクトがあり、非常に低品質で、見ることができない不自由なビデオが表示されます。

Android 用の GStreamer SDK のバージョンは次のとおりです。http://cdn.gstreamer.com/android/arm/gstreamer-sdk-android-arm-debug-2012.11.zip 新しいビルドのようです。

そこで、Windows 7 マシンにも同じビルド バージョンのGStreamer SDK をインストールすることにしました。

古い OSS ビルドを使用して Windows でセンダー パイプラインを実行し、新しい SDK ビルドを使用してレシーバー パイプラインを実行すると、Android と同じ効果が得られます。ビデオは表示されますが、壊れています。新しいSDKにはエンコーダーが含まれておらず、追加方法が明確でないため、送信者として新しいSDKを使用してWindowsでテストできません。

問題は、Windows でエンコーダーとして実行され、Android でレシーバーとして実行されている同じバージョンの GStreamer を取得するにはどうすればよいかということです。

4

1 に答える 1

0

SDK 2013.6 へのアップデートはお試しになりましたか? いくつかのバグを修正しているようです。

于 2013-07-24T01:54:19.937 に答える