ストリーミングビデオ: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には一種の称賛の歌がありました。 ツールに率直に満足(:

Source: https://habr.com/ru/post/J66015/


All Articles