ストリーミングビデオ:N810からのブロードキャスト

ノキアを高く空に投げて、鳥瞰図からどのように見えるかを確認したかったのです。

それを投げる方法は理解できます:最も簡単なオプションは、より大きなkitを取ることです。

見方-質問は少し困惑しました。

判明したこと:



素晴らしい。



最初の試み



 [n810] $ gst-launch -v v4l2src!  \
     capsfilter caps = "video / x-raw-yuv、format =(fourcc)UYVY、framerate =(fraction)8/1、width =(int)640、height =(int)480"!  \
     autovideosink


capsfilterフィルターは、ビデオキャプチャオプションを設定します。 これらは合理的な範囲内で変更できます。そのようなパラメーターでビデオをキャプチャできない場合、gstreamerは最も近い有効なパラメーターを書き込みます。



ネットワーク伝送



これをネットワーク経由で送信できたらうれしいです。 最も単純なオプションは次のようになります(デスクトップマシンIP 192.168.1.254):



 [デスクトップ] $ gst-launch -v tcpserversrc host = 0.0.0.0 protocol = gdp!  autovideosink

 [n810] $ gst-launch -v v4l2src!  \
     capsfilter caps = "video / x-raw-yuv、format =(fourcc)UYVY、framerate =(fraction)8/1、width =(int)320、height =(int)240"!  \
     tcpclientsinkホスト= 192.168.1.254プロトコル= gdp


protocol = gdpパラメーターは、ネットワークを介して送信されるデータにストリーム形式を追加します。事実は、互換性のある形式の出力と入力を持つフィルターのみをチェーンで組み合わせることができるということです。 受信側でこのパラメーターを使用したtcp * srcの出力形式は、入力側で送信側のtcp *シンクと同じです。



シンプルなソリューションですが、Wi-Fiを介して一生懸命動作します。7メガビット、600パケット/秒-顕著な負荷。 640x480はすでに著しく遅いです。



明らかに、次のステップは圧縮を追加することです。



mpeg4にしましょう:



 [デスクトップ] $ gst-launch -v tcpserversrc host = 0.0.0.0 protocol = gdp!  decodebin!  autovideosink

 [n810] $ gst-launch -v v4l2src!  \
     capsfilter caps = "video / x-raw-yuv、format =(fourcc)UYVY、framerate =(fraction)8/1、width =(int)320、height =(int)240"!  \
     hantro4200enc!  tcpclientsinkホスト= 192.168.1.254プロトコル= gdp


すばらしい、すべてがmpegブロックになっていますが、110キロビットと1秒あたり30パケット(:

このスキームの他の重大な欠点は何ですか? TCP / IP:パケットの損失により、無関係な画像が再送信されるため、遅延が発生します。 切断は、サーバーとクライアントを再起動することによってのみ処理されます。



RTP



したがって、RTPをねじ込む必要があります。



 [デスクトップ] $ gst-launch -v gstrtpbin name = rtpbin \
     udpsrc caps = "application / x-rtp、media =(string)video、clock-rate =(int)90000、encoding-name =(string)H263" port = 5000!  \
     rtpbin.recv_rtp_sink_0 rtpbin。  !  \
     rtph263depay!  decodebin!  autovideosink

 [n810] $ gst-launch -v gstrtpbin name = rtpbin \
   v4l2src!  \
   capsfilter caps = "video / x-raw-yuv、format =(fourcc)UYVY、framerate =(fraction)8/1、width =(int)320、height =(int)240"!  \
   hantro4200encストリームタイプ= 5ビットレート= 512!  rtph263pay!  \
   rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0!  \
   udpsinkポート= 5000ホスト= 192.168.1.254


何が変わった?



どのような効果がありますか?





残っているものは何ですか?







公式ウェブサイトのgstreamerプラグインのヘルプ: gstreamer.freedesktop.org/documentation

インストールされたプラグインのリストとそれらのパラメーターのヘルプ-gst-inspect



PS gstreamerには一種の称賛の歌がありました。 ツールに率直に満足(:



All Articles