HTML5 を使用してビデオ ストリーム RTP/RTCP を取得しようとしていますが、ストリームは gstreamer によって生成されました。gstreamer の例を使用したので、RTP ポート:5000、および RTCP:5001 を通過でき、gstreamer を使用してストリームを受信できます。しかし、HTML5 を使用すると、それらを受信できませんでした。そこで、HTML5 について少し読んでみたところ、theora/ogg、webm/vp8、mp4/avc を受信できることがわかりました。プロトコルは、HTTP、RTP、RTCP、UDP などである可能性がありますが、RTP は使用できませんでした。 RTCPかUDP、HTTPのみなんとか受信できました。しかし、UDP プロトコルを使用して Mozilla Firefox 用の VLC プラグインを使用すると、非常に満足のいく結果が得られました。src="/tmp/test.avi" は udp、RTP、RTCP のビデオ ストリームである必要があるため、ソース ファイルを使用したくありません。ありがとうございました!
1 に答える
低 fps でストリーミングする必要がない場合は、GStreamer を使用してストリームを MJPEG にトランスコードし、TCP でストリーミングしてから、VLC を使用してこの TCP ストリームを取得し、HTTP にストリーミングできます。非常にうまく機能します (0.5 秒のレイテンシー) が、fps (1 fps) を下げると、VLC は約 11 秒のレイテンシーを導入します。
GStreamer videotestsrc を使用して、すぐに使用できるいくつかのテスト コマンドを次に示します。
GStreamer :
gst-launch -v videotestsrc 水平速度=1 ! デインターレース!ビデオレート!ビデオスケール!video/x-raw-yuv、フレームレート=15/1、幅=256、高さ=144 ! jpegenc quality=20 ! multipartmux 境界 = "--videoboundary" ! tcpserversink ホスト=localhost ポート=3000
VLC :
vlc -vvv -I rc tcp://localhost:3000 --sout '#standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=localhost:8081 }'
次に、ブラウザーを開き
http://localhost:8081
ます (または、「src」属性が である img タグを含む HTML ページを作成しますhttp://localhost:8081
) 。