{"id":1243,"date":"2021-11-01T03:33:17","date_gmt":"2021-11-01T03:33:17","guid":{"rendered":"https:\/\/blog.laszlo.tw\/?p=1243"},"modified":"2021-11-03T23:49:48","modified_gmt":"2021-11-03T23:49:48","slug":"obs-srt-sever","status":"publish","type":"post","link":"https:\/\/blog.laszlo.tw\/?p=1243","title":{"rendered":"OBS with SRT Server"},"content":{"rendered":"\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/obsproject.com\/wiki\/Streaming-With-SRT-Protocol\" data-type=\"URL\" data-id=\"https:\/\/obsproject.com\/wiki\/Streaming-With-SRT-Protocol\" target=\"_blank\">OBS\u5b98\u65b9\u82f1\u6587SRT\u6559\u5b78<\/a><br>\u9700\u8981\u8edf\u9ad4Linux(WSL2)\u3001Docker desktop\u3001OBS<br>\u4ee5\u53ca\u8a2d\u5b9aWindows\u9632\u706b\u7246\u3001Modem\u8a2d\u5b9aPort Forwarding Input<br>port 1935 for SRT\u3001port 4444 for OBS websocket(\u53ef\u9078)<br>\u74b0\u5883\u8dd1\u5728WSL\u4e0b\uff0c\u90e8\u5206\u8edf\u9ad4\u7528Container\u57f7\u884c<\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">\u6574\u9ad4\u6d41\u7a0b\u5927\u81f4\u4e0a\u662f<\/h3>\n\n\n\n<p>\u5148\u628a\u756b\u9762\u4e32\u6d41\u900f\u904eSRT\u9001\u53bbSRT Server<br>OBS\u5247\u6703\u5f9eSRT Server\u62c9\u4e32\u6d41\u4e0b\u4f86\u8f38\u51fa\u7d66\u76f4\u64ad\u5e73\u53f0<br>NOALBS\u5247\u5f9e\u65c1\u908a\u76e3\u63a7bitrate\u72c0\u614b \uff0c \u4f9d\u64da\u60c5\u5f62\u900f\u904eOBS Websocket\u63a7\u5236\/\u5207\u63dbBRB\u5834\u666f<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">NOALBS\u5834\u666f\u5207\u63db<\/h3>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/Palakis\/obs-websocket\" target=\"_blank\">obs-websocket(Github)<\/a><br>\u5b89\u88dd\u5728obs\u76ee\u9304\u4e0b\u5f8c\uff0c\u4e0a\u65b9\u5de5\u5177\u9078\u55ae\u591a\u51fa<code>Websockets server setting<\/code><br><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/715209\/nginx-obs-automatic-low-bitrate-switching\" target=\"_blank\">NOALBS\u5834\u666f\u81ea\u52d5\u8f49\u63db(Github)<\/a><\/p>\n\n\n\n<p><code>apt install npm<\/code><br><code>npm install --production<\/code><br>\u8a2d\u5b9a<code>config.json<\/code><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">* OBS IP\u4e0d\u80fd\u4f7f\u7528localhost\u7591\u4f3cBUG?\n<strong>obs<\/strong>\nnormalScene          \u4e00\u822c\u5834\u666f\u540d\u7a31\uff0c___Scene\u4f9d\u6b64\u985e\u63a8\nhighRttTrigger       RTT\u89f8\u767cBRB\uff0cREADME\u8aaa\u6bd4bitrate\u6e96\u78ba\nrefreshSceneInterval \u91cd\u6574\u5834\u666f\u6642\u9593\nrequestMs            BRB\u5834\u666f\u5075\u6e2c\u8f49\u63db\u6642\u9593\n<strong>rtmp<\/strong>\n{\n        \"server\": \"srt-live-server\",\n        \"stats\": \"http:\/\/127.0.0.1:8181\/stats\",   \/\/stats\u9801\u9762\n        \"publisher\": \"publish\/live\/feed1\"         \/\/\u4f9d\u64dastreamid\n}\n<strong>twitchChat<\/strong>\nchannel              \u983b\u9053\u540d\u7a31\nbotUsername          \u6a5f\u5668\u4eba\u540d\u7a31\noauth                <a rel=\"noreferrer noopener\" href=\"https:\/\/twitchapps.com\/tmi\/\" target=\"_blank\">\u586b\u5165IRC token<\/a>\n<strong>language<\/strong>             \u53ef\u66ff\u63dbzh_tw\u986f\u793a\u4e2d\u6587<\/pre>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/715209\/nginx-obs-automatic-low-bitrate-switching#chat-commands\" data-type=\"URL\" data-id=\"https:\/\/github.com\/715209\/nginx-obs-automatic-low-bitrate-switching#chat-commands\" target=\"_blank\">\u53ef\u7528\u6307\u4ee4\u96c6<\/a><br>* \u5982\u679c\u8981\u7528!raid\/!host\uff0c\u8a18\u5f97\u8981\u628abot\u8a2d\u5b9a\u6210\u7de8\u8f2f\u8005<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">OBS\u7db2\u9801\u63a7\u5236(\u53ef\u9078)<\/h3>\n\n\n\n<p>\u7686\u4f9d\u64da\u4f7f\u7528\u88dd\u7f6e\u7db2\u8def\u74b0\u5883 \uff0c \u4f8b\u5982\u540c\u4e3b\u6a5f\u4e0b\u9023\u63a5localhost:4444<br>\u6545\u5f9e\u5916\u90e8\u63a7\u5236\u9700\u8981\u5c0d\u5916\u958b\u653eOBS websocket port \uff0c \u4e0d\u5efa\u8b70\u4f7f\u7528\u9810\u8a2d4444<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"http:\/\/obs-web.niek.tv\/\" target=\"_blank\">http:\/\/obs-web.niek.tv<\/a>\uff0c<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/Niek\/obs-web\" target=\"_blank\" data-type=\"URL\" data-id=\"https:\/\/github.com\/Niek\/obs-web\">Github<\/a><ul><li>\u767b\u5165\u8f38\u5165OBS IP:Port+OBS\u5bc6\u78bc<\/li><li>\u5834\u666f\u8f49\u63db\u53ca\u4e32\u6d41\u7e2e\u5716<\/li><\/ul><\/li><li><a rel=\"noreferrer noopener\" href=\"http:\/\/t2t2.github.io\/obs-tablet-remote\/#!auto&amp;port=7654\" target=\"_blank\">http:\/\/t2t2.github.io\/obs-tablet-remote<\/a>\uff0c<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/Palakis\/obs-websocket\" target=\"_blank\">Github<\/a><ul><li>\u591a\u529f\u80fd\u4e14\u53ef\u81ea\u8a02\u4ecb\u9762<\/li><li>\u4e0d\u542b\u7e2e\u5716<\/li><\/ul><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">SRT Server<\/h3>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/gitlab.com\/mattwb65\/srt-live-server\" target=\"_blank\">srt-live-server\u4fee\u6539\u7248\u672c (Gitlab)<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/hub.docker.com\/r\/b3ckontwitch\/sls-b3ck-edit\" target=\"_blank\">Docker image\u7248\u672c<\/a><\/p>\n\n\n\n<p>\u81ea\u884c\u4fee\u6539<code>sls.conf<\/code><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">listen           srt port\nlatency          \u5ef6\u9072\u6642\u9593\u4e0d\u5efa\u8b70\u592a\u5c0f\uff0c\u8981\u8ddfAPP\u4e00\u81f4 \nhttp_port 8181   http:\/\/127.0.0.1:8181\/stats bitrate\u6578\u64da\u7528\u4f86\u63a5\u81ea\u52d5\u8f49\u5834\ndomain_player    \u63a5\u6536\u81ea\u8a02\u540d\u7a31\ndomain_publisher \u63a8\u9001\u81ea\u8a02\u540d\u7a31\ndefault_sid      \u9810\u8a2d\u8def\u5f91\u5982\u679cAPP\u4e0d\u652f\u63f4streamid\nrecord_hls       \u662f\u5426\u5132\u5b58VOD\nrecord_hls_path_prefix VOD\u8def\u5f91<\/pre>\n\n\n\n<p><code>docker run --rm -d -p 1935:1935\/udp \\<\/code><br><code>-p 8181:8181\/tcp --name=srt --pull=always \\<\/code><br><code>-v \/custom_conf\/sls.conf:\/etc\/sls\/sls.conf b3ckontwitch\/sls-b3ck-edit<\/code><\/p>\n\n\n\n<p>APP\u63a8\u4e32\u6d41<br><code>srt:\/\/IP_ADDR:1935?streamid=domain_publisher_name\/live\/&lt;streamkey><\/code><br>OBS\u65b0\u589e\u5a92\u9ad4\u4f86\u6e90\u62c9\u4e32\u6d41<br><code>srt:\/\/IP_ADDR:1935?streamid=domain_player_name\/live\/&lt;streamkey><\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5be6\u6cc1APP<\/h3>\n\n\n\n<p>\u7528<code>larix broadcaster<\/code>\u6216\u5176\u4ed6\u652f\u63f4SRT\u5354\u5b9aAPP<br>Connections\u65b0\u589e\u4e0a\u8ff0\u624b\u6a5f\u63a8\u4e32\u6d41\u81f3URL<br><code>srt:\/\/IP_ADDR:1935<\/code>\u4ee5\u53ca<code>streamid<\/code><br>* APP Mode\u53ef\u4ee5\u8a2d\u5b9a\u50c5\u9650\u97f3\u6e90\/bitrate\u4e0a\u9650<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u555f\u52d5\u6d41\u7a0b<\/h3>\n\n\n\n<ol class=\"wp-block-list\"><li>\u555f\u52d5SRT Server<\/li><li>\u555f\u52d5OBS\u7b49\u5f85Websocket\u9023\u63a5<\/li><li>\u555f\u52d5NOALBS\u78ba\u8a8dBOT\/OBS\u9023\u63a5\u6b63\u5e38<\/li><li>\u555f\u52d5\u5be6\u6cc1APP\u78ba\u8a8d\u4e32\u6d41\u9023\u63a5\u6b63\u5e38<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Q &amp; A<\/h3>\n\n\n\n<p>Q: \u70ba\u4ec0\u9ebc\u9700\u8981\u7528\u5230SRT Server?<br>A: OBS\u53ef\u4ee5\u76f4\u63a5\u7576srt listener\u63a5\u4e32\u6d41\uff0c\u4f46\u5982\u679c\u8981\u81ea\u52d5\u8f49\u5834\u9700\u8981stats\u9801\u9762\u4f86\u53d6\u5f97\u7576\u524dbitrate<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u6e2c\u8a66RTMP\u5354\u5b9a\u7528<\/h3>\n\n\n\n<p><code>docker run -p 1935:1935 -p 8080:8080 -e RTMP_STREAM_NAMES=live \\<\/code><br><code>--rm --pull=always --name rtmp -d jasonrivers\/nginx-rtmp<\/code><br><code>http:\/\/127.0.0.1:8080\/stat<\/code> bitrate\u6578\u64da\u7528\u4f86\u63a5\u81ea\u52d5\u8f49\u5834 <br>APP\u63a8\u4e32\u6d41 <br><code>rtmp:\/\/IP_ADDR:1935\/live\/&lt;streamkey&gt;<\/code><br>OBS\u65b0\u589e\u5a92\u9ad4\u4f86\u6e90\u62c9\u4e32\u6d41<br><code>rtmp:\/\/IP_ADDR:1935\/live\/&lt;streamkey&gt;<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>OBS\u5b98\u65b9\u82f1\u6587SRT\u6559\u5b78\u9700\u8981\u8edf\u9ad4Linux(WSL<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/blog.laszlo.tw\/?p=1243\">\u95b1\u8b80\u5168\u6587<span class=\"screen-reader-text\">OBS with SRT Server<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[14],"tags":[106,101,105,102,95,104,103],"class_list":["post-1243","post","type-post","status-publish","format-standard","hentry","category-linux","tag-docker","tag-obs","tag-server","tag-srt","tag-twitch","tag-104","tag-103","entry"],"_links":{"self":[{"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=\/wp\/v2\/posts\/1243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1243"}],"version-history":[{"count":116,"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=\/wp\/v2\/posts\/1243\/revisions"}],"predecessor-version":[{"id":1398,"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=\/wp\/v2\/posts\/1243\/revisions\/1398"}],"wp:attachment":[{"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.laszlo.tw\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}