{"id":280,"date":"2023-11-05T14:45:23","date_gmt":"2023-11-05T06:45:23","guid":{"rendered":"https:\/\/bk.avfun.eu.org\/?p=280"},"modified":"2023-11-05T14:45:24","modified_gmt":"2023-11-05T06:45:24","slug":"docker%e9%83%a8%e7%bd%b2kplayer%ef%bc%8c%e5%ae%9e%e7%8e%b024%e5%b0%8f%e6%97%b6%e6%97%a0%e4%ba%ba%e7%9b%b4%e6%92%adb%e7%ab%99%e3%80%81%e6%96%97%e9%b1%bc%e3%80%81%e8%99%8e%e7%89%99%e7%ad%89","status":"publish","type":"post","link":"https:\/\/bk.avfun.eu.org\/?p=280","title":{"rendered":"Docker\u90e8\u7f72KPlayer\uff0c\u5b9e\u73b024\u5c0f\u65f6\u65e0\u4eba\u76f4\u64ad(B\u7ad9\u3001\u6597\u9c7c\u3001\u864e\u7259\u7b49)"},"content":{"rendered":"<pre>\u524d\u8a00\r\n\u6700\u8fd1\u6709\u670d\u52a1\u5668\u8d44\u6e90\u95f2\u7f6e\u8d77\u6765\u4e86\uff0c\u611f\u89c9\u5f88\u6d6a\u8d39\uff0c\u60f3\u628a\u5b83\u5229\u7528\u8d77\u6765\uff0c\u800c\u4e14\u81ea\u5df1\u6536\u85cf\u7684\u201c\u7535\u5f71\u201d\ud83c\udf9e\u7b49\u8d44\u6e90\u4e5f\u6bd4\u8f83\u591a\uff08\u5c0f\u5fc3\u4fb5\u6743\uff09\uff0c\u6240\u4ee5\u51c6\u5907\u641e\u4e2a\u76f4\u64ad\u73a9\u4e00\u73a9\u3002\r\n\r\n\u51c6\u5907\u76f4\u63a5\u7528\u670d\u52a1\u5668\u8fdb\u884c\u76f4\u64ad\u63a8\u6d41\uff0c\u8fd9\u6837\u80fd\u4fdd\u8bc124\u5c0f\u65f6\u65e0\u4eba\u76f4\u64ad\uff08\u771f\u4eba24\u5c0f\u65f6\u76f4\u64ad\u90a3\u4e0d\u5f97\u7d2f\u6b7b\uff09\u3002\r\n\r\n\u53ef\u4ee5\u70b9\u51fb\u94fe\u63a5\u53bb\u5230\u6211\u7684\u76f4\u64ad\u95f4\ud83c\udfa5\ud83d\udd1e\uff0c\u6b22\u8fce\u5927\u5bb6\u5149\u4e34\ud83c\udf7f\ud83d\ude0f\r\n\r\n\u76ee\u524d\u7f51\u4e0a\u76f4\u64ad\u63a8\u6d41\u7684\u5de5\u5177\u4e5f\u6709\u5f88\u591a\uff0c\u5bf9\u6bd4\u4e86\u4e00\u4e0b\uff0c\u6700\u7ec8\u9009\u62e9\u4e86 KPlayer \uff0c\u56e0\u4e3a\u642d\u5efa\u548c\u4f7f\u7528\u8d77\u6765\u975e\u5e38\u7b80\u5355\uff0c\u800c\u4e14\u6587\u6863\u4e5f\u6bd4\u8f83\u9f50\u5168\u3002\r\n\r\n\u51c6\u5907\u5de5\u4f5c\r\n\u53ef\u4ee5\u7528 Docker \u7684\u65b9\u5f0f\u8fdb\u884c\u642d\u5efa\uff0c\u5982\u679c\u4e0d\u7528 Docker \u7684\u8bdd\uff0c\u53ef\u76f4\u63a5\u53c2\u8003 KPlayer \u6587\u6863\u8fdb\u884c\u642d\u5efa\uff0c\u4e5f\u975e\u5e38\u7b80\u5355\u3002\u5176\u5b9e\u8be5\u9879\u76ee\u4e0d\u7528 Docker \u7684\u65b9\u5f0f\u53cd\u800c\u53d8\u7684\u7b80\u5355\u3002\r\n\r\n\u670d\u52a1\u5668\uff0c\u56fd\u5185\u3001\u56fd\u5916\u670d\u52a1\u5668\u5747\u53ef\r\n\u670d\u52a1\u5668\u9700\u5b89\u88c5docker\u3001docker-compose\u73af\u5883\uff0c\u6ca1\u5b89\u88c5\u7684\u53ef\u53c2\u8003\u6587\u7ae0 - docker\u3001docker-compose\u5b89\u88c5\r\nGitHub\u5730\u5740\uff1ahttps:\/\/github.com\/bytelang\/kplayer-go\r\nDocker\u955c\u50cf\u5730\u5740\uff1ahttps:\/\/hub.docker.com\/r\/bytelang\/kplayer\r\nKPlayer\u6587\u6863\uff1ahttps:\/\/docs.kplayer.net\r\nB\u7ad9\u3001\u6597\u9c7c\u3001\u864e\u7259\u7b49\u76f4\u64ad\u5e73\u53f0\u8d26\u53f7\r\n\u642d\u5efa\u65b9\u5f0f\r\n\u521b\u5efa\u76ee\u5f55\r\n\/\/ \u5b58\u653e\u89c6\u9891\u6587\u4ef6\r\nmkdir -p \/root\/docker_data\/kplayer\/video\r\n\r\n\/\/ \u5b58\u653e\u64ad\u653e\u65f6\u7684\u7f13\u5b58\u6570\u636e\r\nmkdir -p \/root\/docker_data\/kplayer\/cache\r\n\r\ncd \/root\/docker_data\/kplayer\r\n\u4e0a\u4f20\u89c6\u9891\r\n\u628a\u4f60\u60f3\u8981\u76f4\u64ad\u7684\u89c6\u9891\u4e0a\u4f20\u5230 \/root\/docker_data\/kplayer\/video \u6587\u4ef6\u5939\u4e0b\u9762\r\n\r\n\u83b7\u53d6\u76f4\u64ad\u63a8\u6d41\u5730\u5740\r\n\u8fd9\u8fb9\u4ee5 B\u7ad9 \u4e3a\u4f8b\uff0c\u5176\u4ed6\u5e73\u53f0\u5927\u540c\u5c0f\u5f02\r\n\r\n\u8fdb\u5165\u3010B\u7ad9\u3011 -&gt; \u70b9\u51fb\u3010\u76f4\u64ad\u3011 -&gt; \u70b9\u51fb\u3010\u5f00\u64ad\u8bbe\u7f6e\u3011 -&gt; \u9009\u62e9\u5206\u7c7b\uff0c\u70b9\u51fb\u3010\u5f00\u59cb\u76f4\u64ad\u3011(\u9700\u8981\u5b9e\u540d\u8eab\u4efd\u8bc1\u8ba4\u8bc1) -&gt; \u83b7\u53d6\u3010\u670d\u52a1\u5668\u5730\u5740\u3011\u548c\u3010\u4e32\u6d41\u5bc6\u94a5\u3011\r\n\r\n\u3010\u670d\u52a1\u5668\u5730\u5740\u3011+\u3010\u4e32\u6d41\u5bc6\u94a5\u3011\u5c31\u662f\u63a8\u6d41\u7684\u5730\u5740\uff0c\u683c\u5f0f\uff1artmp:\/\/live-push.bilivideo.com\/live-bvc\/?streamname=live_******_******&amp;key=**************&amp;schedule=rtmp&amp;pflag=1\r\n\r\n\u521b\u5efa\u6587\u4ef6\r\n\u5728 \/root\/docker_data\/kplayer \u6587\u4ef6\u5939\u4e0b\u9762\u65b0\u5efaKPlayer\u914d\u7f6e config.json \u6587\u4ef6\u5982\u4e0b\uff08\u628a\u6ce8\u91ca\u5220\u6389\uff09\uff1a\r\n\r\n{\r\n  \"version\": \"2.0.0\",\r\n  \"resource\": {\r\n    # \u5bb9\u5668\u4e2d\u5b58\u653e\u89c6\u9891\u7684\u6587\u4ef6\u5939\uff0c\u53ef\u6839\u636e docker-compose.yml \u4e2d\u7684\u914d\u7f6e\u8fdb\u884c\u4fee\u6539\r\n    \"lists\": [\"\/video\"],\r\n    # \u8fc7\u6ee4\u5141\u8bb8\u64ad\u653e\u7684\u6587\u4ef6\u7c7b\u578b\uff0c\u5982mp4\u3001flv\u7b49\r\n    \"extensions\": []\r\n  },\r\n  \"output\": {\r\n    \"lists\": [\r\n      {\r\n        # \u63a8\u6d41\u5730\u5740\r\n        \"path\": \"rtmp:\/\/live-push.bilivideo.com\/live-bvc\/?streamname=live_******_******&amp;key=**************&amp;schedule=rtmp&amp;pflag=1\"\r\n      }\r\n    ],\r\n    \"reconnect_internal\": 5\r\n  },\r\n  \"play\": {\r\n    \"fill_strategy\": \"ratio\",\r\n    \"skip_invalid_resource\": true,\r\n    # \u542f\u7528\u63a8\u6d41\u7f16\u7801\u7f13\u5b58\uff0c\u4f1a\u751f\u6210\u7f13\u5b58\uff0c\u547d\u4e2d\u7f13\u5b58\u8282\u7ea6CPU\u8d44\u6e90\r\n    \"cache_on\": true,\r\n    # \u64ad\u653e\u6a21\u5f0f\uff0c\u76ee\u524d\u4e3a\u6309\u987a\u5e8f\u4e14\u5faa\u73af\u64ad\u653e\uff0c\u5176\u4ed6\u53c2\u6570\u8bf7\u53c2\u8003KPlayer\u6587\u6863\r\n    \"play_model\": \"loop\"\r\n  }\r\n}\r\n\u5728 \/root\/docker_data\/kplayer \u6587\u4ef6\u5939\u4e0b\u9762\u65b0\u5efa docker-compose.yml \u6587\u4ef6\u5982\u4e0b\uff1a\r\n\r\nversion: \"3.3\"\r\nservices:\r\n  kplayer:\r\n    container_name: kplayer\r\n    volumes:\r\n      - \"\/root\/docker_data\/kplayer\/video:\/video\"\r\n      - \"\/root\/docker_data\/kplayer\/config.json:\/kplayer\/config.json\"\r\n      - \"\/root\/docker_data\/kplayer\/cache:\/kplayer\/cache\"\r\n    restart: always\r\n    image: \"bytelang\/kplayer\"\r\n\u8fd0\u884cyml\u6587\u4ef6\r\n\u8fdb\u5165 \/root\/docker_data\/kplayer \u6587\u4ef6\u5939\u4e0b\u9762\uff0c\u8fd0\u884c\u547d\u4ee4\uff1adocker-compose up -d\r\n\r\n\u6216\u8005\u5728\u4efb\u610f\u6587\u4ef6\u5939\u4e0b\u9762\uff0c\u8fd0\u884c\u547d\u4ee4\uff1adocker-compose -f \/root\/docker_data\/kplayer\/docker-compose.yml up -d\r\n\r\n\u7136\u540e\u670d\u52a1\u5c31\u8dd1\u8d77\u6765\u4e86\uff0c\u8fd0\u884c docker ps \u80fd\u67e5\u770b\u5230\u542f\u52a8\u7684\u5bb9\u5668\u4e86\u3002\r\n\r\n\u6267\u884c\u547d\u4ee4 docker logs kplayer \u67e5\u770b\u65e5\u5fd7\uff0c\u5982\u679c\u770b\u5230\u4e0b\u9762\u65e5\u5fd7\u5c31\u8868\u793a\u6210\u529f\u4e86\uff1a\r\n\r\ntime=\"2023-10-21 07:15:41\" level=warning msg=\"open terminal failed\" file=\"cmd\/root.go:35\"\r\nkplayer for golang v0.5.8 Copyright(c) 2019-2023 the ByteLang Studio (https:\/\/kplayer.bytelang.cn)\r\n  libkplayer version: v1.5.4-1-ge0cab16 plugin version: 1.5.1 license version: v1 \r\n  toolchains GNU(10.3.1) C++ Standard 17 on Linux-x86_64-6.0.2-arch1-1\r\n  build with build-chains cmake(3.21.3) type with Release\r\n  Hope you have a good experience.\r\n-------------------------------------------------------------------------------------------------------------------\r\ntime=\"2023-10-21 07:15:41\" level=info msg=\"resource download success\" name=default path=resource\/font.ttf\r\ntime=\"2023-10-21 07:15:41\" level=info msg=\"resource initialization success\" name=default type=font\r\ntime=\"2023-10-21 07:15:41\" level=info msg=\"grpc server listening\" address=127.0.0.1 port=4155 token=false\r\ntime=\"2023-10-21 07:15:41\" level=info msg=\"http server listening\" address=127.0.0.1 port=4156 token=false\r\ntime=\"2023-10-21 07:15:42\" level=info msg=\"core start up success\"\r\ntime=\"2023-10-21 07:15:42\" level=info msg=\"kplayer start success\"\r\ntime=\"2023-10-21 07:15:42\" level=info msg=\"output add success\" path=\"rtmp:\/\/live-push.bilivideo.com\/live-bvc\/?streamname=live_******_******&amp;key=**************&amp;schedule=rtmp&amp;pflag=1\" unique=N3uAJf\r\ntime=\"2023-10-21 07:15:42\" level=info msg=\"checked play resource\" duration=2621 end=-1 hit_cache=false path=\/video\/xxx_01.mkv seek=0 type=resource_input_type_single unique=IBzmqu\r\n\u8bbf\u95ee\u76f4\u64ad\u95f4\u5730\u5740\r\n\u4e4b\u540e\u8bbf\u95ee\u4f60\u7684\u76f4\u64ad\u95f4\u5730\u5740\uff0c\u5c31\u53ef\u4ee5\u770b\u5230\u5df2\u7ecf\u5728\u6b63\u5e38\u76f4\u64ad\u4e86\u3002\r\n\r\n\u89c6\u9891\u94fe\u63a5\r\nYouTube\uff1ahttps:\/\/www.youtube.com\/watch?v=Cj6kdpwP0tg\r\nBilibili\uff1ahttps:\/\/www.bilibili.com\/video\/BV1ZG411y7k4<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00 \u6700\u8fd1\u6709\u670d\u52a1\u5668\u8d44\u6e90\u95f2\u7f6e\u8d77\u6765\u4e86\uff0c\u611f\u89c9\u5f88\u6d6a\u8d39\uff0c\u60f3\u628a &hellip;<\/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-280","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=280"}],"version-history":[{"count":1,"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/280\/revisions"}],"predecessor-version":[{"id":281,"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/280\/revisions\/281"}],"wp:attachment":[{"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bk.avfun.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}