2017-08-01 112 views
0

私は一般的にビデオストリーミングとopencvの新機能です。 私はh264を使ってラズベリーパイ3からrtsp経由で別のデバイスに私の計算をストリーミングしたかったのです。 私はパイプでpopenを使って、ffmpegでffserver anfにvlcでrtspサーバーを作成してコンテンツをストリーミングしてみました。残念ながら、私はストリームで巨大なラグを持っている、私ができる最高の3秒に下った。ストリームrtsp video from opencv from python h.264 in low latency

これを達成する方法はありますか?私は他の技術を検討しています。

ありがとう

答えて

1

RTMPは、低レイテンシ(< 5s)を達成する最善の方法ではありません。

純粋なRTPでFFMPEGを使用して、ビデオをRTPSサーバーにストリーミングすることをお勧めします。または、Gst-RTSPサーバと一緒にGstreamerを直接使用してください。どちらもC言語のオープンソリューションです。

遅延はエンコーダと処理に使用するハードウェアの影響を受けます。

This question詳細情報があります。

+0

opencv VideoWriterでgstreamerパイプラインを単独で使用しましたが、標準ストリームではありませんでしたので、gst-rtsp-serverを使用しました。ここに、ソリューションのリンクがあります。 https://stackoverflow.com/questions/45544877/write-in-gstreamer-pipeline-from-opencv-in-pythonとhttps://stackoverflow.com/questions/47396372/write-opencv-frames-into-gstreamer- rtsp-server-pipeline – WisdomPill

0

代わりにRTMPを使用することをおすすめします。待ち時間は100ミリ秒ほどの低さになる可能性があります。

もう1つのことは、VLCや他のクライアントが、プレーヤーによる内部バッファリングのためにビデオ遅延を導入することです。ビデオをバッファリングしないようにするオプションを探してください。ビデオレイテンシーから数秒を削ることができるはずです。

ffplay --fflags nobuffer rtmp://your.server.ip/path/to/stream -loglevel verbose

あなたはまた、ビデオストリーミングに多くの待ち時間を導入することを期待することができDASHまたはHLSするtransmuxれます:あなたは次のことを試すことができffplayで

+0

私はすでにpopenとrawvideoを使ってffserverとffmpegの組み合わせを試しましたが、それは多くのリソースを消費し、待ち時間は巨大です。 – WisdomPill

関連する問題