{"id":1040,"date":"2023-08-16T19:39:25","date_gmt":"2023-08-16T11:39:25","guid":{"rendered":"https:\/\/www.fanyamin.com\/wordpress\/?p=1040"},"modified":"2023-08-16T22:02:39","modified_gmt":"2023-08-16T14:02:39","slug":"srs-with-webrtc","status":"publish","type":"post","link":"https:\/\/www.fanyamin.com\/wordpress\/?p=1040","title":{"rendered":"SRS with WebRTC"},"content":{"rendered":"<h1>1. RTMP to WebRTC<\/h1>\n<ul>\n<li>Start SRS with configuration - rtpm2rtc.conf\n<pre><code>CANDIDATE=&quot;192.168.1.10&quot;\ndocker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \\\n--env CANDIDATE=$CANDIDATE -p 8000:8000\/udp \\\nregistry.cn-hangzhou.aliyuncs.com\/ossrs\/srs:4 .\/objs\/srs -c conf\/rtmp2rtc.conf<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>use ffmpeg to push stream<\/p>\n<pre><code>docker run --rm -it registry.cn-hangzhou.aliyuncs.com\/ossrs\/srs:encoder ffmpeg -stream_loop -1 -re -i doc\/source.flv \\\n  -c copy -f flv rtmp:\/\/host.docker.internal\/live\/livestream<\/code><\/pre>\n<h1>2. WebRTC push and pull stream<\/h1>\n<pre><code>CANDIDATE=&quot;192.168.1.10&quot;\ndocker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 -p 1990:1990 -p 8088:8088 \\\n    --env CANDIDATE=$CANDIDATE -p 8000:8000\/udp \\\n    registry.cn-hangzhou.aliyuncs.com\/ossrs\/srs:4 .\/objs\/srs -c conf\/https.docker.conf<\/code><\/pre>\n<h1>Reference<\/h1>\n<ul>\n<li><a href=\"https:\/\/ossrs.net\/lts\/zh-cn\/docs\/v4\/doc\/webrtc\">https:\/\/ossrs.net\/lts\/zh-cn\/docs\/v4\/doc\/webrtc<\/a><\/li>\n<\/ul>\n<p>or<\/p>\n<pre><code>export CANDIDATE=&quot;192.168.1.10&quot;\ndocker run --rm --env CANDIDATE=$CANDIDATE \\\n  -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000\/udp \\\n  registry.cn-hangzhou.aliyuncs.com\/ossrs\/srs:4 \\\n  objs\/srs -c conf\/rtc.conf<\/code><\/pre>\n<p>Note: \u8bf7\u5c06CANDIDATE\u8bbe\u7f6e\u4e3a\u670d\u52a1\u5668\u7684\u5916\u7f51\u5730\u5740\uff0c\u8be6\u7ec6\u8bf7\u9605\u8bfbWebRTC: CANDIDATE\u3002<\/p>\n<p>\u6f14\u793a\uff0cWebRTC\u63a8\u6d41\u548c\u64ad\u653e\uff0c\u94fe\u63a5\uff1a<\/p>\n<ul>\n<li>WebRTC\u63a8\u6d41\uff1awebrtc:\/\/localhost\/live\/show<\/li>\n<li>WebRTC\u64ad\u653e\uff1awebrtc:\/\/localhost\/live\/show<\/li>\n<\/ul>\n<h1>Configuration<\/h1>\n<p>There are some config for WebRTC:<\/p>\n<ul>\n<li>full.conf: Section rtc_server and vhost rtc.vhost.srs.com is about WebRTC.<\/li>\n<li>rtc.conf: WebRTC to WebRTC clients.<\/li>\n<li>rtmp2rtc.conf: Covert RTMP to WebRTC.<\/li>\n<li>rtc2rtmp.conf: Covert WebRTC to RTMP.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>1. RTMP to WebRTC Start SRS with configuration &#8211; rtpm2rtc.conf CANDIDATE=&quot;192.168.1.10&quot; docker run &#8211;rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \\ &#8211;env CANDIDATE=$CANDIDATE -p 8000:8000\/udp \\ registry.cn-hangzhou.aliyuncs.com\/ossrs\/srs:4 .\/objs\/srs -c conf\/rtmp2rtc.conf use ffmpeg to push stream docker run &#8211;rm -it registry.cn-hangzhou.aliyuncs.com\/ossrs\/srs:encoder ffmpeg -stream_loop -1 -re -i doc\/source.flv \\ -c copy -f flv rtmp:\/\/host.docker.internal\/live\/livestream 2. WebRTC [&hellip;] <a class=\"read-more\" href=\"https:\/\/www.fanyamin.com\/wordpress\/?p=1040\" title=\"Permanent Link to: SRS with WebRTC\">&rarr;Read&nbsp;more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1040","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1040"}],"collection":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1040"}],"version-history":[{"count":4,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1040\/revisions"}],"predecessor-version":[{"id":1044,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1040\/revisions\/1044"}],"wp:attachment":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}