web-dev-qa-db-ja.com

RTSPまたはHTML5のRTPを介したストリーミング

サーバーからRTSP/RTPストリームを再生するWebアプリケーションを構築しています http://lscube.org/projects/feng

HTML5のビデオ/オーディオタグはrtspまたはrtpをサポートしていますか?そうでない場合、最も簡単な解決策は何でしょうか?おそらくVLCプラグインかそのようなものにドロップしてください。

142
Elben Shira

技術的には「はい」

(しかし実際にはそうではありません...)

HTML 5の<video>タグはプロトコルにとらわれず、気にする必要はありません。 URLの一部としてプロトコルをsrc属性に配置します。例えば。:

<video src="rtp://myserver.com/path/to/stream">
    Your browser does not support the VIDEO tag and/or RTP streams.
</video>

または多分

<video src="http://myserver.com:1935/path/to/stream/myPlaylist.m3u8">
    Your browser does not support the VIDEO tag and/or RTP streams.
</video>

そうは言っても、<video>タグの実装はブラウザ固有です。 HTML 5の初期の頃なので、私は頻繁にサポートの変更(あるいはサポートの欠如)を期待しています。

W3CのHTML5仕様から( ビデオ要素 ):

ユーザーエージェントはどんなビデオとオーディオのコーデックとコンテナフォーマットもサポートするかもしれません

88
Stu Thompson

質問の精神は、本当に答えられませんでした。いいえ、現時点ではビデオタグを使用してrtspストリームを再生することはできません。 Chromiumの男の「しない」へのリンクに関するもう1つの答えは、リンクされたスレッド/答えが直接ビデオタグを介してChromeでrtspを再生しているのではないため、少し誤解を招く可能性があります。リンクされたスレッド全体、特に一番下のコメントと他のスレッドへのリンクを読んでください。

本当の答えはこれです:いいえ、あなたはhtml 5ページにビデオタグを付けてrtspを再生することはできません。ストリーミングビデオを再生するには、何らかの種類のJavascriptライブラリを使用する必要があります(フラッシュプレーヤーやSilverlightプレーヤーで再生したい場合を除く)。 {IMHO} html 5のビデオディスカッションと実装が進んでいる速度では、独自のビデオ規格を扱うさまざまなベンダはこの動きを手助けすることには興味がないので、ブラウザメーカーが約束しない限りビデオタグの使いやすさを約束してはいけません。どういうわけか問題を解決するために自分自身でそれを取る...再び、おそらくありません。{/ IMHO}

51
GolfARama

これは昔ながらのやり方ですが、私は最近自分でやらなければならなくなりました(私のような応答では少し時間が節約できるでしょう)。 PCMの基本型なので、次のようにしてください。

ffmpeg -v info -i rtsp://ip:port/h264.sdp -c:v copy -c:a copy -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 /var/www/html/test.m3u8

それから video.js with HLS plugin を使ってください。これはライブストリームをうまく再生します2番目のリンクの下にjsfiddleの例もあります)。

注:これはネイティブサポートではありませんが、ユーザーのフロントエンドで特別なことを必要としません。

23
Pawel K

ChromeはサポートRTSPストリーミングを決して実装しません。

少なくとも、Chromium開発者の言葉では ここ

これに対するサポートを追加するつもりはない

19
janesconference

HTML5には3つのストリーミングプロトコル/テクノロジがあります。

ライブストリーミング、低遅延 - WebRTC - Websocket

VODとライブストリーミング、高遅延 - HLS

1. WebRTC

実際、WebRTCはSRTP(secure RTP protocol)です。したがって、ビデオタグはWebRTCを介して間接的にRTP(SRTP)をサポートしていると言えます。

したがって、Chrome、Firefox、または他のHTML5ブラウザでRTPストリームを取得するには、SRTPストリームをブラウザに配信するWebRTCサーバーが必要です。

2. Websocket

これはTCPベースですが、HLSよりも待ち時間が短くなります。また、Websocketサーバーが必要です。

。HLS

VOD(録画済みビデオ)用の最も一般的な高遅延ストリーミングプロトコル。

14
ankitr

VLCでは、ライブRTSPストリーム(mpeg4)をOGGフォーマット(Vorbis/Theora)のHTTPストリームにトランスコードすることができます。品質は悪いですが、ビデオはChrome 9で動作します。また、WEBM(VP 8)でのトランスコーディングでテストしましたが、動作しないようです(VLCにはオプションがありますが、実際に実装されているかどうかわかりません)。 。)

これに関する文書を最初に持っている人は私達に知らせるべきです;)

8
molokoloco

ChromeはサポートRTSPストリーミングを実装していません。 WebRTCをチェックするための重要なプロジェクト。

「WebRTCは、シンプルなAPIを介してブラウザとモバイルアプリケーションにリアルタイムコミュニケーション(RTC)機能を提供する無料のオープンプロジェクトです」

サポートされているブラウザ:

Chrome、Firefox、およびOpera.

サポートされているモバイルプラットフォーム:

AndroidとIOS

http://www.webrtc.org/

1
vrbsm

HTML 5ビデオタグとrtsp(rtp)ストリームに関する私の観察は、それがkonqueror(KDE 4.4.1、Phonon-backendをGStreamerに設定)でのみ動作するということです。 H.264/AAC RTSP(RTP)ストリームを使用したビデオのみ(オーディオなし)が得られました。

http://media.esof2010.org/ からのストリームはkonqueror(KDE 4.4.1、Phonon-backendがGStreamerに設定されている)では動作しませんでした。

1
Renegah