Más contenido relacionado La actualidad más candente (20) Similar a FIWARE Real-Time Media Stream processing using Kurento (20) FIWARE Real-Time Media Stream processing using Kurento1. Real-Time Media Stream processing using Kurento
Juan Navarro Moreno
Kurento Software Developer
jnavarro@naevatec.com
github.com/j1elo
www.kurento.org
(Translated into Japanese by Kazuhito Suda k@fisuda.jp)
9. https://apple.openvidu.io/files/kurento.pdf
概要 – Kurento はどのように機能しますか?
サーバは RPC API で制御されます
クライアント・アプリケーションは、この API を通じてエンドポイントとフィル
タを操作します
Java, Node.js, ブラウザ内の JavaScript 用の既製のクライアント SDK
実世界アプリケーションのコンポーネント :
Kurento Media Server
クライアント・アプリケーションも通常はサーバー
ユーザ・インターフェイス一般的なケースは Web ページです
14. https://apple.openvidu.io/files/kurento.pdf
KMS エレメント (KMS Elements)
異なるニーズためのさまざなエンドポイント :
WebRtcEndpoint – WebRTC 標準の完全サポート
現在 Chrome および Firefox と互換性があります。Safari と Edge は作業中
です
すべての WebRTC 語彙: SDP, (Trickle-)ICE, STUN, TURN, Google REMB
RtpEndpoint – RTP および SRTP ストリーム用
ICE の代わりにポート自動検出をサポートしています
HttpEndpoint – GET/POST リクエストを受け入れます。たとえば、KMS への
ファイルアップロード
27. https://apple.openvidu.io/files/kurento.pdf
SDP Offer/Answer
v=0
o=- 0 0 IN IP4 127.0.0.1
s=-
c=IN IP4 127.0.0.1
t=0 0
m=audio 9 RTP/AVPF 96
a=rtpmap:96 opus/48000/2
a=sendonly
a=direction:active
a=ssrc:445566 cname:user@example.com
m=video 9 RTP/AVPF 103
a=rtpmap:103 H264/90000
a=sendonly
a=direction:active
a=ssrc:112233 cname:user@example.com
v=0
o=- 372 372 IN IP4 192.168.1.15
s=Kurento Media Server
c=IN IP4 192.168.1.15
t=0 0
m=audio 41654 RTP/AVPF 96
a=rtpmap:96 opus/48000/2
a=recvonly
a=direction:passive
a=ssrc:3224 cname:user225@host-9b2
m=video 61134 RTP/AVPF 103
a=rtpmap:103 H264/90000
a=recvonly
a=direction:passive
a=ssrc:2717 cname:user225@host-9b2
SDP Offer to RtpEndpoint: SDP Answer from RtpEndpoint:
30. https://apple.openvidu.io/files/kurento.pdf
アプリケーション例 : RTP Player
void start(String browserSdpOffer)
{
// Create and link Endpoints
MediaPipeline pipeline = kurento.createMediaPipeline();
RtpEndpoint rtpEndpoint = new RtpEndpoint.Builder(pipeline).build();
WebRtcEndpoint webRtcEndpoint = new WebRtcEndpoint.Builder(pipeline).build();
rtpEndpoint.connect(webRtcEndpoint);
// Configure the RtpEndpoint
String fakeSdpOffer = "...";
String kmsSdpAnswer = rtpEndpoint.processOffer(fakeSdpOffer);
String browserSdpAnswer = webRtcEndpoint.processOffer(browserSdpOffer);
webRtcEndpoint.gatherCandidates();
}
32. https://apple.openvidu.io/files/kurento.pdf
アプリケーション例 : Magic Mirror
void start()
{
// Create and link Endpoints, Filters
MediaPipeline pipeline = kurento.createMediaPipeline();
WebRtcEndpoint webRtcEndpoint = new WebRtcEndpoint.Builder(pipeline).build();
FaceOverlayFilter faceOverlayFilter =
new FaceOverlayFilter.Builder(pipeline).build();
faceOverlayFilter.setOverlayedImage("mario-hat.png");
webRtcEndpoint.connect(faceOverlayFilter);
faceOverlayFilter.connect(webRtcEndpoint);
webRtcEndpoint.gatherCandidates();
}