{
  "version": "https://jsonfeed.org/version/1", 
  "title": "\u89c6\u9891\u6280\u672f", 
  "description": "\u5173\u4e8e\u89c6\u9891\u5236\u4f5c\uff0c\u8f6c\u7801\uff0c\u76f4\u64ad\u7684\u6280\u672f\u8ba8\u8bba", 
  "home_page_url": "https://www.v2ex.com/go/video", 
  "feed_url": "https://www.v2ex.com/feed/video.json", 
  "icon": "https://cdn.v2ex.com/navatar/285e/19f2/503_large.png?m=1589320132", 
  "favicon": "https://cdn.v2ex.com/navatar/285e/19f2/503_normal.png?m=1589320132", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/jiangbingo", 
        "name": "jiangbingo", 
        "avatar": "https://cdn.v2ex.com/avatar/b389/12d1/169412_large.png?m=1770276536"
      }, 
      "url": "https://www.v2ex.com/t/1190958", 
      "title": "\u6c42\u52a9\u89c6\u9891 AI \u7f16\u8f91", 
      "id": "https://www.v2ex.com/t/1190958", 
      "date_published": "2026-02-05T07:32:04+00:00", 
      "content_html": "<p>\u76ee\u524d\u90fd\u662f\u6587\u751f\u56fe\u6216\u8005\u56fe\u751f\u89c6\u9891\uff0c\u6709\u6ca1\u6709\u76f4\u63a5\u5bf9\u89c6\u9891\u8fdb\u884c\u4eba\u7269\u66ff\u6362\u7684 AI \u5de5\u5177\uff1f</p>\n<p><a href=\"https://imgur.com/a/Sjpri3f\" rel=\"nofollow\">https://imgur.com/a/Sjpri3f</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Kelly00", 
        "name": "Kelly00", 
        "avatar": "https://cdn.v2ex.com/avatar/8673/5719/763053_large.png?m=1771843520"
      }, 
      "url": "https://www.v2ex.com/t/1172843", 
      "date_modified": "2025-11-14T08:24:08+00:00", 
      "content_html": "<p>\u6700\u8fd1\u8fd9\u6bb5\u65f6\u95f4\u56e0\u4e3a\u5728\u7814\u7a76\u77ed\u89c6\u9891\u8425\u9500\uff0c\u987a\u4fbf\u4e5f\u53bb\u8bd5\u4e86\u4e0d\u5c11 AI \u89c6\u9891\u751f\u6210\u5de5\u5177\uff0c\u53d1\u73b0\u4e00\u4e2a\u5f88\u6709\u610f\u601d\u7684\u73b0\u8c61\uff1a\n\u7edd\u5927\u591a\u6570\u89c6\u9891\u6a21\u578b\u7684\u201c\u80fd\u529b\u201d\u5176\u5b9e\u4e0d\u9519\uff0c\u4f46\u771f\u6b63\u80fd\u7528\u4e8e\u5546\u4e1a\u6216\u8005\u7535\u5546\u573a\u666f\u7684\uff0c\u53cd\u800c\u975e\u5e38\u5c11\u3002</p>\n<p>\u539f\u56e0\u5927\u6982\u6709\u51e0\u4e2a\uff1a\n1.\u751f\u6210\u65f6\u95f4\u592a\u957f\uff0c\u968f\u4fbf\u4e00\u6b21\u5c31\u662f 2 \uff5e 5 \u5206\u949f\u3002\n2.\u53ea\u80fd\u505a 2 \uff5e 3 \u79d2\u7684\u5355\u955c\u5934\uff0c\u6ca1\u529e\u6cd5\u505a\u6545\u4e8b\u3002\n3.\u6709\u6c34\u5370\u4e0d\u80fd\u5546\u7528\u3002\n4.\u5f88\u591a\u5730\u533a\u76f4\u63a5\u6253\u4e0d\u5f00\uff0c\u8981\u7b49\u9080\u8bf7\u7801\u3002\n5.\u7535\u5546\u76f8\u5173\u7684\u201c\u4ea7\u54c1\u624b\u6301\u3001\u5c55\u793a\u3001\u751f\u6d3b\u573a\u666f\u201d\u6a21\u578b\u4e0d\u592a\u7a33\u5b9a\u3002</p>\n<p>\u6211\u548c\u51e0\u4e2a\u505a TikTok Shop \u7684\u670b\u53cb\u804a\u4e4b\u540e\uff0c\u4ed6\u4eec\u6700\u5934\u75bc\u7684\u5176\u5b9e\u4e0d\u662f\u201c\u6a21\u578b\u6548\u679c\u591a\u597d\u201d\uff0c\u800c\u662f\uff1a\u6709\u6ca1\u6709 \u5e72\u51c0\u3001\u53ef\u76f4\u63a5\u7528 \u7684\u89c6\u9891\uff1f\u80fd\u4e0d\u80fd\u4e00\u952e\u751f\u6210 20 \u79d2\u4ee5\u4e0a\uff1f\u4ea7\u54c1\u80fd\u4e0d\u80fd\u5728\u4e0d\u540c\u955c\u5934\u91cc\u4fdd\u6301\u4e00\u81f4\uff1f\u6709\u6ca1\u6709\u7b80\u5355\u7684\u201c\u4ea7\u54c1\u5c55\u793a\u6a21\u677f\u201d\uff1f\u7ed3\u679c\u8fd9\u7c7b\u9700\u6c42\u53cd\u800c\u662f\u73b0\u6709\u5de5\u5177\u6700\u8584\u5f31\u7684\u5730\u65b9\u3002\u56e0\u4e3a\u597d\u5947\uff0c\u6211\u5c31\u5c1d\u8bd5\u81ea\u5df1\u5199\u4e86\u4e00\u4e2a demo \uff0c\u60f3\u770b\u770b\u80fd\u4e0d\u80fd\u505a\u51fa\u4e00\u4e2a\u81f3\u5c11\u80fd\u7528\u7684\u7248\u672c\uff1a\n1.\u5355\u955c\u5934 10 \u79d2\u89c6\u9891\n2.\u7b80\u5355\u7684\u591a\u955c\u5934\uff08 25 \u79d2\uff09 storyboard\n3.\u56fe\u751f\u89c6\u9891\uff1a\u628a\u5546\u54c1\u56fe\u8f6c\u6210\u4e00\u4e2a\u751f\u6d3b\u7c7b\u77ed\u7247\n4.\u5c3d\u91cf\u4e0d\u8ba9\u4eba\u7269\u3001\u4ea7\u54c1\u5728\u4e0d\u540c\u955c\u5934\u53d8\u6765\u53d8\u53bb</p>\n<p>\u671f\u95f4\u8e29\u4e86\u5f88\u591a\u5751\uff0c\u5305\u62ec\uff1a\n1.prompt \u62c6\u5e27\u4f1a\u4e71\u8dd1\n2.\u955c\u5934\u5207\u6362\u4f1a\u6296\n3.\u4eba\u7269\u80a4\u8272\u3001\u8863\u670d\u4e00\u81f4\u6027\u96be\u63a7\u5236\n4.\u6a21\u677f\u96be\u8bbe\u8ba1\uff08\u7535\u5546\u573a\u666f\u6bd4\u60f3\u8c61\u4e2d\u590d\u6742\uff09\n5.\u6a21\u578b\u6311 prompt \uff0c\u5f88\u201c\u6311\u98df\u201d\n\u4e0d\u8fc7\u6298\u817e\u4e0b\u6765\u4e4b\u540e\uff0c\u81f3\u5c11\u80fd\u8dd1\u8d77\u6765\u4e86\u3002\u6211\u628a\u5b83\u653e\u5728 <a href=\"http://Saro2.ai\" rel=\"nofollow\">Saro2.ai</a> \u8fd9\u4e2a\u57df\u540d\u4e0a\uff0c\u7b97\u662f\u4e00\u4e2a\u534a\u5b9e\u9a8c\u6027\u8d28\u7684\u5c0f\u5de5\u5177\u3002\u4e0d\u662f\u5f00\u6e90\u7684\uff0c\u9700\u8981\u767b\u5f55\uff08\u4e3a\u4e86\u9632\u6ee5\u7528 + \u63a7\u5236\u7b97\u529b\uff09\uff0c\u4e0d\u8fc7\u5df2\u7ecf\u80fd\u7528\u3002</p>\n<p>\u5206\u4eab\u51e0\u4e2a\u8ba9\u6211\u89c9\u5f97\u201cAI \u89c6\u9891\u6bd4\u60f3\u8c61\u4e2d\u66f4\u96be\u201d\u7684\u70b9</p>\n<ol>\n<li>\u89c6\u9891\u6700\u96be\u7684\u662f\u201c\u7a33\u5b9a\u201d\uff0c\u4e0d\u662f\u753b\u8d28\n\u753b\u8d28\u73b0\u5728\u7684\u6a21\u578b\u90fd\u4e0d\u5dee\uff0c\u4f46\u7a33\u5b9a\u6027\u624d\u51b3\u5b9a\u80fd\u4e0d\u80fd\u7528\u6765\u5356\u8d27\u3002</li>\n<li>\u591a\u955c\u5934\u6bd4\u5355\u955c\u5934\u96be\u4e00\u4e2a\u6b21\u5143\n\u56e0\u4e3a\u955c\u5934\u4e4b\u95f4\u7684\u201c\u8fde\u8d2f\u201d\u5b8c\u5168\u662f pipeline \u505a\u51fa\u6765\u7684\uff0c\u800c\u4e0d\u662f\u6a21\u578b\u61c2\u7684\u3002</li>\n<li>prompt \u5de5\u7a0b\u771f\u7684\u975e\u5e38\u7384\u5b66\n\u5b57\u591a\u4e86\u4e0d\u884c\uff0c\u5b57\u5c11\u4e86\u4e5f\u4e0d\u884c\uff0c\u6709\u65f6\u5019\u975e\u5e38\u597d\u7684\u6548\u679c\u53ea\u662f\u968f\u673a\u79cd\u5b50\u5e78\u8fd0\u3002</li>\n<li>\u505a\u5546\u5bb6\u89c6\u9891\u6bd4\u505a\u521b\u610f\u89c6\u9891\u96be\u592a\u591a</li>\n</ol>\n<p>\u56e0\u4e3a\u5fc5\u987b\u8981\uff1a\u771f\u5b9e\u3001\u4e0d\u8df3\u5e27\u3001\u4e0d\u53d8\u5f62\u3001\u4ea7\u54c1\u4e0d\u80fd\u4e71\u6539\u3001\u4e0d\u80fd\u4e71\u52a0\u5947\u602a\u4e1c\u897f\u3001\u6a21\u578b\u5f88\u5bb9\u6613\u201c\u53d1\u6325\u521b\u9020\u529b\u201d\uff0c\u4f46\u5546\u5bb6\u8981\u7684\u662f\u201c\u4e0d\u8981\u53d1\u6325\u201d\u3002\u6211\u89c9\u5f97 AI \u89c6\u9891\u8fd9\u4e2a\u65b9\u5411\u4f1a\u8d8a\u6765\u8d8a\u201c\u5de5\u5177\u5316 / \u573a\u666f\u5316\u201d\uff0c\u771f\u6b63\u597d\u7528\u7684\u5de5\u5177\u672a\u5fc5\u662f\u6700\u5f3a\u6a21\u578b\uff0c\u800c\u662f\u6700\u61c2\u5546\u4e1a\u4f7f\u7528\u573a\u666f\u7684\u3002</p>\n<p>\u6709\u5728\u505a TikTok Shop \u3001Shopify \u5546\u54c1\u89c6\u9891\u3001UGC \u3001AI \u751f\u6210\u89c6\u9891\u3001\u89c6\u9891\u5de5\u5177\u63d2\u4ef6\u3001\u6b22\u8fce\u7559\u8a00\u4ea4\u6d41\u4e0b\u7ecf\u9a8c\u3002</p>\n<p>\u5982\u679c\u60f3\u770b\u770b\u6211\u4e0a\u9762\u8bf4\u7684\u90a3\u4e2a demo \uff0c\u8fd9\u91cc\uff1a<a href=\"http://Saro2.ai\" rel=\"nofollow\">Saro2.ai</a> \uff08\u4e00\u4e2a\u6211\u81ea\u5df1\u505a\u7684\u5c0f\u7684\u5b9e\u9a8c\u7ad9\uff09</p>\n", 
      "date_published": "2025-11-14T08:22:04+00:00", 
      "title": "Update \u6700\u8fd1\u6298\u817e AI \u89c6\u9891\u751f\u6210\u7684\u4e00\u4e9b\u5fc3\u5f97\uff08\u987a\u4fbf\u5206\u4eab\u4e0b\u6211\u505a\u7684\u5c0f\u5de5\u5177\uff09", 
      "id": "https://www.v2ex.com/t/1172843"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chenY520", 
        "name": "chenY520", 
        "avatar": "https://cdn.v2ex.com/gravatar/8307147fe242bb32f4eb5129e61f2888?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1170778", 
      "title": "\u5173\u4e8e\u56fe\u7247\u751f\u6210\u89c6\u9891\uff1a wan2.2-s2v \u6a21\u578b\u63d0\u793a\u8bcd\u9650\u5236\u65e0\u6548\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1170778", 
      "date_published": "2025-11-05T10:27:14+00:00", 
      "content_html": "<p>\u4f7f\u7528 wan2.2-s2v \u6a21\u578b\u751f\u6210\u89c6\u9891\uff0c\u9700\u8981\u751f\u6210\u4ec5\u4ec5\u7728\u773c\u7684\u89c6\u9891\uff0c\u9664\u6b64\u4e4b\u5916\uff0c\u4e0d\u9700\u8981\u5176\u4ed6\u7684\u4efb\u4f55\u52a8\u4f5c\uff0c\u4f46\u662f\u5b58\u5728\u5f88\u5927\u6982\u7387\u751f\u6210\u7684\u89c6\u9891\u662f\u9759\u6b62\u7684\u89c6\u9891\u3002\u8bf7\u95ee\u8fd9\u4e2a\u6709\u4eba\u505a\u8fc7\u5417\uff1f\u6709\u4ec0\u4e48\u5f88\u597d\u7684\u89e3\u51b3\u65b9\u5f0f\u5417</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/hubianluanma", 
        "name": "hubianluanma", 
        "avatar": "https://cdn.v2ex.com/avatar/3a2f/2db0/736843_large.png?m=1750909443"
      }, 
      "url": "https://www.v2ex.com/t/1164779", 
      "date_modified": "2025-10-13T08:36:25+00:00", 
      "content_html": "<p>\u5f53\u4f7f\u7528 Mac \u81ea\u5e26\u7684\u5f55\u5c4f\u5de5\u5177\u5f55\u5236\u540e\u9ed8\u8ba4\u662f mov \u683c\u5f0f\u7684\u89c6\u9891\uff0c\u4f53\u79ef\u4e5f\u662f\u6bd4\u8f83\u5927\u7684\uff0c\u5927\u5bb6\u5e73\u65f6\u662f\u901a\u8fc7\u4ec0\u4e48\u65b9\u5f0f\u538b\u7f29\u7684\uff0c\u5982\u679c\u4f7f\u7528 FFmpeg \u7684\u8bdd\u5927\u5bb6\u662f\u4f7f\u7528 GUI \u5de5\u5177\u5c45\u591a\uff1f\u8fd8\u662f\u4f7f\u7528\u7ec8\u7aef\u547d\u4ee4\u7684\u65b9\u5f0f\u8fdb\u884c\u538b\u7f29\u8f6c\u5316\u3002\n\u6211\u76ee\u524d\u662f\u6bcf\u6b21\u4f7f\u7528 FFmpeg \u547d\u4ee4\u6216\u8005\u4f7f\u7528\u7b2c\u4e09\u65b9\u7684\u526a\u8f91\u8f6f\u4ef6\u8fdb\u884c\u8f6c\u5316\uff0c\u4e0d\u8fc7\u5bf9 FFmpeg \u547d\u4ee4\u4e0d\u662f\u5f88\u719f\uff0c\u6bcf\u6b21\u90fd\u662f\u73b0\u67e5\uff0c\u5927\u5bb6\u53ef\u4ee5\u5206\u4eab\u4e00\u4e0b\u81ea\u5df1\u7684\u65b9\u5f0f\u3002</p>\n", 
      "date_published": "2025-10-13T03:23:49+00:00", 
      "title": "[\u8ba8\u8bba] \u5927\u5bb6\u662f\u5982\u4f55\u538b\u7f29 MOV \u89c6\u9891\u7684", 
      "id": "https://www.v2ex.com/t/1164779"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/kingsnakerrrrr", 
        "name": "kingsnakerrrrr", 
        "avatar": "https://cdn.v2ex.com/gravatar/a9eaad45b6936ba37d0ca95af4c1e064?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1155031", 
      "date_modified": "2025-08-26T06:41:03+00:00", 
      "content_html": "<p>\u5f00\u670d\u5f88\u591a\u90fd\u7528\u56e2\u961f\u76d8\uff0c\u4e0d\u77e5\u9053\u4ed6\u4eec\u600e\u4e48\u4f18\u5316\u3002\u5e93\u6bd4\u8f83\u591a\u9700\u8981\u4f18\u5316\u7f13\u5b58\uff0c\u52a0\u8f7d\u901f\u5ea6\u4ec0\u4e48\u7684\u3002\u4e0d\u61c2\u641e</p>\n", 
      "date_published": "2025-08-26T06:39:40+00:00", 
      "title": "\u6c42\u4e00\u4e2a\u6700\u5b8c\u7f8e\u7684 vps \u6302\u8f7d\u56e2\u961f\u76d8\u6700\u4f18\u65b9\u6848\uff0c\u4f8b\u5982 rclone \u6302\u8f7d\u53c2\u6570\u3002", 
      "id": "https://www.v2ex.com/t/1155031"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xmz8888", 
        "name": "xmz8888", 
        "avatar": "https://cdn.v2ex.com/gravatar/ed04456429a19898c36de0a890aa763b?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1149413", 
      "date_modified": "2025-08-02T00:25:17+00:00", 
      "content_html": "<p>1.PC \u7aef\u901a\u8fc7\u6cb9\u7ba1\u89c6\u9891\u7684\u89e3\u6790\u7f51\u7ad9\u4e0b\u8f7d\u5230\u6700\u9ad8\u5206\u8fa8\u7387\u7684 VP9 \u89c6\u9891\u6587\u4ef6+\u97f3\u9891\u6587\u4ef6\uff0c\u7136\u540e\u81ea\u5df1\u624b\u52a8\u5c01\u88c5\u4e00\u4e0b\u53d8\u6210 MKV\n\uff08\u4e0d\u8fc7\u5982\u679c\u9009\u62e9\u53bb\u4f7f\u7528\u5b89\u5353\u624b\u673a\u7aef\u7684\u67d0 f \u5e94\u7528\u5546\u5e97\u7684\u90a3\u4e2a\u67d0 S \u89e3\u6790\u4e0b\u8f7d app \u5012\u662f\u529f\u80fd\u9f50\u5168\uff0c\u53ef\u4ee5\u540c\u65f6\u5305\u529e\u8f6c\u7801\u548c\u5c01\u88c5\uff09</p>\n<p>2.(\u672c\u4eba\u5bf9\u89c6\u9891\u7f16\u7801\u5e76\u65e0\u6df1\u5165\u7814\u7a76\uff0c\u6b22\u8fce\u63d0\u4f9b\u8bbe\u7f6e\u5efa\u8bae)\nPC \u7aef\u4f7f\u7528\u7684\u97e9\u56fd\u5f00\u53d1\u8005\u90a3\u4e2a\u7b80\u6613\u7684\u67d0 S \u7f16\u7801\u5c01\u88c5\u8f6c\u6362\u8f6f\u4ef6\uff0c\u8bbe\u7f6e\u5982\u4e0b\uff1a\n\u6863\u6848\u683c\u5f0f MP4 \u5e26\u65f6\u95f4\u6233\uff0c\u7f16\u7801 h264 \u7528 cpu \u538b\u5236\uff1b\u91cf\u5316\u5668 23 \uff0c\u8bbe\u5b9a\u6863\u9009\u62e9\u4e86 main \uff0cauto + \u5feb\u901f\u89e3\u7801\uff0c\u901f\u5ea6\u9009\u62e9\u4e86\u201c\u975e\u5e38\u5feb\u201d\uff1b\u97f3\u9891\u7f16\u7801 HE-AAC \u76f4\u63a5\u9009\u62e9\u6700\u9ad8 kbps \uff0c\u58f0\u9053\u53d6\u6837\u7387\u4fdd\u6301\u4e0d\u53d8\u4e0e\u6e90\u6587\u4ef6\u76f8\u540c\uff1b\u89c6\u9891\u7684\u5206\u8fa8\u7387\u53ca\u5e27\u7387\u901a\u5e38\u4f1a\u9009\u62e9\u4fdd\u6301\u4e0d\u53d8\u4e0e\u6e90\u6587\u4ef6\u76f8\u540c\u3002\n\u6211\u4e2a\u4eba\u901a\u5e38\u4f1a\u9009\u62e9\u628a\u89c6\u9891\u7684\u6574\u4f53\u901f\u5ea6\u53d8\u66f4\u4e3a 2 \u500d\u901f\uff0c\u89c6\u9891\u7684\u65f6\u957f\u76f4\u63a5\u7f29\u77ed\u4e86\u4e00\u534a\uff0c\u800c\u4e14\u8fd9\u6837\u4ee5\u540e\u8c01\u4e5f\u4e0d\u7528\u53bb\u624b\u52a8\u8c03\u6574 2 \u500d\u901f\u4e86\u3002</p>\n<p>3.\u4ee5\u4e0a\u8bbe\u7f6e\u7684\u6548\u679c\uff1a\u4f8b\u5982\u539f\u672c 20 \u5206\u949f\u7684\u89c6\u9891\uff0c\u4e8c\u500d\u901f\u5c31\u662f 10 \u5206\u949f\u300220 \u5206\u949f 700 \u591a MB \u7684 4K \u89c6\u9891\u538b\u5236\u51fa\u6765\u53d8\u4e3a\u4e86 10 \u5206\u949f 300 \u591a MB \u7684\u6587\u4ef6\u4f53\u79ef\u3002\n\u53ea\u8981\u4e0d\u662f\u591a\u5e74\u524d\u7684\u65e7 cpu \uff0c\u538b\u5236\u7528\u65f6\u5e94\u8be5\u4e00\u822c\u662f 5 \u5206\u949f\u5de6\u53f3\u3002\u5b8c\u5168\u4e0d\u803d\u8bef\u7528\u7535\u8111\uff0c\u53bb\u559d\u53e3\u6c34\u4e0a\u4e2a\u5395\u6240\u5c31\u538b\u5236\u5b8c\u4e86\u3002</p>\n<p>4.\u6700\u540e\u9009\u62e9\u4ee5\u89c6\u9891\u7684\u5f62\u5f0f\u4e0a\u4f20\u5230\u81ea\u5df1\u7684\u7535\u62a5\u9891\u9053\u3002\n\u4e0a\u8ff0\u4e3e\u4f8b\u7684 300 \u591a MB \u7684\u89c6\u9891\u5728\u684c\u9762\u7aef\u4e0a\u4f20\u5e76\u6ca1\u6709\u88ab\u7535\u62a5\u670d\u52a1\u5668\u81ea\u52a8\u518d\u6b21\u538b\u5236\uff0c\u6587\u4ef6\u4f53\u79ef\u6ca1\u6709\u53d8\uff0c\u7ecf\u6d4b\u8bd5\u5728\u5b89\u5353\u7aef\u4e0e\u82f9\u679c\u7aef\u5728\u7ebf\u64ad\u653e\u5747\u6b63\u5e38\u3002\n\uff08\u5c0a\u8d35\u7684\u7535\u62a5\u4f1a\u5458\u53ef\u4ee5\u4eab\u53d7\u66f4\u5feb\u7684\u4e0a\u4f20\u901f\u5ea6\uff0c\u540c\u65f6\u4f7f\u7528\u7f51\u9875\u7aef\u8981\u6bd4\u4f7f\u7528\u684c\u9762\u7aef\u7684\u4e0a\u4f20\u901f\u5ea6\u66f4\u5feb\uff0c\u4e0d\u8fc7\u53ea\u6709\u51e0\u767e MB \u7684\u6587\u4ef6\u672c\u6765\u4e00\u4f1a\u5c31\u4e0a\u4f20\u5b8c\u4e86\u4e5f\u65e0\u6240\u8c13\u4e86\uff09</p>\n", 
      "date_published": "2025-08-02T00:18:56+00:00", 
      "title": "\u5173\u4e8e\u7528\u7535\u62a5\u5f53\u4f5c\u6d41\u5a92\u4f53\u89c6\u9891\u5907\u4efd\u5e93\uff0c\u53ef\u4ee5\u5728\u7ebf\u64ad\u653e\u4e0e\u5206\u4eab\u7684\u65b9\u6848\uff0c\u4ee5\u53ca\u89c6\u9891\u538b\u5236\u7684\u6d41\u7a0b", 
      "id": "https://www.v2ex.com/t/1149413"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chuhaitian", 
        "name": "chuhaitian", 
        "avatar": "https://cdn.v2ex.com/avatar/e8b9/52ad/723997_large.png?m=1748325547"
      }, 
      "url": "https://www.v2ex.com/t/1142225", 
      "title": "\u7528 google \u7684 veo 3 \u751f\u6210\u5e26\u58f0\u97f3\u7684 ai \u89c6\u9891\u5927\u51e0\u5200\uff1f", 
      "id": "https://www.v2ex.com/t/1142225", 
      "date_published": "2025-07-01T05:11:20+00:00", 
      "content_html": "<p>\u53bb\u4e00\u4e2a\u5927\u7ad9\u8bd5\u4e86\u4e0b\u7528 veo 3 \u751f\u6210\u5e26\u58f0\u97f3\u7684\u89c6\u9891\uff0c\u7c97\u7565\u4f30\u7b97\u4e86\u4e0b\uff0c\u9700\u8981 8-10 \u5200\u7684\u6837\u5b50....</p>\n<p>\u8fd9\u4e2a\u6210\u672c\u8fd8\u771f\u4e0d\u5982\u53bb\u95f2\u9c7c\u8fd9\u4e2a\u4eba\u6765\u5e2e\u5fd9\u51fa\u89c6\u9891</p>\n<p>\u670b\u53cb\u63a8\u8350\u4e86\u4e2a\u6709\u610f\u601d\u7684\u7f51\u7ad9\uff08 <a href=\"https://v03ai.com\" rel=\"nofollow\">https://v03ai.com</a> \uff09\uff0c\u5f88\u4fbf\u5b9c\u53ea\u8981 0.5 \u5200\u5c31\u80fd\u51fa\u4e00\u4e2a veo 3 \u89c6\u9891</p>\n<p>\u4e0d\u77e5\u9053\u4ed6\u4eec\u771f\u662f\u9001\u798f\u5229\u8fd8\u662f\u8bf4\u6709\u4ec0\u4e48\u7279\u6b8a\u6280\u672f\u624b\u6bb5\u505a\u5230\u8fd9\u4e48\u4f4e\u6210\u672c\u7684\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/zzzain46", 
        "name": "zzzain46", 
        "avatar": "https://cdn.v2ex.com/avatar/4a8e/5197/428907_large.png?m=1637842690"
      }, 
      "url": "https://www.v2ex.com/t/1135881", 
      "title": "DJI Action \u88ab\u81ea\u52a8\u5206\u6bb5\u7684\u89c6\u9891\u5982\u4f55\u65e0\u75d5\u62fc\u63a5", 
      "id": "https://www.v2ex.com/t/1135881", 
      "date_published": "2025-06-02T13:13:23+00:00", 
      "content_html": "\u5982\u9898\uff0c\u56e0\u4e3a\u5b58\u50a8\u7684\u539f\u56e0\uff0c\u4f8b\u5982\u5f55\u5236\u7684 1 \u5c0f\u65f6\u89c6\u9891\uff0c\u4f1a\u88ab\u81ea\u52a8\u5207\u5206\u6210 10 \u51e0\u5206\u949f\u4e00\u6bb5\u7684\u89c6\u9891\uff0c\u9677\u5728\u9700\u8981\u5c06\u8fd9\u4e9b\u539f\u672c\u8fde\u7eed\u7684\u89c6\u9891\u62fc\u63a5\u8d77\u6765\uff0c\u5982\u679c\u5728 DJI mino \u91cc\u76f4\u63a5\u62fc\u63a5\u7684\u8bdd\uff0c\u62fc\u63a5\u5904\u4f1a\u6709\u6709\u96f6\u70b9\u51e0\u79d2\u7684\u91cd\u590d\u753b\u9762\uff0c\u5bfc\u81f4\u65e0\u6cd5\u5b8c\u7f8e\u62fc\u63a5\uff0c\u8bf7\u95ee\u6709\u4ec0\u4e48\u7b80\u5355\u7684\u65b9\u6cd5\u5417"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wnpllrzodiac", 
        "name": "wnpllrzodiac", 
        "avatar": "https://cdn.v2ex.com/gravatar/84e41a23f65477d2c3c398dc13c8e053?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1123992", 
      "date_modified": "2025-04-09T04:01:07+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u5176\u4ed6\u529f\u80fd\u90fd\u5f88\u597d\uff0c\u6709\u5927\u91cf\u514d\u8d39\u7684\u7d20\u6750\u548c\u5de5\u5177\u3002\n\u4f46\u662f\u667a\u80fd\u62a0\u89c6\u9891\u80cc\u666f\u529f\u80fd\u9700\u8981 vip \uff0c\u6709\u70b9\u5c34\u5c2c\u3002\u6709\u4ec0\u4e48\u529e\u6cd5\u7528\u5176\u4ed6\u8f6f\u4ef6\u751f\u6210\u6263\u9664\u80cc\u666f\u7684\u89c6\u9891\uff0c\u5bfc\u5165\u526a\u6620\u91cc\u9762\u7528\u5417\uff1f\n\u97f3\u89c6\u9891\u5f00\u53d1\u591a\u5e74\uff0c\u611f\u89c9\u524d\u540e\u666f\u5206\u79bb\u7684\u89c6\u9891\u6ca1\u6709\u884c\u4e1a\u89c4\u8303\u3002\u6240\u4ee5\u662f\u5728\u975e\u7ebf\u7f16\u8f6f\u4ef6\u91cc\u9762 \u9010\u5e27\u64cd\u4f5c\u7684\uff1f\n\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u8fd9\u6837\u7684\u89c6\u9891\u4ea4\u6362\u683c\u5f0f\uff0c\u7528\u6765\u5728\u4e0d\u540c\u8f6f\u4ef6\u95f4\u4f20\u8f93\u3002</p>\n", 
      "date_published": "2025-04-08T08:24:10+00:00", 
      "title": "\u6709\u5e73\u66ff \u526a\u6620 app \u667a\u80fd\u6263\u89c6\u9891\u80cc\u666f \u529f\u80fd\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1123992"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/huazhaozhe", 
        "name": "huazhaozhe", 
        "avatar": "https://cdn.v2ex.com/gravatar/8f15eb6bc058e767a3673bd330522f55?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1123633", 
      "date_modified": "2025-04-07T03:09:52+00:00", 
      "content_html": "\u76d1\u63a7\u89c6\u9891\u6bd4\u8f83\u957f\u4f53\u79ef\u6bd4\u8f83\u5927\u8017\u8d39\u5b58\u50a8\u7a7a\u95f4\uff0c\u4e5f\u4e0d\u9700\u8981\u5b58\u50a8\u8fde\u8d2f\u7684\u89c6\u9891\uff0c\u58f0\u97f3\u5360\u7528\u4f53\u79ef\u6bd4\u8f83\u5c0f\u53ef\u4ee5\u4fdd\u7559\u3002\u51c6\u5907\u7528\u7c7b\u4f3c\u7f29\u65f6\u89c6\u9891\u7684\u65b9\u5f0f\u51cf\u5c11\u4f53\u79ef\u3002<br />\u7528 FFmpeg \u6309\u7167 1 \u79d2\u62bd 2 \u5e27\u53d8\u6210 2fps \u7684\u89c6\u9891\u65f6\u957f\u548c\u539f\u89c6\u9891\u65f6\u957f\u4e00\u6837\u58f0\u97f3\u4e5f\u6b63\u5e38\uff0c\u4f53\u79ef\u786e\u5b9e\u51cf\u5c11\u4e86\u4e0d\u5c11\u4f46\u8fd8\u4e0d\u591f\uff0c\u6211\u8bd5\u7740\u5c06\u62bd\u5230\u7684\u5e27\u91cd\u65b0\u8f93\u51fa\u4e3a 60fps \u7684\u89c6\u9891\uff0c\u603b\u5e27\u6570\u4e0d\u53d8\u65f6\u957f\u81ea\u7136\u5927\u5927\u7f29\u77ed\u5c31\u50cf\u500d\u901f\u64ad\u653e\u4e00\u6837\uff0c\u4f53\u79ef\u8fd8\u80fd\u51cf\u5c11\u4e00\u534a\u591a\u4f46\u662f\u58f0\u97f3\u4e0d\u6b63\u5e38\u4e86\u3002<br />\u6709\u6ca1\u5f97\u529e\u6cd5\u5728\u603b\u5e27\u6570\u5dee\u4e0d\u591a\u60c5\u51b5\u4e0b\uff0c\u4e0d\u8003\u8651\u64ad\u653e\u662f\u5426\u8fde\u8d2f\u54ea\u6015\u50cf PPT \u4e00\u6837\u90fd\u884c\uff0c\u4f4e\u5e27\u7387 2fps \u60c5\u51b5\u4e0b\u548c 60fps \u4e00\u6837\u4f53\u79ef\u5927\u5c0f\u5462\uff0c\u8fd9\u6837\u5b50\u89c6\u9891\u65f6\u957f\u4e0d\u53d8\u58f0\u97f3\u4e5f\u6b63\u5e38\uff0c\u95ee\u4e86 deepseek \u8c8c\u4f3c\u548c IPB \u5e27\u6ca1\u641e\u51fa\u6765\u3002", 
      "date_published": "2025-04-07T01:57:48+00:00", 
      "title": "\u76d1\u63a7\u89c6\u9891\u538b\u7f29/\u62bd\u5e27\u538b\u7f29\u5b58\u50a8\u4f18\u5316", 
      "id": "https://www.v2ex.com/t/1123633"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ilook", 
        "name": "ilook", 
        "avatar": "https://cdn.v2ex.com/gravatar/63b19bfeaee3be2a79d3416183b02530?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1118614", 
      "title": "\u6709\u4ec0\u4e48\u89c6\u9891\u6263\u50cf\u7684\u8f6f\u4ef6\u53ef\u4ee5\u63a8\u8350", 
      "id": "https://www.v2ex.com/t/1118614", 
      "date_published": "2025-03-15T03:58:40+00:00", 
      "content_html": "<p>\u5e0c\u671b\u628a\u89c6\u9891\u91cc\u7684\u4e3b\u4f53\u6263\u51fa\u6765\uff0c\u5176\u4ed6\u90e8\u5206\u53ef\u4ee5\u7528\u7eff\u8272\u586b\u5145\uff0c\u4f5c\u4e3a\u4e00\u4e2a\u65b0\u7684\u89c6\u9891\u3002\u6700\u597d\u662f\u672c\u5730\u53ef\u4ee5\u8fd0\u884c\u7684\u670d\u52a1\u6216\u8f6f\u4ef6</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Haku", 
        "name": "Haku", 
        "avatar": "https://cdn.v2ex.com/avatar/f178/a1b8/133660_large.png?m=1770122472"
      }, 
      "url": "https://www.v2ex.com/t/1118171", 
      "title": "\u5e27\u8f6c\u89c6\u9891\u6709\u54ea\u4e9b\u6700\u5feb\u7684\u65b9\u6848\uff1f", 
      "id": "https://www.v2ex.com/t/1118171", 
      "date_published": "2025-03-13T07:32:50+00:00", 
      "content_html": "<p>\u7a0b\u5e8f\u4e0a\uff0c\u662f\u7ed9\u51fa\u4e00\u4e9b\u52a8\u753b\u5e27\uff0c\u5c06\u5b83\u4eec\u5408\u6210\u4e3a\u89c6\u9891\uff0c\u5e76\u914d\u4e0a\u8bed\u97f3\u3002\n\u4f8b\u5982\u8bed\u97f3 5s \uff0c\u52a8\u753b\u5e27 10 \u5e27\uff0c\u90a3\u4e48\u5c31\u662f\u6bcf\u5e27\u6301\u7eed 0.5s \uff0c\u7528 10 \u5e27\u6269\u5145\u4e3a 5s \u7684\u89c6\u9891\u5e76\u52a0\u4e0a\u97f3\u8f68\u3002\u540c\u65f6\u53ef\u80fd\u4f1a\u6709\u4e00\u4e9b\u753b\u4e2d\u753b\u7684\u9700\u6c42\u3002</p>\n<p>\u76ee\u524d\u5728 Python \u4e0a\u4f7f\u7528 moviepy \u6765\u505a\uff0c\u5408\u6210\u4e00\u6bb5 50s \u7684\u89c6\u9891+\u914d\u97f3\uff0c\u5982\u679c\u6ca1\u6709\u753b\u4e2d\u753b\u5927\u7ea6 120s \u5de6\u53f3\uff08\u5168\u7a0b\u753b\u4e2d\u753b\u5927\u6982\u7ffb\u500d\uff09\uff0c\u5982\u679c\u52a8\u753b\u5e27\u591a\u4e9b\u53ef\u80fd 150s \u7684\u6837\u5b50\u3002\n\u4f46\u662f\u9886\u5bfc\u4e0d\u6ee1\u610f\uff0c\u60f3\u8981\u628a\u8fd9\u4e2a\u65f6\u95f4\u538b\u7f29\u4e0b\u6765\uff0c\u7528\u4ed6\u7684\u8bdd\u8bf4\u6700\u597d\u5341\u51e0\u79d2\u5c31\u5408\u6210\u5b8c\u6bd5\u3002\u672c\u4eba\u6ca1\u548b\u505a\u8fc7\u89c6\u9891\u7f16\u89e3\u7801\u7684\u6d3b\uff0c\u6765\u95ee\u95ee V2EX \u7684\u8001\u54e5\u4eec\u8fd8\u6709\u5565\u63d0\u901f\u65b9\u6848\u3002</p>\n<p>\u67e5\u4e86\u4e0b moviepy \u5e95\u5c42\u7528\u7684\u662f ffmpeg \uff0c\u8c8c\u4f3c\u8fd9\u4e2a\u5df2\u7ecf\u662f\u5f88\u9ad8\u6548\u7684\u89c6\u9891\u7f16\u89e3\u7801\u6280\u672f\u4e86\u3002\n\u4f7f\u7528\u7684\u673a\u5668\u6ca1\u6709\u4e13\u4e1a\u663e\u5361\u5361\uff0c\u4f46\u662f\u53ef\u4ee5\u7533\u8bf7\u5230 AI \u5361\u6bd4\u5982 T4 \uff0c\u4e0d\u77e5\u9053\u80fd\u4e0d\u80fd\u52a0\u901f\u70b9\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/dcsuibian", 
        "name": "dcsuibian", 
        "avatar": "https://cdn.v2ex.com/gravatar/c29cba0b0706786011c11a5db6cb8b97?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1116887", 
      "date_modified": "2025-03-09T08:53:52+00:00", 
      "content_html": "<p>\u786c\u76d8\u7a7a\u95f4\u5feb\u4e0d\u591f\u4e86\uff0c\u5728\u8003\u8651\u964d\u4f4e\u4e00\u4e0b\u65b0\u5f55\u89c6\u9891\u7684\u7801\u7387\u3002</p>\n<p>\u76ee\u524d YouTube \u5bf9 4K 60p HDR \u7684\u5efa\u8bae\u4e0a\u4f20\u7801\u7387\u662f 66-85Mbps \uff0c\u4f46\u662f\u662f\u9488\u5bf9 H264 \u7684\u3002\u6211\u5e0c\u671b\u89c6\u9891\u7684\u753b\u8d28\u4e0d\u8981\u964d\u4f4e\u5230\u8fd9\u4e2a\u6807\u51c6\u4ee5\u4e0b\u3002</p>\n<p>\u5df2\u7ecf\u95ee\u8fc7 AI \u4e86\uff0c\u8bf4\u662f AV1 45Mbps \uff0cH265 54Mbps \uff0c\u4f46\u662f\u8fd9\u79cd\u5c5e\u4e8e\u7ecf\u9a8c\u503c\u5427\uff0c\u8fd8\u662f\u60f3\u542c\u542c\u4e13\u5bb6\u7684\u610f\u89c1\u3002\u53e6\u5916 AV1 \u6709\u5565\u5751\u5417\uff1f</p>\n", 
      "date_published": "2025-03-08T07:15:12+00:00", 
      "title": "AV1 \u548c H265 \u9700\u8981\u591a\u5927\u7801\u7387\u624d\u80fd\u8fbe\u5230 90Mbps \u7684 H264 \u6c34\u5e73\uff1f\u53ef\u4ee5\u7b80\u5355\u6362\u7b97\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1116887"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ariera", 
        "name": "ariera", 
        "avatar": "https://cdn.v2ex.com/avatar/0011/bf4f/559621_large.png?m=1663249020"
      }, 
      "url": "https://www.v2ex.com/t/1109074", 
      "title": "\u76f4\u64ad\u5f55\u5236\u89c6\u9891\u4e2d\u8fde\u9ea6/Pk \u753b\u9762\u79fb\u9664", 
      "id": "https://www.v2ex.com/t/1109074", 
      "date_published": "2025-02-05T06:42:41+00:00", 
      "content_html": "<p>\u6c42\u52a9\uff0c\u5728\u5f55\u5236 D \u97f3\u7b49\u76f4\u64ad\u5e73\u53f0\u7684\u89c6\u9891\u65f6\uff0c\u6709\u4e9b\u4e3b\u64ad\u4e4b\u95f4\u7684\u8fde\u9ea6\u753b\u9762\u60f3\u5254\u9664\u6389\uff0c\u6709\u4ec0\u4e48\u81ea\u52a8\u5316\u7684\u5de5\u5177\u6216\u8005\u7a0b\u5e8f\u5305\u4e48\uff1f\u6211\u8bd5\u4e86\u4e00\u4e0b ffmpeg \uff0c\u53ea\u80fd\u624b\u52a8\u6307\u5b9a\u622a\u53d6\u5f00\u59cb\u65f6\u95f4\u548c\u65f6\u957f\u8fd9\u79cd\u65b9\u5f0f\uff0c\u4e0d\u80fd\u667a\u80fd\u8bc6\u522b\u88c1\u526a\u7684\u8d77\u59cb\u4f4d\u7f6e\u548c\u65f6\u957f\u3002\n\u597d\u6bd4\u8bf4\u4e00\u4e2a\u89c6\u9891\u4e2d \u6709\u4e24\u4e2a\u8fde\u9ea6\u753b\u9762\uff0c\u6211\u9700\u8981\u624b\u52a8\u627e\u5230\u8fd9\u4e24\u4e2a\u8fde\u9ea6\u753b\u9762\u7684\u8d77\u59cb\u548c\u7ec8\u6b62\u70b9\uff0c\u7136\u540e\u526a\u5207\u540e\u62fc\u63a5\u5728\u4e00\u8d77\u3002</p>\n<p>\u6709\u4ec0\u4e48\u81ea\u52a8\u5316\u7684\u65b9\u5f0f\u80fd\u591f\u5b9e\u73b0\u4e48\uff0c\u7f51\u4e0a\u4e5f\u627e\u4e86\u4e00\u6bb5 OpenCV \u7684\u4ee3\u7801\uff0c\u611f\u89c9\u6548\u7387\u4f4e\uff0c\u800c\u4e14\u901a\u8fc7\u753b\u9762\u4e2d\u51fa\u73b0\u7684\u4eba\u7269\u6570\u91cf\u5224\u65ad\u592a\u6f66\u8349\u4e86\uff0c\u751a\u81f3\u4e0d\u5982\u901a\u8fc7\u5224\u65ad\u89c6\u9891\u4e0b\u9762\u662f\u5426\u6709\u9ed1\u8fb9\u4ec0\u4e48\u7684\u66f4\u5408\u7406\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/JiaNa", 
        "name": "JiaNa", 
        "avatar": "https://cdn.v2ex.com/gravatar/00e618f9d1908398f53001a4d0192163?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1099457", 
      "date_modified": "2024-12-22T14:19:23+00:00", 
      "content_html": "\u4e00\u4e2a 100Mbps \u7684\u89c6\u9891\uff0c\u622a\u53d6 1/2 \u7684\u9762\u79ef\u540e\uff0c\u7801\u7387\u8bbe\u7f6e\u4e3a\u591a\u5c11\uff0c\u80fd\u591f\u8ba9\u538b\u7f29\u540e\u7684\u753b\u8d28\u63a5\u8fd1\u539f\u753b\u8d28\uff1f<br /><br />1. \u6280\u672f\u6307\u6807\u6709\u54ea\u4e9b\uff1f\u901a\u8fc7 ffmpeg \u5f97\u5230\u7684 SSIM \u3001VMAF \u4e0d\u51c6\u786e\u3002\u538b\u7f29\u4e3a 2Mbps \u540e\u753b\u9762\u6a21\u7cca\uff0c\u4f46 SSIM \u4e3a 0.95 \u3001VMAF \u4e3a 85 \u3002<br />2. \u54ea\u4e9b\u65b9\u6cd5\u80fd\u8f85\u52a9\u8089\u773c\u6bd4\u8f83\uff1f\u6bd4\u5982\u653e\u5927\u3001\u901a\u8fc7\u526a\u8f91\u8f6f\u4ef6\u5206\u5c4f\u64ad\u653e\u3002\u6700\u597d\u6709\u89c6\u9891\u6559\u7a0b", 
      "date_published": "2024-12-22T14:17:58+00:00", 
      "title": "\u5982\u4f55\u6bd4\u8f83\u89c6\u9891\u538b\u7f29\u524d\u540e\u7684\u753b\u8d28\uff1f", 
      "id": "https://www.v2ex.com/t/1099457"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/CharlesZ", 
        "name": "CharlesZ", 
        "avatar": "https://cdn.v2ex.com/gravatar/8bec7c830ea841cbcb8b2eff01814709?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1099072", 
      "title": "\u4f18\u9177 Win \u5ba2\u6237\u7aef\u4e0d\u652f\u6301\u81fb\u4eab", 
      "id": "https://www.v2ex.com/t/1099072", 
      "date_published": "2024-12-20T06:42:46+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u5982\u679c\u8fd9\u4e2a\u7247\u6e90\u5728\u4f18\u9177\u6ca1\u6709 4K \uff0c\u90a3 Windows \u5ba2\u6237\u7aef\u53ea\u80fd\u770b 720p \u3002\n\u7136\u800c M1 Mac \u53ef\u4ee5\u89e3\u7801\u81fb\u4eab\u5e76\u6b63\u5e38\u64ad\u653e\u3002</p>\n<p>\u611f\u89c9\u83ab\u540d\u5176\u5999\u7684\uff0c\u4f1a\u5458\u4e5f\u4e0d\u662f\u6ca1\u82b1\u94b1\uff0c\u8fd8\u5206\u8bbe\u5907\u6b67\u89c6\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/n18255447846", 
        "name": "n18255447846", 
        "avatar": "https://cdn.v2ex.com/gravatar/0b4a34fe20399f98ec5464af511916b4?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1092843", 
      "title": "\u5947\u602a\u7684 chrome \u89c6\u9891\u89e3\u7801\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1092843", 
      "date_published": "2024-11-26T09:36:32+00:00", 
      "content_html": "<blockquote>\n<p>\u6765\u6e90\u4e8e b \u7ad9\u7684 banner \u3002</p>\n</blockquote>\n<p>\u8c8c\u4f3c chrome \u89e3\u7801<code>.webm</code>\u683c\u5f0f\u7684\u89c6\u9891\u662f\u8f6f\u89e3\uff0ccpu \u98d9\u9ad8\u98ce\u6247\u72c2\u8f6c\uff0c\u800c\u89e3\u7801<code>.mp4</code>\u5374\u662f\u786c\u4ef6\u89e3\u7801\u3002\u4e8c\u8005\u89c6\u9891 codec \u4e00\u81f4\uff0c\u53ea\u662f\u5c01\u88c5\u540e\u7f00\u4e0d\u4e00\u6837\u3002\u3002\u3002</p>\n<pre><code>Input #0, matroska,webm, from 'a6f3f362-14c3-4dfd-8801-d69e8547a529.webm':\n  Metadata:\n    encoder         : libwebm-0.2.1.0\n    creation_time   : 2024-09-25T18:16:52.000000Z\n  Duration: 00:00:01.58, start: -0.007000, bitrate: 331 kb/s\n  Stream #0:0(eng): Video: vp9 (Profile 0), yuv420p(tv), 3200x300, SAR 1:1 DAR 32:3, 12 fps, 12 tbr, 1k tbn (default)\n      Metadata:\n        alpha_mode      : 1\n  Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)\n</code></pre>\n<p>\u8f6c\u4e0b\u9762<code>.mp4</code>\u786c\u89e3</p>\n<pre><code>Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a.mp4':\n  Metadata:\n    major_brand     : isom\n    minor_version   : 512\n    compatible_brands: isomiso2mp41\n    encoder         : Lavf61.3.100\n  Duration: 00:00:01.60, start: 0.000000, bitrate: 227 kb/s\n  Stream #0:0[0x1](eng): Video: vp9 (Profile 0) (vp09 / 0x39307076), yuv420p(tv), 3200x300, 220 kb/s, SAR 1:1 DAR 32:3, 12 fps, 12 tbr, 16k tbn (default)\n      Metadata:\n        handler_name    : VideoHandler\n        vendor_id       : [0][0][0][0]\n  Stream #0:1[0x2](eng): Audio: opus (Opus / 0x7375704F), 48000 Hz, stereo, fltp, 1 kb/s (default)\n      Metadata:\n        handler_name    : SoundHandler\n        vendor_id       : [0][0][0][0]\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/normaljq", 
        "name": "normaljq", 
        "avatar": "https://cdn.v2ex.com/avatar/0ac4/18bc/463285_large.png?m=1732168763"
      }, 
      "url": "https://www.v2ex.com/t/1091489", 
      "date_modified": "2024-11-21T06:05:24+00:00", 
      "content_html": "<p>\u6700\u8fd1\u56e0\u4e3a\u4e1a\u52a1\u9700\u8981\uff0c\u5c06\u539f\u6765\u7684 mp4 \u64ad\u653e\u6539\u6210\u4e86 m3u8 \u64ad\u653e</p>\n<p>\u4f46\u662f\u51fa\u73b0\u4e86\u95ee\u9898\uff1a</p>\n<p>\u64ad\u653e\u5927\u89c6\u9891\u7684\u65f6\u5019\uff0c\u53ea\u4f1a\u8bf7\u6c42\u524d\u9762\u4e24\u4e2a ts \u5206\u7247\u6587\u4ef6\uff08\u4f1a\u64ad\u653e\u51e0\u79d2\u949f\uff0c\u64ad\u653e\u51e0\u79d2\u540e\u5c31\u4e00\u76f4\u8f6c\u5708\u52a0\u8f7d\u4e86\uff09\uff0c\u5c0f\u89c6\u9891\u6ca1\u6709\u8fd9\u4e2a\u95ee\u9898</p>\n<p>\u6280\u672f\u6808\uff1a\u524d\u7aef vue-video-player \u89c6\u9891\u5b58\u50a8\uff1a\u963f\u91cc\u4e91 vod</p>\n<p>\u8de8\u57df\u95ee\u9898\u5df2\u7ecf\u89e3\u51b3\u8fc7\u4e86\uff0c\u4f46\u8fd8\u662f\u4e0d\u884c\uff0c\u8bf7\u95ee\u5927\u4f6c\u8fd9\u662f\u4ec0\u4e48\u95ee\u9898\uff0c\u4e07\u5206\u611f\u8c22\uff01\n<img alt=\"baa68397e9981c5bfae2157f1fc7478b.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ice.frostsky.com/2024/11/21/baa68397e9981c5bfae2157f1fc7478b.png\"/>\n<img alt=\"c0bd14e7571391c6ec3ea23c55e9dfe2.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ice.frostsky.com/2024/11/21/c0bd14e7571391c6ec3ea23c55e9dfe2.png\"/></p>\n<p>\u51fa\u73b0\u95ee\u9898\u7684\u622a\u56fe\uff1a\n<img alt=\"ad6ab3104bbe40dd86d66b0f75495a02.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ice.frostsky.com/2024/11/21/ad6ab3104bbe40dd86d66b0f75495a02.png\"/></p>\n<p>m3u8 \u8bf7\u6c42\uff1a\n<img alt=\"439bff06d9e194dd7a9a291bc84b3050.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ice.frostsky.com/2024/11/21/439bff06d9e194dd7a9a291bc84b3050.png\"/></p>\n<p>m3u8 \u8fd4\u56de\uff1a\n<img alt=\"10d43169b7e54051a98712a70a2ef1ab.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ice.frostsky.com/2024/11/21/10d43169b7e54051a98712a70a2ef1ab.png\"/></p>\n<p>m3u8 \u6587\u4ef6\u5185\u5bb9\uff1a\uff08\u4e2d\u95f4\u90e8\u5206\u7701\u7565\u4e86\uff09\n<img alt=\"acf65b1eb8de922c54e7561a97e07101.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ice.frostsky.com/2024/11/21/acf65b1eb8de922c54e7561a97e07101.png\"/></p>\n<p>\u4e2d\u95f4\u90e8\u5206\u7701\u7565\u4e86</p>\n<p><img alt=\"1e266c5cb5ee41cf76628cdbef21e474.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ice.frostsky.com/2024/11/21/1e266c5cb5ee41cf76628cdbef21e474.png\"/></p>\n<p>\u63d0\u963f\u91cc\u4e91\u7684\u5de5\u5355\uff1a\u53cd\u9988\u8fd9\u4e2a\u89c6\u9891\u53ef\u4ee5\u6b63\u5e38\u64ad\u653e\uff1a\n<img alt=\"61ec21cec9d4fe85e87ba1cc196354fd.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://ice.frostsky.com/2024/11/21/61ec21cec9d4fe85e87ba1cc196354fd.png\"/></p>\n", 
      "date_published": "2024-11-21T06:01:52+00:00", 
      "title": "\u963f\u91cc\u4e91\u89c6\u9891\u64ad\u653e\u95ee\u9898\uff1a\u5927\u89c6\u9891\u53ea\u64ad\u653e\u51e0\u79d2\u540e\uff0c\u4e0d\u7ee7\u7eed\u8bf7\u6c42\u5206\u7247", 
      "id": "https://www.v2ex.com/t/1091489"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/turfbook", 
        "name": "turfbook", 
        "avatar": "https://cdn.v2ex.com/avatar/c904/1cfd/20269_large.png?m=1769740695"
      }, 
      "url": "https://www.v2ex.com/t/1091091", 
      "title": "\u60f3\u5b66\u5b66\u89c6\u9891\u526a\u8f91\u4e4b\u7c7b\u7684\u6280\u80fd, \u65b0\u624b\u4f7f\u7528\u4ec0\u4e48\u8f6f\u4ef6\u6bd4\u8f83\u5bb9\u6613\u4e0a\u624b?", 
      "id": "https://www.v2ex.com/t/1091091", 
      "date_published": "2024-11-20T02:57:34+00:00", 
      "content_html": "<p>\u81ea\u5e26\u7684 iMovie \u548c app store \u7684 DaVinci Resolve \u662f\u514d\u8d39\u7684,</p>\n<p>final cut pro \u8981 $300, \u4ef7\u683c\u76f8\u5dee\u597d\u5927 \ud83d\ude13, \u529f\u80fd\u548c\u4f7f\u7528\u4e5f\u76f8\u5dee\u5f88\u5927\u5417?</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/tuoniaoguoce", 
        "name": "tuoniaoguoce", 
        "avatar": "https://cdn.v2ex.com/gravatar/0191f3e65ae4761cf6ba7ff6f60830c7?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1085762", 
      "title": "\u6709\u4ec0\u4e48\u7eaf 4K \u65e0\u5e7f\u544a\u7684\u64ad\u653e\u5668", 
      "id": "https://www.v2ex.com/t/1085762", 
      "date_published": "2024-11-01T07:08:05+00:00", 
      "content_html": "\u54ea\u6015\u8d44\u6e90\u5c11\u4e9b"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/myora", 
        "name": "myora", 
        "avatar": "https://cdn.v2ex.com/avatar/e4a1/0cd4/176729_large.png?m=1729676029"
      }, 
      "url": "https://www.v2ex.com/t/1082981", 
      "title": "avi \u6587\u4ef6\u4fee\u590d", 
      "id": "https://www.v2ex.com/t/1082981", 
      "date_published": "2024-10-23T09:39:49+00:00", 
      "content_html": "<p>\u5f55\u7684\u89c6\u9891\u6587\u4ef6\uff0c\u590d\u5236\u5230\u7535\u8111\u4e0a\u540e\uff0c\u53d1\u73b0\u4ece\u67d0\u4e2a\u6587\u4ef6\u5f00\u59cb\uff0c\u64ad\u653e\u5668\u5c31\u65e0\u6cd5\u64ad\u653e\u4e86\u3002\u4f8b\u5982\uff0c01.avi \uff5e 05.avi \u662f\u80fd\u6b63\u5e38\u64ad\u653e\u7684\uff0c06.avi \u64ad\u653e\u65f6 vlc \u63d0\u793a\u9700\u8981\u4fee\u590d index \uff0c\u70b9\u51fb\u4fee\u590d\u540e\uff0c\u53ea\u80fd\u64ad\u653e\u524d 3 \u5206\u949f\uff08\u5168\u957f 5 \u5206\u949f\uff09\uff0c\u540e\u7eed\u7684 07.avi~10.avi \u5219\u5168\u90e8\u65e0\u6cd5\u64ad\u653e\u4e86\u3002\u7528 file \u67e5\u770b\u6587\u4ef6\u7c7b\u578b\uff0c01 \uff5e 05.avi \u663e\u793a\u662f</p>\n<pre><code>RIFF (little-endian) data, AVI, 1920 x 1080, 30.00 fps, video: Motion JPEG, audio: uncompressed PCM (mono, 16000 Hz)\n</code></pre>\n<p>06.avi \u8ddf 01 \uff5e 05 \u4e00\u6837\u7684\u8f93\u51fa\uff0c\u4f46\u662f 07.avi~10.avi \u5219\u5168\u90e8\u90fd\u663e\u793a\u662f<code>data</code>\u683c\u5f0f\u3002\u5c1d\u8bd5\u8fc7\u4f7f\u7528 ffmpeg \u4fee\u590d\uff0c\u4e00\u76f4\u62a5\u9519\uff0c\u9519\u8bef\u5982\u4e0b\uff1a</p>\n<pre><code>[in#0 @ 0x6000039b8800] Error opening input: Invalid data found when processing input\n</code></pre>\n<p>\u60f3\u95ee\u4e0b\u5927\u4f6c\u4eec\u8fd9\u79cd\u60c5\u51b5\u8fd8\u80fd\u4e0d\u80fd\u4fee\u590d\u7684\u4e86\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/afkool", 
        "name": "afkool", 
        "avatar": "https://cdn.v2ex.com/gravatar/09069d134d28763cbeccac8b2e9fff3e?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1081975", 
      "title": "\u5f00 emby \u670d\u7684\u8bdd\u9700\u8981\u5148\u5207\u7247\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1081975", 
      "date_published": "2024-10-20T11:59:16+00:00", 
      "content_html": "\u60f3\u641e\u4e2a\u5c0f\u4f17 emby \u670d\u73a9<br /><br />\u5982\u679c\u76f4\u63a5\u6254\u89c6\u9891\u6587\u4ef6\u8fc7\u53bb\uff0c\u670d\u52a1\u7aef\u89e3\u7801\u3002\u8fd9\u6837\u540c\u65f6\u89c2\u770b\u7684\u4eba\u591a\u4e86\uff0c\u662f\u4e0d\u662f CPU \u548c\u5e26\u5bbd\u90fd\u76f4\u63a5\u5c31\u70b8\u4e86\u554a\uff1f<br /><br />\u5207\u7247\u80fd\u7f13\u89e3\u5f88\u591a\u3002\u4e00\u822c\u5f00 emby \u670d\u662f\u76f4\u63a5\u6254\u89c6\u9891\u6587\u4ef6\u76f4\u8fde\u8fd8\u662f\u8ddf\u641e\u89c6\u9891\u7ad9\u4e00\u6837\u7528\u5207\u7247\u64ad\u653e\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/aqx", 
        "name": "aqx", 
        "avatar": "https://cdn.v2ex.com/avatar/06aa/b0ab/552995_large.png?m=1738049346"
      }, 
      "url": "https://www.v2ex.com/t/1079754", 
      "date_modified": "2024-10-13T01:37:08+00:00", 
      "content_html": "\u9700\u6c42\uff1aAI \u53bb\u9664\u89c6\u9891\u4e2d\u7684\u6f02\u6d6e\u6c34\u5370\uff0c\u5e76\u6700\u5927\u5316\u7684\u4fdd\u7559\u539f\u753b\u8d28\uff1b<br /><br />\u7248\u6743\uff1a\u4e0d\u4fb5\u6743\uff0c\u6211\u4e3b\u8981\u505a\u5185\u5bb9\u8bc4\u6d4b\uff0c\u7c7b\u4f3c\u7535\u5f71\u89e3\u8bf4\uff0c\u53ea\u5f15\u7528\u51e0\u79d2\u7684\u89c6\u9891\u3002<br /><br /><div class=\"embedded_video_wrapper\"><iframe src=\"https://www.youtube.com/embed/OnjM2AJKllg\" class=\"embedded_video\" allowfullscreen=\"\" type=\"text/html\" id=\"ytplayer\" frameborder=\"0\"></iframe></div><br />HitPaw Watermark Remover \u8f6f\u4ef6\u6211\u7528\u8fc7\uff0c\u6548\u679c\u4e0d\u597d\u3002", 
      "date_published": "2024-10-13T01:35:13+00:00", 
      "title": "\u6709\u505a UP \u4e3b\u7684\u5417\uff1f\u8fdb\u6765\u770b\u770b\u6709\u6ca1\u6709\u6bd4\u8fd9\u79cd AI \u53bb\u89c6\u9891\u6c34\u5370\u66f4\u597d\u7684\u529e\u6cd5\uff1f", 
      "id": "https://www.v2ex.com/t/1079754"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ocdye32", 
        "name": "ocdye32", 
        "avatar": "https://cdn.v2ex.com/gravatar/880b8d7c25e08cb08ae0c456184481a1?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1078738", 
      "date_modified": "2024-10-09T23:58:44+00:00", 
      "content_html": "<p>\u5047\u8bbe\u6211\u7528\u624b\u673a\u5f55\u5236\u4e86\u4e00\u6bb5 400MB \u7684\u89c6\u9891\uff0c\u7136\u540e\u6211\u7528 PR \u628a\u8fd9\u6bb5\u89c6\u9891\u91cd\u65b0\u538b\u5236\u6210\u5206\u522b\u4e3a 200MB 400MB 800MB \u7684\u76f8\u540c\u683c\u5f0f\u548c\u5206\u8fa8\u7387\u7684\u89c6\u9891\uff0c\u90a3\u4e48\u8fd9\u56db\u6bb5\u89c6\u9891\u7684\u6e05\u6670\u5ea6\u5927\u5c0f\u987a\u5e8f\u662f\u4ec0\u4e48\uff1f</p>\n", 
      "date_published": "2024-10-09T18:48:13+00:00", 
      "title": "\u7528\u66f4\u9ad8\u7684\u7801\u7387\u538b\u5236\u4e00\u6bb5\u89c6\u9891\uff0c\u4ed6\u76f8\u6bd4\u539f\u89c6\u9891\u591a\u51fa\u6765\u7801\u7387\u4f5c\u7528\u662f\u4ec0\u4e48\uff1f", 
      "id": "https://www.v2ex.com/t/1078738"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Jinnrry", 
        "name": "Jinnrry", 
        "avatar": "https://cdn.v2ex.com/gravatar/f759ce4a1c2d8c5530deeee4203a1575?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1078194", 
      "date_modified": "2024-10-08T02:48:26+00:00", 
      "content_html": "<p>\u80cc\u666f\uff1a</p>\n<p>\u5bbf\u4e3b\u673a PVE \uff0craid \u9635\u5217\uff0c2.5G \u7f51\u5361\uff0c128G \u5185\u5b58\uff0c32 \u6838\u5904\u7406\u5668\uff0cvGPU \u663e\u5361\uff0c\u673a\u5668\u786c\u4ef6\u80af\u5b9a\u662f\u6ca1\u6709\u4efb\u4f55\u95ee\u9898\u7684\u3002</p>\n<p>\u865a\u62df\u673a 1: ubuntu \u5b89\u88c5 docker \uff0cdocker \u5b89\u88c5 emby</p>\n<p>\u865a\u62df\u673a 2: \u9ed1\u7fa4\u6656</p>\n<p>\u914d\u7f6e\u65b9\u6848\uff1a\u9ed1\u88d9\u5f00\u542f smb \uff0cemby \u901a\u8fc7 smb \u8bbf\u95ee\u89c6\u9891\u5185\u5bb9</p>\n<p>\u64ad\u653e\u65b9\u6848\uff1a</p>\n<p>\u575a\u679c N1S Ultra \u6295\u5f71\u4eea\uff0c\u5b89\u88c5 emby \u5ba2\u6237\u7aef\u64ad\u653e</p>\n<p>\u95ee\u9898\uff1a</p>\n<p>1 \u3001\u64ad\u653e\u90e8\u5206\u84dd\u5149\u89c6\u9891\u7684\u65f6\u5019\u5f88\u5361\uff0c\u4f46\u662f\u770b\u8d77\u6765\u78c1\u76d8 io \uff0c\u7f51\u7edc io \uff0ccpu idel \u90fd\u6ca1\u6709\u4efb\u4f55\u5f02\u5e38\uff0c\u90a3\u4e48\u6211\u8fd9\u79cd\u67b6\u6784\u4e0b\uff0c\u5230\u5e95\u662f\u6295\u5f71\u4eea\u5728\u89e3\u7801\u8fd8\u662f NAS \u5728\u89e3\u7801\uff1f\u6211\u770b emby \u8bbe\u7f6e\u90a3\u91cc\u5199\u7740\u5982\u679c\u60f3\u8981\u7528\u663e\u5361\u52a0\u901f\uff0c\u9700\u8981\u4ed8\u8d39\uff0c\u6240\u4ee5\u6211\u8fd9\u4e2a NAS \u7684 GPU \u5e94\u8be5\u662f\u6ca1\u7528\u5427\uff1f\u6240\u4ee5\u5230\u5e95\u662f\u54ea\u4e2a\u5730\u65b9\u7684\u95ee\u9898\u5bfc\u81f4\u64ad\u653e\u5361\u987f\u7684\u5440\uff1f</p>\n<p>2 \u3001\u64ad\u653e\u90e8\u5206\u84dd\u5149\u89c6\u9891\u7684\u65f6\u5019\uff0c\u989c\u8272\u4e0d\u5bf9\uff0c\u6bd4\u5982\u753b\u9762\u5927\u90e8\u5206\u7eff\u8272\u90fd\u53d8\u6210\u4e86\u7ea2\u8272\u3002\u6bd4\u5982\u770b\u300a\u7329\u7403\u5d1b\u8d77\u300b\uff0c\u6240\u6709\u7684\u6811\u6728\u90fd\u53d8\u6210\u7ea2\u8272\u7684\u4e86\uff0c\u6211\u770b\u7f51\u4e0a\u8bf4\u597d\u50cf\u662f HDR \u7684\u95ee\u9898\uff0c\u4f46\u662f\u6211\u65e0\u8bba\u662f\u5728 Emby \u91cc\u9762\u8fd8\u662f\u5728\u6295\u5f71\u4eea\u4e0a\u9762\uff0c\u90fd\u6ca1\u627e\u5230\u54ea\u91cc\u6709\u76f8\u5173\u8bbe\u7f6e\uff0c\u8fd9\u4e2a\u53c8\u5230\u5e95\u662f\u54ea\u91cc\u7684\u95ee\u9898\u5462\uff1f</p>\n", 
      "date_published": "2024-10-08T02:47:57+00:00", 
      "title": "Emby \u64ad\u653e\u89c6\u9891\u5f88\u5361\uff0c\u989c\u8272\u4e5f\u4e0d\u6b63\u5e38\uff0c\u8bf7\u95ee\u662f\u600e\u4e48\u56de\u4e8b\uff1f", 
      "id": "https://www.v2ex.com/t/1078194"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/JiaNa", 
        "name": "JiaNa", 
        "avatar": "https://cdn.v2ex.com/gravatar/00e618f9d1908398f53001a4d0192163?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1077176", 
      "title": "\u5982\u4f55\u8bbe\u7f6e\u89c6\u9891\u5730\u7406\u4f4d\u7f6e\u5143\u4fe1\u606f\uff1f", 
      "id": "https://www.v2ex.com/t/1077176", 
      "date_published": "2024-09-30T10:03:02+00:00", 
      "content_html": "\u8981\u6c42\u7cbe\u786e\u5230\u7ecf\u7eac\u5ea6\uff0c\u53ef\u4ee5\u5728 Mac \u4e0a\u8fd0\u884c\uff0c\u6700\u597d\u4e5f\u9002\u7528\u4e8e\u7167\u7247\u3002<br /><br />\u526a\u8f91\u89c6\u9891\u540e\u4e22\u5931\u4e86\u539f\u6765\u7684\u4f4d\u7f6e\u4fe1\u606f\uff0c\u60f3\u8981\u8bfb\u53d6\u4e00\u4e2a\u89c6\u9891\u7684\u7ecf\u7eac\u5ea6\uff0c\u7136\u540e\u5c06\u5176\u8bbe\u7f6e\u4e3a\u53e6\u4e00\u4e2a\u89c6\u9891\u7684\u4f4d\u7f6e\u4fe1\u606f\u3002<br /><br />\u6807\u7b7e\uff1aExif"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/panxi", 
        "name": "panxi", 
        "avatar": "https://cdn.v2ex.com/avatar/8a43/2d46/543302_large.png?m=1762413050"
      }, 
      "url": "https://www.v2ex.com/t/1076187", 
      "date_modified": "2024-09-27T01:55:44+00:00", 
      "content_html": "\u4e0a\u9762\u8fd9\u4e24\u4e2a\u89c6\u9891\u5408\u5e76\u540e\u751f\u6210\u7684\u65b0\u89c6\u9891\u5728\u64ad\u5b8c\u7b2c\u4e00\u4e2a\u89c6\u9891\u540e\u64ad\u7b2c\u4e8c\u4e2a\u89c6\u9891\u753b\u9762\u4e2d\u4eba\u7269\u4f1a\u51fa\u73b0 0.5 \u79d2\u7684\u4e22\u5931, \u79bb\u5927\u8c31\u4e86, \u6709\u61c2\u7684\u5927\u4f6c\u77e5\u9053\u4e3a\u5565\u4e0d?<br /><br /><br />\u5408\u5e76\u89c6\u9891 1 <a target=\"_blank\" href=\"https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401313000.mp4\" rel=\"nofollow noopener\">https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401313000.mp4</a><br /><br />\u5408\u5e76\u89c6\u9891 2 <a target=\"_blank\" href=\"https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401269000.mp4\" rel=\"nofollow noopener\">https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401269000.mp4</a><br /><br />\u5408\u5e76\u540e\u7684 <a target=\"_blank\" href=\"https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401393000.mp4\" rel=\"nofollow noopener\">https://umi-digital-human.oss-cn-shenzhen.aliyuncs.com/videos/demo1727401393000.mp4</a><br /><br /><br />\u547d\u4ee4: \u5c31\u662f\u7b80\u5355\u7684\u5408\u5e76\u547d\u4ee4, videoList.txt \u5c31\u662f\u8fd9\u4e24\u4e2a\u89c6\u9891<br /><br />ffmpeg -f concat -safe 0 -i ./videoList.txt -c copy ./merged_video.mp4", 
      "date_published": "2024-09-27T01:49:14+00:00", 
      "title": "\u5144\u5f1f\u4eec, ffmpeg \u641e\u4e0d\u5b9a, \u6709\u61c2\u7684\u5927\u4f6c\u5417?", 
      "id": "https://www.v2ex.com/t/1076187"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/majianglin", 
        "name": "majianglin", 
        "avatar": "https://cdn.v2ex.com/gravatar/07ca8a3bdc355f4174cbfb302f6c4f44?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1075448", 
      "title": "\u6c42\u89c6\u9891\u76d1\u63a7\u89e3\u51b3\u65b9\u6848", 
      "id": "https://www.v2ex.com/t/1075448", 
      "date_published": "2024-09-24T08:31:14+00:00", 
      "content_html": "\u8981\u90e8\u7f72\u51e0\u5343\u4e2a\u6444\u50cf\u5934\uff0c\u5206\u5e03\u5728\u5168\u56fd\u5404\u5730\uff0c\u7f51\u7edc\u4f7f\u7528\u7269\u8054\u7f51\u8def\u7531\u5668\u4e0a\u7f51<br /><br />\u57fa\u672c\u9700\u6c42\uff1a<br /><br />     \u60f3\u5b9e\u73b0\u6d3b\u52a8\u68c0\u6d4b\u4e0a\u62a5\uff0c\u62cd\u7167\uff0c\u5728\u7ba1\u7406\u7aef\u63a7\u5236\u53f0(web)\u4e0a\u80fd\u67e5\u770b\u67d0\u4e2a\u6444\u50cf\u5934\u7684\u5b9e\u65f6\u753b\u9762<br /><br />\u9ad8\u7ea7\u9700\u6c42\uff1a<br />      \u68c0\u6d4b\u5230\u6709\u4eba\u6d3b\u52a8\uff0c\u5c31\u7ed9\u670d\u52a1\u5668\u4e0a\u62a5<br />      \u670d\u52a1\u5668\u4e0b\u53d1\u6307\u4ee4\uff0c\u53ef\u4ee5\u8f6c\u52a8\u6444\u50cf\u5934\uff0c\u62cd\u7167\uff0c\u5f55\u50cf\uff0c\u67e5\u770b\u5b9e\u65f6\u753b\u9762<br /><br />\u8fd9\u4e2a\u65b9\u5411\u54ea\u4f4d\u5927\u4f6c\u6709\u7ecf\u9a8c\uff1f\u6307\u70b9\u4e00\u4e0b\u6211<br /><br />\u6700\u597d\u6d41\u5a92\u4f53\u670d\u52a1\u5668\u4e5f\u662f\u5f00\u6e90\u7684\uff0c\u7528\u4e91\u670d\u52a1\u4e5f\u884c"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/whhxf910", 
        "name": "whhxf910", 
        "avatar": "https://cdn.v2ex.com/gravatar/8be6f4da634e80ae4c00a62f037d1abe?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1071246", 
      "title": "uniapp \u65b9\u5f0f\u5b9e\u73b0\u89c6\u9891\u64ad\u653e\u52a0\u5bc6\u7edf\u8ba1", 
      "id": "https://www.v2ex.com/t/1071246", 
      "date_published": "2024-09-09T03:25:00+00:00", 
      "content_html": "<h1>uniapp \u65b9\u5f0f\u5b9e\u73b0\u89c6\u9891\u64ad\u653e\u52a0\u5bc6\u7edf\u8ba1</h1>\n<p>\u5728\u79fb\u52a8\u5e94\u7528\u5f00\u53d1\u4e2d\uff0c\u89c6\u9891\u64ad\u653e\u529f\u80fd\u662f\u5e38\u89c1\u7684\u9700\u6c42\u4e4b\u4e00\uff0c\u800c\u89c6\u9891\u5185\u5bb9\u7684\u52a0\u5bc6\u4fdd\u62a4\u548c\u7edf\u8ba1\u5219\u6210\u4e3a\u4e86\u5f00\u53d1\u8005\u9700\u8981\u5173\u6ce8\u7684\u95ee\u9898\u3002\u672c\u6587\u5c06\u5206\u4eab\u5982\u4f55\u4f7f\u7528 uniapp \u7ed3\u5408\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\uff0c\u5b9e\u73b0\u89c6\u9891\u64ad\u653e\u7684\u52a0\u5bc6\u548c\u7edf\u8ba1\u529f\u80fd\u3002\u5bf9\u65b9\u6848\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u53ef V\uff1awjc24680525</p>\n<h2>\u73af\u5883\u51c6\u5907</h2>\n<p>\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u4f60\u5df2\u7ecf\u5b89\u88c5\u4e86 HBuilderX \uff0c\u5e76\u521b\u5efa\u4e86\u4e00\u4e2a uniapp \u9879\u76ee\u3002\u63a5\u4e0b\u6765\uff0c\u4f60\u9700\u8981\u4ece<a href=\"https://ext.dcloud.net.cn/plugin?id=2802\" rel=\"nofollow\">\u63d2\u4ef6\u5e02\u573a</a>\u8d2d\u4e70\u5e76\u4e0b\u8f7d\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\u3002</p>\n<h2>\u96c6\u6210\u63d2\u4ef6</h2>\n<ol>\n<li><strong>\u8d2d\u4e70\u63d2\u4ef6</strong>\uff1a\u5728\u63d2\u4ef6\u5e02\u573a\u4e2d\u9009\u62e9\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\uff0c\u5e76\u7ed1\u5b9a\u5230\u4f60\u7684\u9879\u76ee\u4e2d\u3002</li>\n<li><strong>\u914d\u7f6e\u63d2\u4ef6</strong>\uff1a\u5728\u9879\u76ee\u7684<code>manifest.json</code>\u6587\u4ef6\u4e2d\uff0c\u627e\u5230<code>app \u539f\u751f\u63d2\u4ef6\u914d\u7f6e</code>\u90e8\u5206\uff0c\u52fe\u9009\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\u3002</li>\n</ol>\n<h2>\u89c6\u9891\u64ad\u653e\u52a0\u5bc6</h2>\n<p>\u89c6\u9891\u52a0\u5bc6\u662f\u4fdd\u62a4\u89c6\u9891\u5185\u5bb9\u4e0d\u88ab\u975e\u6cd5\u83b7\u53d6\u7684\u91cd\u8981\u624b\u6bb5\u3002\u63d2\u4ef6\u63d0\u4f9b\u4e86\u5f3a\u5927\u7684\u52a0\u5bc6\u529f\u80fd\uff0c\u6211\u4eec\u53ef\u4ee5\u5229\u7528\u8fd9\u4e00\u529f\u80fd\u6765\u4fdd\u62a4\u6211\u4eec\u7684\u89c6\u9891\u5185\u5bb9\u3002</p>\n<h3>\u914d\u7f6e\u52a0\u5bc6\u53c2\u6570</h3>\n<p>\u9996\u5148\uff0c\u4f60\u9700\u8981\u5728\u89c6\u9891\u4e91\u5e73\u53f0\u83b7\u53d6<code>userid</code>\u3001<code>readtoken</code>\u3001<code>writetoken</code>\u548c<code>secretkey</code>\uff0c\u8fd9\u4e9b\u53c2\u6570\u5c06\u7528\u4e8e\u89c6\u9891\u7684\u52a0\u5bc6\u548c\u89e3\u5bc6\u3002</p>\n<pre><code class=\"language-javascript\">var configModule = uni.requireNativePlugin(\"PLV-VodUniPlugin-ConfigModule\");\nconfigModule.setToken({\n    'userid': '\u4f60\u7684 userid',\n    'readtoken': '\u4f60\u7684 readtoken',\n    'writetoken': '\u4f60\u7684 writetoken',\n    'secretkey': '\u4f60\u7684 secretkey'\n}, (ret) =&gt; {\n    if (ret.isSuccess) {\n        console.log('\u8bbe\u7f6e token \u6210\u529f');\n    } else {\n        console.error('\u8bbe\u7f6e token \u5931\u8d25\uff1a', ret.errMsg);\n    }\n});\n</code></pre>\n<h3>\u89c6\u9891\u64ad\u653e</h3>\n<p>\u4f7f\u7528\u89c6\u9891\u4e91\u70b9\u64ad\u63d2\u4ef6\u63d0\u4f9b\u7684\u64ad\u653e\u5668\u7ec4\u4ef6<code>plv-player</code>\u6765\u64ad\u653e\u89c6\u9891\u3002</p>\n<pre><code class=\"language-html\">&lt;template&gt;\n    &lt;plv-player\n        ref=\"vod\"\n        class=\"vod-player\"\n        seekType=\"0\"\n        autoPlay=\"true\"\n        disableScreenCAP=\"false\"\n        rememberLastPosition=\"false\"\n        @onPlayStatus=\"onPlayStatus\"\n        @onPlayError=\"onPlayError\"\n        @positionChange=\"positionChange\"&gt;\n    &lt;/plv-player&gt;\n&lt;/template&gt;\n\n&lt;script&gt;\nexport default {\n    methods: {\n        setVid() {\n            this.$refs.vod.setVid({\n                vid: '\u89c6\u9891\u7684 vid',\n                level: 0\n            }, (ret) =&gt; {\n                if (ret.errMsg) {\n                    uni.showToast({\n                        title: ret.errMsg,\n                        icon: \"none\"\n                    });\n                }\n            });\n        },\n        onPlayStatus(e) {\n            console.log('\u64ad\u653e\u72b6\u6001\uff1a', e.playbackState);\n        },\n        onPlayError(e) {\n            console.error('\u64ad\u653e\u9519\u8bef\uff1a', e.errCode, e.errEvent);\n        },\n        positionChange(e) {\n            console.log('\u5f53\u524d\u64ad\u653e\u4f4d\u7f6e\uff1a', e.currentPosition);\n        }\n    },\n    mounted() {\n        this.setVid();\n    }\n}\n&lt;/script&gt;\n\n&lt;style&gt;\n.vod-player {\n    width: 100%;\n    height: 100%;\n}\n&lt;/style&gt;\n</code></pre>\n<h2>\u89c6\u9891\u64ad\u653e\u7edf\u8ba1</h2>\n<p>\u89c6\u9891\u64ad\u653e\u7edf\u8ba1\u5bf9\u4e8e\u4e86\u89e3\u7528\u6237\u884c\u4e3a\u548c\u4f18\u5316\u5185\u5bb9\u81f3\u5173\u91cd\u8981\u3002\u63d2\u4ef6\u5bf9\u5e94\u7684\u7ba1\u7406\u540e\u53f0\u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684\u7edf\u8ba1\u5b57\u6bb5\u548c API \uff0c\u53ef\u6839\u636e\u5b9e\u9645\u9700\u6c42\u8c03\u7528</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/whhxf910", 
        "name": "whhxf910", 
        "avatar": "https://cdn.v2ex.com/gravatar/8be6f4da634e80ae4c00a62f037d1abe?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1071229", 
      "title": "uniapp \u65b9\u5f0f\u5b9e\u73b0\u76f4\u64ad\u5e26\u8d27\u7ebf\u4e0a\u57f9\u8bad", 
      "id": "https://www.v2ex.com/t/1071229", 
      "date_published": "2024-09-09T02:50:56+00:00", 
      "content_html": "<h1>uniapp \u65b9\u5f0f\u5b9e\u73b0\u76f4\u64ad\u5e26\u8d27\u7ebf\u4e0a\u57f9\u8bad</h1>\n<h2>\u7b80\u4ecb</h2>\n<p>\u5728\u5f53\u524d\u7684\u4e92\u8054\u7f51\u65f6\u4ee3\uff0c\u76f4\u64ad\u5df2\u6210\u4e3a\u4e00\u79cd\u6d41\u884c\u7684\u4e92\u52a8\u65b9\u5f0f\uff0c\u65e0\u8bba\u662f\u7528\u4e8e\u5546\u4e1a\u63a8\u5e7f\u8fd8\u662f\u6559\u80b2\u57f9\u8bad\u3002uniapp \u6846\u67b6\u5229\u7528 Vue.js \uff0c\u5141\u8bb8\u5f00\u53d1\u8005\u7f16\u5199\u4e00\u6b21\u4ee3\u7801\uff0c\u5373\u53ef\u5728\u591a\u4e2a\u5e73\u53f0\u4e0a\u90e8\u7f72\u5e94\u7528\uff0c\u5305\u62ec iOS \u3001Android \u3001Web \u4ee5\u53ca\u5404\u7c7b\u5c0f\u7a0b\u5e8f\u3002\u672c\u6587\u5c06\u63a2\u8ba8\u5982\u4f55\u4f7f\u7528 uniapp \u7ed3\u5408\u7279\u5b9a\u7684\u76f4\u64ad SDK \uff0c\u6765\u5f00\u53d1\u652f\u6301\u76f4\u64ad\u5e26\u8d27\u3001\u7ebf\u4e0a\u57f9\u8bad\u7684\u5e94\u7528\u3002\u5bf9\u65b9\u6848\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u53ef V\uff1awjc24680525</p>\n<h2>\u6280\u672f\u6982\u89c8</h2>\n<p>\u672c\u6587\u4ecb\u7ecd\u7684\u6280\u672f\u65b9\u6848\u6d89\u53ca\u4e00\u4e2a<a href=\"https://ext.dcloud.net.cn/plugin?id=5307\" rel=\"nofollow\">\u76f4\u64ad SDK \u63d2\u4ef6</a>\uff0c\u5b83\u4e3a Android \u548c iOS \u5e73\u53f0\u63d0\u4f9b\u4e86\u539f\u751f\u652f\u6301\uff0c\u80fd\u591f\u8986\u76d6\u7ebf\u4e0a\u57f9\u8bad\u548c\u76f4\u64ad\u5e26\u8d27\u4e24\u5927\u5e94\u7528\u573a\u666f\u3002</p>\n<h3>\u529f\u80fd\u7279\u70b9</h3>\n<ul>\n<li><strong>\u5728\u7ebf\u6559\u80b2</strong>\uff1a\u5305\u62ec\u89c6\u9891\u76f4\u64ad\u6559\u5b66\u3001PPT \u540c\u6b65\u5c55\u793a\u3001\u4e92\u52a8\u8ba8\u8bba\u3001\u804a\u5929\u5ba4\u4ee5\u53ca\u8bfe\u7a0b\u56de\u653e\u3002</li>\n<li><strong>\u76f4\u64ad\u9500\u552e</strong>\uff1a\u652f\u6301\u89c6\u9891\u76f4\u64ad\u3001\u5373\u65f6\u804a\u5929\u3001\u89c2\u4f17\u6253\u8d4f\u3001\u5546\u54c1\u5c55\u793a\u7b49\u529f\u80fd\uff0c\u9002\u5408\u7535\u5b50\u5546\u52a1\u6d3b\u52a8\u3002</li>\n</ul>\n<h2>\u5f00\u53d1\u6b65\u9aa4</h2>\n<h3>1. \u521b\u5efa\u8d26\u53f7</h3>\n<p>\u9996\u5148\uff0c\u9700\u8981\u5728\u76f8\u5173\u76f4\u64ad\u5e73\u53f0\u7684<a href=\"https://www.polyv.net?src=wh\" rel=\"nofollow\">\u5b98\u65b9\u7f51\u7ad9</a>\u6ce8\u518c\u8d26\u53f7\uff0c\u4ee5\u4fbf\u83b7\u53d6\u5fc5\u8981\u7684\u5f00\u53d1\u914d\u7f6e\u4fe1\u606f\u3002</p>\n<h3>2. \u6536\u96c6\u5173\u952e\u914d\u7f6e\u4fe1\u606f</h3>\n<p>\u5728\u6ce8\u518c\u5e76\u767b\u5f55\u5e73\u53f0\u540e\uff0c\u4ece\u540e\u53f0\u83b7\u53d6<code>appId</code>\u3001<code>userId</code>\u3001<code>appSecret</code>\u7b49\u5173\u952e\u914d\u7f6e\u4fe1\u606f\uff0c\u8fd9\u4e9b\u5c06\u7528\u4e8e SDK \u63d2\u4ef6\u7684\u521d\u59cb\u5316\u548c\u529f\u80fd\u8c03\u7528\u3002</p>\n<h3>3. SDK \u63d2\u4ef6\u96c6\u6210</h3>\n<p>\u6839\u636e SDK \u63d2\u4ef6\u63d0\u4f9b\u65b9\u7684\u6587\u6863\uff0c\u5c06\u76f4\u64ad SDK \u63d2\u4ef6\u96c6\u6210\u5230 uniapp \u9879\u76ee\u4e2d\u3002\u5305\u62ec\u4ee5\u4e0b\u6b65\u9aa4\uff1a</p>\n<ul>\n<li>\u5728\u9879\u76ee\u4e2d\u5f15\u5165\u5e76\u7ed1\u5b9a SDK \u63d2\u4ef6\u3002</li>\n<li>\u5728\u5f00\u53d1\u5de5\u5177\u4e2d\u914d\u7f6e\u9879\u76ee\u8bbe\u7f6e\uff0c\u542f\u7528 SDK \u63d2\u4ef6\u529f\u80fd\u3002</li>\n<li>\u5728\u4ee3\u7801\u4e2d\u8c03\u7528 SDK \u63d2\u4ef6\u63d0\u4f9b\u7684\u63a5\u53e3\uff0c\u5b9e\u73b0\u6240\u9700\u529f\u80fd\u3002</li>\n</ul>\n<h2>\u4ee3\u7801\u793a\u4f8b</h2>\n<h3>\u914d\u7f6e SDK \u63d2\u4ef6</h3>\n<pre><code class=\"language-javascript\">var configModule = uni.requireNativePlugin(\"LiveScenesConfigModule\");\n\n// \u521d\u59cb\u5316 SDK \u914d\u7f6e\nconfigModule.setConfig({\n    appId: \"\u60a8\u7684 appId\",\n    userId: \"\u60a8\u7684 userId\",\n    appSecret: \"\u60a8\u7684 appSecret\"\n}, (result) =&gt; {\n    if (result.isSuccess) {\n        console.log(\"SDK \u63d2\u4ef6\u914d\u7f6e\u6210\u529f\");\n    } else {\n        console.error(\"SDK \u914d\u7f6e\u5931\u8d25\uff1a\", result.errMsg);\n    }\n});\n</code></pre>\n<h3>\u4f7f\u7528\u64ad\u653e\u6a21\u5757</h3>\n<pre><code class=\"language-javascript\">var playModule = uni.requireNativePlugin(\"LiveScenesPlayModule\");\n\n// \u52a0\u5165\u76f4\u64ad\u6559\u5ba4\nplayModule.joinLiveClassroom(1, { // 1 \u8868\u793a\u5728\u7ebf\u6559\u80b2\u573a\u666f\n    channelId: \"\u7279\u5b9a\u9891\u9053\u53f7\",\n    additionalParams: {\n        param4: \"\u81ea\u5b9a\u4e49\u53c2\u6570\",\n        param5: \"\u81ea\u5b9a\u4e49\u53c2\u6570\"\n    }\n}, (result) =&gt; {\n    if (result.isSuccess) {\n        console.log(\"\u6210\u529f\u52a0\u5165\u76f4\u64ad\");\n    } else {\n        console.error(\"\u52a0\u5165\u76f4\u64ad\u5931\u8d25\uff1a\", result.errMsg);\n    }\n});\n</code></pre>\n<h2>\u6ce8\u610f\u4e8b\u9879</h2>\n<ul>\n<li>\u6240\u6709\u654f\u611f\u914d\u7f6e\u4fe1\u606f\u5e94\u5728\u670d\u52a1\u7aef\u8fdb\u884c\u5b89\u5168\u5904\u7406\uff0c\u5e76\u901a\u8fc7\u52a0\u5bc6\u65b9\u5f0f\u4f20\u8f93\u3002</li>\n<li>\u6839\u636e\u76ee\u6807\u5e73\u53f0\u7684\u8981\u6c42\uff0c\u53ef\u80fd\u9700\u8981\u5728\u5e94\u7528\u7684\u914d\u7f6e\u6587\u4ef6\u4e2d\u8bbe\u7f6e\u7279\u5b9a\u7684\u6743\u9650\u3002</li>\n</ul>\n<h2>\u7ed3\u8bba</h2>\n<p>\u5229\u7528 uniapp \u6846\u67b6\u7ed3\u5408\u76f4\u64ad SDK \u63d2\u4ef6\uff0c\u53ef\u4ee5\u9ad8\u6548\u5730\u5f00\u53d1\u51fa\u529f\u80fd\u4e30\u5bcc\u7684\u76f4\u64ad\u5e94\u7528\u3002\u672c\u6587\u63d0\u4f9b\u7684\u6307\u5357\u548c\u4ee3\u7801\u793a\u4f8b\u65e8\u5728\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u4e0a\u624b\u8fd9\u4e00\u8fc7\u7a0b\u3002</p>\n<h2>\u53c2\u8003\u8d44\u6e90</h2>\n<ul>\n<li><a href=\"https://uniapp.dcloud.io/\" rel=\"nofollow\">uniapp \u5f00\u53d1\u6587\u6863</a> </li>\n<li><a href=\"https://ext.dcloud.net.cn/plugin?id=5307\" rel=\"nofollow\">\u76f4\u64ad SDK \u96c6\u6210\u6307\u5357</a></li>\n</ul>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/caohongyuan", 
        "name": "caohongyuan", 
        "avatar": "https://cdn.v2ex.com/avatar/514a/d4cb/673231_large.png?m=1773466243"
      }, 
      "url": "https://www.v2ex.com/t/1069996", 
      "date_modified": "2024-09-03T10:40:33+00:00", 
      "content_html": "\u8fd8\u5728\u4e3a\u65e0\u5b57\u5e55\u7684 YouTube \u89c6\u9891\u800c\u70e6\u607c\uff1f<br /><br />\u5b89\u88c5\u4e86\u5f88\u591a\u63d2\u4ef6\u6216\u8005\u4ea7\u54c1\uff0c\u53d1\u73b0\u90fd\u603b\u7ed3\u4e0d\u4e86\u65e0\u5b57\u5e55\u7684 YouTube \u89c6\u9891\uff1f<br /><br />\u597d\u4e86\uff0c\u770b\u5230\u8fd9\u4e2a\u5e16\u5b50\u7684\u4f60\u627e\u5230\u6700\u4f73\u89e3\u51b3\u65b9\u6848\u4e86\uff01<br /><br />NoteGPT \u4e0a\u7ebf\u4e86\u4e00\u6b3e\u514d\u8d39\u7684\u5de5\u5177\uff1a <a target=\"_blank\" href=\"https://notegpt.io/youtube-transcript-generator\" rel=\"nofollow noopener\">https://notegpt.io/youtube-transcript-generator</a><br /><br />1 \uff09\u901a\u8fc7 AI \u63d0\u53d6\u65e0\u5b57\u5e55\u7684 YouTube \u89c6\u9891\u5b57\u5e55\uff1b<br />2 \uff09 AI \u603b\u7ed3\u5f53\u524d\u89c6\u9891\uff1b<br />3 \uff09 AI \u751f\u6210\u601d\u7ef4\u5bfc\u56fe\uff1b<br />4 \uff09 AI \u7ffb\u8bd1\u5f53\u524d\u89c6\u9891\uff1b<br />5 \uff09 AI \u5bf9\u8bdd\u5f53\u524d YouTube \u89c6\u9891\uff1b<br /><br />\u514d\u8d39\u4f7f\u7528\u3001\u65e0\u9700\u767b\u5f55\uff01", 
      "date_published": "2024-09-03T10:39:26+00:00", 
      "title": "\u4e00\u6b3e\u53ef\u4ee5\u63d0\u53d6\u548c\u603b\u7ed3\u65e0\u5b57\u5e55\u7684 YouTube \u7684\u514d\u8d39\u5de5\u5177\uff1a NoteGPT\uff01", 
      "id": "https://www.v2ex.com/t/1069996"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/whhxf910", 
        "name": "whhxf910", 
        "avatar": "https://cdn.v2ex.com/gravatar/8be6f4da634e80ae4c00a62f037d1abe?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1069939", 
      "title": "\u4e2d\u53f0\u5efa\u8bbe\u65b9\u6848\u5b9e\u73b0\u5b9a\u5236\u5316\u76f4\u64ad\u5e73\u53f0", 
      "id": "https://www.v2ex.com/t/1069939", 
      "date_published": "2024-09-03T08:20:02+00:00", 
      "content_html": "<h1>\u4e2d\u53f0\u5efa\u8bbe\u65b9\u6848\u5b9e\u73b0\u5b9a\u5236\u5316\u76f4\u64ad\u5e73\u53f0</h1>\n<h4>\u4ecb\u7ecd</h4>\n<ul>\n<li>\u5e02\u9762\u4e0a\u7684\u76f4\u64ad\u7cfb\u7edf\u8981\u4e48\u662f SaaS \u7684\uff0c\u62ff\u6765\u76f4\u63a5\u7528\uff0c\u4f46\u529f\u80fd\u603b\u662f\u6709\u4e0d\u6ee1\u8db3\u4e1a\u52a1\u9700\u6c42\u7684\u5730\u65b9\uff0c\u63d0\u7ed9\u5382\u5546\u5f00\u53d1\uff0c\u7b49\u5230\u7334\u5e74\u9a6c\u6708\u3002\u8981\u4e48\u662f\u4e91\u5382\u5546\u7684\u5404\u79cd\u8d44\u6e90\u7684\u8c03\u7528\uff0c\u8981\u7ec4\u88c5\u6210\u81ea\u5df1\u7684\u4e1a\u52a1\uff0c\u8981\u6295\u5165\u5927\u91cf\u7684\u7814\u53d1\u3002\u6709\u6ca1\u6709\u4e00\u79cd\u65b9\u5f0f\uff0c\u57fa\u672c\u7684\u76f4\u64ad\u529f\u80fd\u5df2\u7ecf\u6709\u4e86\uff0c\u9488\u5bf9\u4e1a\u52a1\u9700\u8981\u7684\u7279\u5b9a\u529f\u80fd\uff0c\u505a\u4e00\u4e9b\u7b80\u5355\u7684\u5b9a\u5236\u5f00\u53d1\u5c31\u80fd\u5feb\u901f\u4e0a\u7ebf\uff1f</li>\n<li>\u5c1d\u8bd5\u7528\u4e2d\u53f0\u7684\u65b9\u6848\uff0c\u5c06\u5b9a\u5236\u7684\u4e1a\u52a1\u62bd\u79bb\u51fa\u6765\u5355\u72ec\u505a\uff0c\u901a\u7528\u7684\u76f4\u64ad\u529f\u80fd\u4f7f\u7528\u5355\u70b9\u8df3\u8f6c\u7684\u65b9\u5f0f\uff0c\u7528\u6237\u8fdb\u5165 SaaS \u73af\u5883\u4f7f\u7528</li>\n<li>\u57fa\u4e8e\u4ee5\u4e0a\u601d\u8def\uff0c\u9700\u8981\u5b9e\u73b0\u5b9a\u5236\u4e1a\u52a1\u62bd\u79bb\u7684\u7aef\u5305\u62ec\uff1a\u7ba1\u7406\u540e\u53f0\u7aef\u3001\u76f4\u64ad\u89c2\u770b\u7aef\u3001\u5b9a\u5236 API \uff0c\u9700\u8981\u5382\u5546\u7684\u76f4\u64ad\u5e73\u53f0\u67b6\u6784\u652f\u6301\u8fd9\u51e0\u4e2a\u7aef\u7684\u5b9a\u5236\u548c\u76f4\u64ad\u57fa\u7840\u529f\u80fd\u7684\u5206\u79bb</li>\n<li>\u76ee\u524d\u627e\u5230\u53ef\u7528\u5e76\u4e14\u8d70\u901a\u7684\u76f4\u64ad\u5e73\u53f0\uff0c<a href=\"https://www.polyv.net?src=wh\" rel=\"nofollow\">\u4fdd\u5229\u5a01</a>\u53ef\u4ee5\u652f\u6301\uff0c\u8be6\u7ec6\u65b9\u6848\u53ef\u4ee5+V:wjc24680525 \uff0c\u5907\u6ce8\u201c\u4e2d\u53f0\u201d</li>\n</ul>\n<h4>\u89c2\u770b\u9875\u5b9a\u5236</h4>\n<ul>\n<li>\u57fa\u4e8e\u5b98\u65b9\u63d0\u4f9b\u7684<a href=\"https://gitee.com/polyv_ef/polyv-web-live-watch-sdk/tree/master\" rel=\"nofollow\">webSDK</a>\uff0cUI \u5c42\u7684\u4ee3\u7801\u5df2\u7ecf\u5f00\u6e90</li>\n<li>\u5b98\u65b9<a href=\"https://gitee.com/polyv_ef/polyv-web-live-watch-sdk/tree/master\" rel=\"nofollow\">webSDK</a>\u5e95\u5c42\u5df2\u652f\u6301\uff1a\u76f4\u64ad/\u56de\u653e\u64ad\u653e\u3001\u8fde\u9ea6\u3001\u804a\u5929\u4e92\u52a8\u3001\u9080\u8bf7\u3001\u62bd\u5956\u3001\u7ea2\u5305\u3001\u89c2\u770b\u4e0a\u62a5\u3001\u81ea\u5b9a\u4e49 userid \u4f20\u53c2\u7b49</li>\n<li>\u5728\u754c\u9762 UI \u5c42\u589e\u52a0\u4e1a\u52a1\u529f\u80fd\u7684\u5b9a\u5236\uff0c\u5982\u754c\u9762 UI \u7684\u4fee\u6539\u3001\u589e\u52a0\u81ea\u5b9a\u4e49\u7684\u62bd\u5956\u529f\u80fd\u7b49</li>\n</ul>\n<h4>\u7ba1\u7406\u540e\u53f0\u5b9a\u5236</h4>\n<ul>\n<li>\u57fa\u7840\u76f4\u64ad\u529f\u80fd\u53ef\u57fa\u4e8e\u5b98\u65b9\u63d0\u4f9b\u7684<a href=\"https://help.polyv.net/#/live/api/account/sso_manager\" rel=\"nofollow\">\u5355\u70b9\u767b\u5f55\u80fd\u529b</a>\u5f00\u53d1</li>\n<li>\u5b9a\u5236\u529f\u80fd\u90fd\u505a\u5230\u4e00\u4e2a\u7cfb\u7edf\u5185\uff0c\u8c03\u7528\u5382\u5546\u63d0\u4f9b\u7684<a href=\"https://help.polyv.net/#/live/api/v4/channel/create\" rel=\"nofollow\">API</a>\u5b9e\u73b0\u6bd4\u5982\u76f4\u64ad\u521b\u5efa\u65f6\u4f20\u5165\u7ec4\u7ec7\u901a\u8baf\u5f55\u4e2d\u7684\u7528\u6237\uff0c\u589e\u52a0\u76f4\u64ad\u5ba1\u6279\u73af\u8282\uff0c\u6210\u5458\u7279\u5b9a\u529f\u80fd\u6743\u9650\u7b49\u7b49</li>\n<li>API \u53ef\u57fa\u4e8e\u5382\u5546\u63d0\u4f9b\u7684\u80fd\u529b\u5c01\u88c5\uff0c\u57fa\u7840\u7684\u6570\u636e\u5b58\u5728\u5382\u5546\uff0c\u6539\u9020\u7684\u529f\u80fd\u6570\u636e\u5b58\u5728\u5b9a\u5236\u7cfb\u7edf\u5185</li>\n</ul>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/whhxf910", 
        "name": "whhxf910", 
        "avatar": "https://cdn.v2ex.com/gravatar/8be6f4da634e80ae4c00a62f037d1abe?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1068462", 
      "title": "\u5982\u4f55\u5b9e\u73b0 App \u5185\u7684\u89c6\u9891/\u76f4\u64ad\u60ac\u6d6e\u5c0f\u7a97\u64ad\u653e", 
      "id": "https://www.v2ex.com/t/1068462", 
      "date_published": "2024-08-28T07:04:47+00:00", 
      "content_html": "<h1>\u65b9\u6848\u6982\u8ff0</h1>\n<ul>\n<li>\n<p>\u529f\u80fd\uff1a\u4f7f\u7528 webview \u7684\u65b9\u6848\uff0c\u5728 App \u4e2d\u5b9e\u73b0\u89c6\u9891/\u76f4\u64ad\u7684\u60ac\u6d6e\u5c0f\u7a97\u64ad\u653e\u6548\u679c\uff0c\u652f\u6301\u5e94\u7528\u5185\u5c0f\u7a97\u3001\u7cfb\u7edf\u5c0f\u7a97\uff0c\u5728\u8ba2\u5355\u9875\u5c0f\u7a97\u64ad\u653e\uff0c\u56de\u5230\u76f4\u64ad\u95f4\u5c0f\u7a97\u6d88\u5931</p>\n</li>\n<li>\n<p>\u573a\u666f\uff1a\u9002\u7528\u4e8e\u8981\u5728 App \u4e2d\u5feb\u901f\u5b9e\u73b0\u76f4\u64ad\u5e26\u8d27\u573a\u666f\uff0c\u6216\u5728 App \u4e2d\u9700\u8981\u70b9\u64ad\u89c6\u9891\u5c0f\u7a97\u64ad\u653e\u7684\u573a\u666f</p>\n</li>\n<li>\n<p>\u652f\u6301\u73af\u5883\uff1a\u5b89\u5353\u3001iOS \u3001\u9e3f\u8499</p>\n</li>\n<li>\n<p>\u524d\u7f6e\u6761\u4ef6\uff1a\u4f7f\u7528<a href=\"https://www.polyv.net/?src=wh\" rel=\"nofollow\" title=\"\u4fdd\u5229\u5a01\">\u4fdd\u5229\u5a01</a>\u7684 webview SDK Demo \uff0c\u5bf9\u65b9\u6848\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u53ef+V\uff1awjc24680525 \uff0c\u5907\u6ce8\u201c\u5c0f\u7a97\u201d</p>\n</li>\n</ul>\n<h1>\u4e00\u3001\u5b89\u5353\u5bf9\u63a5\u8bf4\u660e</h1>\n<h2>1.1 \u96c6\u6210\u7b80\u4ecb</h2>\n<h3><strong>1.1.1 \u9879\u76ee\u67b6\u6784\u56fe</strong></h3>\n<h3><strong>1.1.2 \u4f7f\u7528\u6e90\u7801\u9879\u76ee\u96c6\u6210</strong></h3>\n<p>\u5f53\u524d\u5c06\u63d0\u4f9b\u7684\u6e90\u7801\u5305\u4e2d\u7684 PolyvAndroidWebViewDemo \u3001PLVWebViewSDK \u3001PLVJsBridge \u3001PLVFloatWindow \u56db\u4e2a\u9879\u76ee\u653e\u5165\u5230\u540c\u4e00\u76ee\u5f55\u4e0b\uff0c\u7136\u540e\u4f7f\u7528\u7f16\u8bd1\u5668\u6253\u5f00 PolyvAndroidWebViewDemo \u9879\u76ee\u5373\u53ef\u3002</p>\n<h3><strong>1.1.3 \u6e90\u7801\u96c6\u6210\u6ce8\u610f\u4e8b\u9879</strong></h3>\n<h4><strong>\u529f\u80fd\u5bf9\u63a5\u8bf4\u660e</strong></h4>\n<p>\u53c2\u8003\u00a01.2 \u529f\u80fd\u5bf9\u63a5\u6587\u6863</p>\n<h4><strong>\u66f4\u6362\u901a\u4fe1\u534f\u8bae</strong></h4>\n<p>\u5982\u679c\u9700\u8981\u66f4\u6362 web-native \u901a\u4fe1\u534f\u8bae\u7684\u60c5\u51b5\u65f6\uff0c\u53ef\u4ee5\u53c2\u8003\u63d0\u4f9b\u7684\u00a0\u00a01.3 \u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u6ce8\u610f\u4e8b\u9879<a href=\"https://j9k9c2q2qc.feishu.cn/docx/U7D5dyO4NoXlSBxu0emchu5AnSD#share-OCQMd5qbuoyuBFx0xDvccJ2xnXg\" rel=\"nofollow\" title=\"1.3 \u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u6ce8\u610f\u4e8b\u9879\"></a></p>\n<h2>1.2 \u529f\u80fd\u5bf9\u63a5\u6587\u6863</h2>\n<h3><strong>1.2.1 \u529f\u80fd\u8bbe\u7f6e</strong></h3>\n<h4><strong>\u8bbe\u7f6e Url \u548c</strong> <strong>UA</strong></h4>\n<p>\u5728\u542f\u52a8 PLVWebViewDemoActivity \u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u8bbe\u7f6e\u52a0\u8f7d\u7684 Url \u548c\u6dfb\u52a0\u4e0a\u9700\u8981\u7528\u5230\u7684 Ua \uff0c\u8fd9\u91cc\u53ef\u4ee5\u901a\u8fc7<code>PLVWebViewConfig</code>\u6765\u8fdb\u884c\u8bbe\u7f6e\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a</p>\n<pre><code>PLVWebViewConfig config = new PLVWebViewConfig(); \nconfig.setUrl(\"\u9700\u8981\u52a0\u8f7d\u7684 url\") .setUa(\"\u9700\u8981\u6dfb\u52a0\u7684 UA\"); \nPLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config);\n</code></pre>\n<h4><strong>\u8bbe\u7f6e\u5c0f\u7a97\u8fb9\u6846\u989c\u8272</strong></h4>\n<p>\u5f53\u524d SDK \u652f\u6301\u8bbe\u7f6e\u5c0f\u7a97\u8fb9\u6846\u989c\u8272\uff0c\u901a\u8fc7<code>PLVFloatWindowManager</code>\u8fdb\u884c\u8bbe\u7f6e\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a</p>\n<pre><code>PLVFloatWindowManager.getInstance().setSolidColor(Color.RED);\n</code></pre>\n<h5><strong>1 \uff09\u8bbe\u7f6e\u5c0f\u7a97\u8fb9\u6846\u539a\u5ea6</strong></h5>\n<p>\u5f53\u524d SDK \u652f\u6301\u8bbe\u7f6e\u5c0f\u7a97\u8fb9\u6846\u989c\u8272\uff0c\u901a\u8fc7<code>PLVFloatWindowManager</code>\u8fdb\u884c\u8bbe\u7f6e\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a</p>\n<pre><code>PLVFloatWindowManager.getInstance().setSolidWidth(20);\n</code></pre>\n<h5><strong>2 \uff09\u8bbe\u7f6e\u81ea\u52a8\u5f00\u542f\u5c0f\u7a97\u529f\u80fd</strong></h5>\n<p>\u5f53\u8fdb\u7a0b\u9000\u5230\u540e\u53f0\u65f6\u4f1a\u81ea\u52a8\u5524\u51fa\u5c0f\u7a97(\u9ed8\u8ba4\u5173\u95ed)\uff0c\u901a\u8fc7<code>PLVFloatWindowManager</code>\u8fdb\u884c\u8bbe\u7f6e\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a</p>\n<pre><code>PLVWebViewConfig config = new PLVWebViewConfig(); \nconfig.setSupportAutoFloating(true); // \u5f00\u542f\u81ea\u52a8\u5f00\u542f\u5c0f\u7a97\u529f\u80fd \nPLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config);\n</code></pre>\n<h5><strong>3 \uff09\u4f7f\u7528\u7cfb\u7edf/\u5e94\u7528\u5c0f\u7a97</strong></h5>\n<p>\u5f53\u524d\u5c0f\u7a97\u652f\u6301\u7cfb\u7edf\u5c0f\u7a97\u548c\u5e94\u7528\u7a97(\u9ed8\u8ba4\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97)\uff0c\u5982\u679c\u5f00\u542f\u7cfb\u7edf\u5c0f\u7a97\u9700\u8981\u8bf7\u6c42\u5c0f\u7a97\u60ac\u6d6e\u6743\u9650\uff0c\u800c\u5e94\u7528\u5c0f\u7a97\u4e0d\u9700\u8981\u8bf7\u6c42\u6743\u9650\uff0c\u6ce8\u610f\u5e94\u7528\u5c0f\u7a97\u4f9d\u8d56\u4e8e Activity \uff0c\u5f53 Activity \u88ab\u9500\u6bc1\u65f6\uff0c\u5e94\u7528\u5c0f\u7a97\u4e5f\u4f1a\u88ab\u5173\u95ed\u3002</p>\n<pre><code>PLVWebViewConfig config = new PLVWebViewConfig(); \nconfig.isSystemFloatingWindow(true);// \u4e3a true \u65f6\u4f7f\u7528\u7cfb\u7edf\u7a97\uff0cfalse \u4e3a\u4f7f\u7528\u5e94\u7528\u5c0f\u7a97 \nPLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config);\n</code></pre>\n<h5><strong>4 \uff09\u4f7f\u7528\u539f\u751f/web \u5f39\u51fa\u8bf7\u6c42\u6743\u9650\u7a97</strong></h5>\n<p>\u5f53\u524d sdk \u652f\u6301\u901a\u8fc7\u539f\u751f\u6216 web \u7aef\u6765\u5f39\u51fa\u8bf7\u6c42\u60ac\u6d6e\u6743\u9650\u5f39\u7a97\uff08\u9ed8\u8ba4\u4f7f\u7528\u539f\u751f\u5f39\u7a97\u65b9\u5f0f\uff09\u3002</p>\n<p>\u6ce8\u610f\u5982\u679c\u662f\u9009\u62e9\u4f7f\u7528 web \u7aef\u6765\u5f39\u7a97\u8bf7\u6c42\u60ac\u6d6e\u6743\u9650\u5f39\u7a97\uff0c\u9700\u8981 web \u7aef\u652f\u6301\u5bf9\u5e94\u7684\u4e8b\u4ef6\u3002</p>\n<pre><code>PLVWebViewConfig config = new PLVWebViewConfig(); \nconfig.setUseWebRequestPermission(true);// \u4e3a true \u65f6 web \u5f39\u7a97\uff0cfalse \u4e3a\u4f7f\u7528\u539f\u751f\u5f39\u7a97 \nPLVWebViewDemoActivity.startWebViewDemoActivity(PLVURLInputActivity.this, config);\n</code></pre>\n<h3><strong>1.2.2 \u76d1\u542c\u65b9\u6cd5</strong> <strong>js</strong> <strong>\u4e8b\u4ef6</strong></h3>\n<p>SDK \u5185\u90e8\u5df2\u7ecf\u5b9a\u4e49\u4e86\u4e00\u90e8\u5206\u4e0e web \u7aef\u901a\u4fe1\u7684 js \u4e8b\u4ef6\uff0c\u8fd9\u4e9b\u901a\u4fe1\u4e8b\u4ef6\u53ef\u4ee5\u5728 demo \u5c42\u4e2d\u91cd\u5199\u67d0\u4e9b\u65b9\u6cd5\u8fdb\u884c\u76d1\u542c\u548c\u62e6\u622a\u5904\u7406\uff0c\u8fd9\u91cc\u4ee5\u76d1\u542c onShare \u4e8b\u4ef6\u8fdb\u884c\u4e3a\u4f8b\uff1a</p>\n<pre><code>public class PLVWebViewDemoActivity extends PLVWebViewBaseActivity { \n    @Override \n    public void onShare() { \n        // \u76d1\u542c\u5230 onShare \u4e8b\u4ef6\u7684\u5904\u7406 \n        ... \n        super.onShare(); \n    } \n}\n</code></pre>\n<p>\u53ef\u4ee5\u9009\u62e9\u9700\u8981\u76d1\u542c\u7684 js \u4e8b\u4ef6\u8fdb\u884c\u91cd\u5199\u5b9e\u73b0\u5bf9\u4e8b\u4ef6\u7684\u76d1\u542c\u3002</p>\n<p><code>\u6ce8\u610f:\u8fd9\u4e9b js \u901a\u4fe1\u4e8b\u4ef6\u90fd\u662f\u4e0e webview \u5173\u8054\uff0c\u5f00\u542f\u7cfb\u7edf\u5c0f\u7a97\u540e,\u5373\u4f7f Activity \u88ab\u9500\u6bc1\u4f9d\u7136\u80fd\u6536\u5230\u6765\u81ea web \u7aef\u53d1\u9001\u7684\u6d88\u606f\uff0c\u89e6\u53d1\u8fd9\u4e9b\u65b9\u6cd5\uff0c\u6240\u4ee5\u91cd\u5199\u8fd9\u4e9b\u65b9\u6cd5\u65f6\uff0c\u5c3d\u91cf\u907f\u514d\u505a\u4e0e Activity \u751f\u547d\u5468\u671f\u5173\u8054\u7684\u64cd\u4f5c</code></p>\n<h4><strong>\u5141\u8bb8\u7684\u76d1\u542c</strong> <strong>js</strong> <strong>\u4e8b\u4ef6</strong></h4>\n<p>\u5f53\u524d\u652f\u6301\u901a\u8fc7\u91cd\u5199\u65b9\u6cd5\u6765\u76d1\u542c\u4e8b\u4ef6\uff1b</p>\n<p>\u6709\u4ee5\u4e0b\u8fd9\u4e9b\u65b9\u6cd5\uff1a</p>\n<pre><code>    /**\n     * \u70b9\u51fb\u5546\u54c1\uff0c\u5c06\u5207\u6362\u5230\u5c0f\u7a97\u65f6\u4f1a\u89e6\u53d1\u8be5\u56de\u8c03\n     *\n     * @param width   \u5c0f\u7a97\u7684\u5bbd\n     * @param height  \u5c0f\u7a97\u7684\u9ad8\n     * @param newPage \u662f\u5426\u6253\u5f00\u65b0\u7684\u4e00\u9875\n     * @param link    \u6253\u5f00\u65b0\u7684\u4e00\u9875\u52a0\u8f7d\u7684 url\n     * @param data    \u5176\u4ed6\u66f4\u591a\u6570\u636e\uff0c\u5f00\u53d1\u8005\u53ef\u6839\u636e\u9700\u8981\u81ea\u5b9a\u4e49\u5b9e\u73b0\u903b\u8f91\uff0c\u6570\u636e\u4e3a json \u683c\u5f0f\n     */\n    void changeToWindowForProduct(int width, int height, boolean newPage, String link, String data);\n\n    /**\n     * \u7528\u6237\u4e3b\u52a8\u8c03\u7528\u5207\u6362\u5230\u5c0f\u7a97\u7684\u65b9\u6cd5\uff0c\u5728\u5207\u6362\u524d\u4f1a\u89e6\u53d1\u8be5\u56de\u8c03\n     *\n     * @param width  \u5c0f\u7a97\u7684\u5bbd\n     * @param height \u5c0f\u7a97\u7684\u9ad8\n     */\n    void changeToWindowForUser(int width, int height);\n\n    /**\n     * \u70b9\u51fb\u5c0f\u7a97\u533a\u57df\uff0c\u4ece\u5c0f\u7a97\u4e2d\u6062\u590d\u5230\u9875\u9762\u89e6\u53d1\u8be5\u56de\u8c03\n     **/\n    void changeToNormal();\n\n    /**\n     * \u70b9\u51fb\u5c0f\u7a97\u5173\u95ed\u6309\u94ae\uff0c\u5173\u95ed\u5c0f\u7a97\u89e6\u53d1\u8be5\u56de\u8c03\n     **/\n    void closeWindow();\n\n    /**\n     * \u70b9\u51fb\u8fd4\u56de\u4e8b\u4ef6\n     */\n    void onGobackPressed();\n\n    /**\n     * \u6a2a\u7f6e\u5c4f\u5e55\u4e8b\u4ef6\n     */\n    void onLandScreen();\n\n    /**\n     * \u7ad6\u76f4\u5c4f\u5e55\u4e8b\u4ef6\n     */\n    void onPortraitScreen();\n\n    /**\n     * \u5206\u4eab\u4e8b\u4ef6\n     */\n    void onShare();\n\n    /**\n     * \u6536\u85cf\u4e8b\u4ef6\n     */\n    void onCollect();\n\n    /**\n     * \u9690\u85cf\u72b6\u6001\u680f\uff0c\u8fdb\u5165\u6c89\u6d78\u6a21\u5f0f\n     */\n    void hideNavigationBar();\n\n    /**\n     * \u663e\u793a\u72b6\u6001\u680f\uff0c\u9000\u51fa\u6c89\u6d78\u6a21\u5f0f\n     */\n    void showNavigationBar();\n\n    /**\n     * \u6253\u5f00\u60ac\u6d6e\u7a97\u6743\u9650\u9875\u9762\n     */\n    void requestFloatWindowPermissionByWeb();\n\n    /**\n     * \u53d1\u9001\u5f53\u524d\u5c0f\u7a97\u7684\u6253\u5f00\u72b6\u6001\u7ed9\u524d\u7aef\n     */\n    void getFloatWindowStatus();\n\n    /**\n     * \u83b7\u53d6\u5f53\u524d\u7684\u7f51\u8def\u72b6\u6001\n     */\n    void getCurrentNetworkStatus();\n\n    /**\n     * \u8bbe\u7f6e\u662f\u5426\u5f00\u542f\u81ea\u52a8\u60ac\u6d6e\u7a97\u6743\u9650\n     * @param enable true \u4e3a\u6253\u5f00\uff0cfalse \u4e3a\u7518\u6bd4\n     */\n    void setEnableBackground(boolean enable);\n\n    /**\n     * \u83b7\u53d6\u662f\u5426\u5f00\u542f\u4e86\u81ea\u52a8\u60ac\u6d6e\u7a97\u7684\u6743\u9650\n     */\n    void getEnableBackground();\n\n    /**\n     * \u5904\u7406\u5176\u4ed6 event\n     */\n    void handleOtherEvent(String event);\n</code></pre>\n<h3>1.2.<strong>3 \u6ce8\u518c\u65b0\u7684</strong> <strong>js</strong> <strong>\u901a\u4fe1\u4e8b\u4ef6</strong></h3>\n<p>SDK \u652f\u6301\u6ce8\u518c\u81ea\u5b9a\u4e49 js \u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u6ce8\u518c\u81ea\u5b9a\u4e49 js \u4e8b\u4ef6\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a</p>\n<pre><code>@Override\nprotected void initHandleForDemo() {\n    //\u76d1\u542c\u6765\u81ea web \u7aef\u53d1\u9001\u4e8b\u4ef6\n   floatableLayout.getWebView().registerHandler(\"\u76d1\u542c\u4e8b\u4ef6\", new BridgeHandler() {\n        @Override\n        public void handler(String s, CallBackFunction callBackFunction) {}\n    });\n    \n    //\u5411 web \u7aef\u53d1\u9001\u5bf9\u5e94\u4e8b\u4ef6\u548c\u6d88\u606f\n   floatableLayout.getWebView().callHandler(\"\u53d1\u9001\u4e8b\u4ef6\", \"\u53d1\u9001\u6d88\u606f\", new CallBackFunction() {\n        @Override\n        public void onCallBack(String s\n        }\n    });\n}\n</code></pre>\n<p><code>\u6ce8\u610f\uff1a\u6ce8\u518c\u65b0\u7684 js \u4e8b\u4ef6\u65f6\u4e0d\u4ec5\u9700\u8981\u539f\u751f\u7aef\u505a\u76f8\u5e94\u7684\u64cd\u4f5c\uff0c\u8fd8\u9700\u8981 web \u7aef\u6709\u6ce8\u518c\u5bf9\u5e94\u7684\u4e8b\u4ef6\uff0c\u5426\u5219\u662f\u539f\u751f\u7aef\u662f\u4e0d\u4f1a\u63a5\u6536\u5230\u5bf9\u5e94\u7684\u4e8b\u4ef6\u6d88\u606f</code></p>\n<h2>1.3\u00a0<strong>\u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u6ce8\u610f\u4e8b\u9879</strong></h2>\n<h3><strong>1.3.1 \u8bf4\u660e</strong></h3>\n<p>\u5f53\u524d SDK \u5185\u90e8\u662f\u901a\u8fc7 Jsbridge \u8be5\u5e93\u6765\u5b9e\u73b0 web \u7aef\u4e0e\u539f\u751f\u7aef\u7684\u901a\u4fe1\uff0cJsbridge \u4e2d\u5b9a\u4e49\u4e86 web \u7aef\u4e0e\u539f\u751f\u7684\u901a\u4fe1\u89c4\u5219\uff0c\u5982\u679c\u96c6\u6210\u9879\u76ee\u662f\u6ca1\u6709\u5236\u5b9a\u6307\u5b9a\u7684 web-native \u901a\u4fe1\u89c4\u5219\uff0c\u90a3\u4e48\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 SDK \u7684\u901a\u4fe1\u89c4\u5219\u5373\u53ef\uff0c\u65e0\u9700\u5176\u4f59\u6539\u52a8\u3002</p>\n<p>\u5982\u679c\u96c6\u6210\u9879\u76ee\u4e2d\u6709\u5b9a\u5236\u6307\u5b9a\u7684 web-native \u901a\u4fe1\u89c4\u5219\uff0c\u53ef\u4ee5\u53c2\u8003\u4e0b\u9762\u7684\u65b9\u5f0f\u8fdb\u884c\u4fee\u6539\u3002</p>\n<p>\u65e0\u8bba\u662f\u4f7f\u7528\u54ea\u4e00\u79cd\u901a\u4fe1\u89c4\u5219\uff0c\u5173\u952e\u5728\u4e8e\u539f\u751f\u7aef\u53d1\u9001/\u63a5\u6536 web \u7aef\u6d88\u606f\uff0cweb \u7aef\u53d1\u9001/\u63a5\u6536\u539f\u751f\u7aef\u6d88\u606f\uff0c\u6240\u4ee5\u5f53\u9700\u8981\u66f4\u6362 SDK \u5185\u90e8\u7684 web-native \u901a\u4fe1\u89c4\u5219\u4ec5\u5173\u6ce8\u4e0a\u8ff0\u7684\u4e24\u70b9\u5373\u53ef\u3002</p>\n<h3><strong>1.3.2 \u66f4\u6362 native \u7aef\u901a\u4fe1\u89c4\u5219</strong></h3>\n<p>\u56e0\u4e3a sdk \u5185\u90e8\u662f\u4f9d\u8d56\u4e8e jsbridge \u8be5\u6a21\u5757\u5b9e\u73b0 web-native \u901a\u4fe1\uff0c\u5f53\u9700\u8981\u66f4\u6362\u901a\u4fe1\u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u9009\u62e9\u4e0d\u4f9d\u8d56\u8be5\u6a21\u5757\u3002</p>\n<h3><strong>1.3.3 \u66f4\u6539 PLVBaseWebView \u7ee7\u627f\u7c7b</strong></h3>\n<pre><code>public class PLVBaseWebView extends BridgeWebView {\n    ....\n}\n</code></pre>\n<p>\u53ef\u5c06 PLVBaseWebView \u7ee7\u627f\u7684 BridgeWebView \u66f4\u6362\u4e3a\u96c6\u6210\u9879\u76ee\u4e2d\u6307\u5b9a\u901a\u4fe1\u89c4\u5219\u7684 webview \u3002</p>\n<h3><strong>1.3.4 \u66f4\u6539 WebViewClient</strong></h3>\n<p>WebViewClient \u662f\u5b9e\u73b0\u539f\u751f\u7aef\u63a5\u6536 web \u7aef\u6d88\u606f\u7684\u5173\u952e\uff0c\u4e5f\u662f\u5b9a\u5236\u4fee\u6539 webview \u7684\u6838\u5fc3\u90e8\u4efd\uff0c\u6240\u4ee5\u5728\u66f4\u6362\u901a\u4fe1\u89c4\u5219\u65f6\u4e5f\u9700\u8981\u66f4\u6362 WebViewClient</p>\n<pre><code>//\u66ff\u6362\u81ea\u5df1\u9700\u8981\u7528\u5230\u7684 WebViewClient \nwebView.setWebViewClient(webviewClient);\n</code></pre>\n<p>\u53ef\u4ee5\u901a\u8fc7 setWebViewClient(new WebViewClient() \u65b9\u6cd5\u4e3a webview \u8bbe\u7f6e\u6307\u5b9a WebViewclient \u3002</p>\n<h3><strong>1.3.5 \u66f4\u6539\u539f\u751f\u7aef\u53d1\u9001/\u63a5\u6536 web \u7aef\u6d88\u606f\u7684\u65b9\u6cd5</strong></h3>\n<ol>\n<li>\u66f4\u6362\u53d1\u9001\u6d88\u606f\u65b9\u5f0f</li>\n</ol>\n<pre><code>public void callMessage(String type, String message) {\n    //\u5f53\u4f7f\u7528\u7684\u65b0\u7684 web-native \u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u4e0b\u9762\u7684\u4ee3\u7801\u4fee\u6539\u4e3a webview \u4f7f\u7528\u65b0\u89c4\u5219\u53d1\u9001\u6d88\u606f\u65f6\u7684\u4ee3\u7801\n    webview.callHandler(type, message, new CallBackFunction() {\n        @Override\n        public void onCallBack(String s) {\n          ...\n        }\n    });\n}\n</code></pre>\n<p>\u5f53\u524d SDK \u5185\u90e8\u65f6\u901a\u8fc7 webview.callHandler()\u65b9\u6cd5\u6765\u5b9e\u73b0\u6d88\u606f\u7684\u53d1\u9001\uff0c\u5f53\u66f4\u6362\u65b0\u7684\u901a\u4fe1\u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u8fd9\u4e2a webview.callHandler()\u65b9\u6cd5\u66ff\u6362\u4e3a\u65b0\u89c4\u5219\u4e2d\u5bf9\u5e94\u539f\u751f\u7aef\u53d1\u9001\u6d88\u606f\u7684\u65b9\u6cd5\u3002</p>\n<ol>\n<li>\u66f4\u6362\u63a5\u6536 web \u7aef\u6d88\u606f</li>\n</ol>\n<pre><code>webview.registerHandler(\"xxx\", new BridgeHandler() {\n    @Override\n    public void handler(String s, CallBackFunction callBackFunction) {\n        ...    \n    }\n});\n</code></pre>\n<p>\u5f53\u524d SDK \u5185\u90e8\u662f\u901a\u8fc7 webview.registerHandler()\u65b9\u6cd5\u6765\u76d1\u542c web \u7aef\u53d1\u9001\u7684\u6d88\u606f\uff0c\u5f53\u66f4\u6362\u65b0\u7684\u901a\u4fe1\u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u8fd9\u4e2a webview.registerHandler()\u65b9\u6cd5\u66ff\u6362\u4e3a\u65b0\u89c4\u5219\u4e2d\u5bf9\u5e94\u539f\u751f\u7aef\u63a5\u6536 web \u6d88\u606f\u7684\u65b9\u6cd5\u3002</p>\n<h3><strong>1.3.6 \u66f4\u6362 web \u7aef\u901a\u4fe1\u89c4\u5219</strong></h3>\n<p>web-native \u901a\u4fe1\u89c4\u5219\u662f\u7531 web \u7aef\u548c\u539f\u751f\u7aef\u4e24\u7aef\u5b9a\u5236\u7684\uff0c\u6240\u4ee5\u5f53\u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u4e0d\u4ec5\u9700\u8981\u539f\u751f\u7aef\u66f4\u6362\uff0cweb \u7aef\u4e5f\u9700\u8981\u8fdb\u884c\u66f4\u6362\u3002</p>\n<h4><strong>\u6ce8\u610f\u4e8b\u9879</strong></h4>\n<p>\u5f53\u524d\u9700\u8981\u901a\u4fe1\u7684 web \u9875\u9762 \u4e0e \u66f4\u6362\u901a\u4fe1\u89c4\u5219\u540e\u7684\u539f\u751f\u7aef \u6240\u4f7f\u7528\u7684\u901a\u4fe1\u89c4\u5219\u662f\u5426\u662f\u5bf9\u5e94\uff0c\u5982\u679c\u662f\u5bf9\u5e94\u7684\u60c5\u51b5\u4e0b\u65e0\u9700\u505a\u5176\u4ed6\u66f4\u66ff\u3002</p>\n<p>\u5982\u679c\u9700\u8981\u901a\u4fe1\u7684 web \u9875\u9762\u4e0e \u66f4\u6362\u901a\u4fe1\u89c4\u5219\u540e\u7684\u539f\u751f\u7aef \u6240\u4f7f\u7528\u7684\u4e0d\u5bf9\u5e94\uff0c\u90a3\u4e48\u5c31\u9700\u8981\u53bb\u66f4\u66ff web \u7aef\u7684\u901a\u4fe1\u89c4\u5219\u3002</p>\n<p><code>\u5982 web \u7aef\u9875\u9762\u9700\u8981\u4f7f\u7528\u4fdd\u5229\u5a01\u7684 web \u9875\u9762\uff08\u5f53\u524d\u4fdd\u5229\u5a01 web \u9875\u9762\u4e0e sdk \u5185\u90e8\u6240\u4f7f\u7528\u7684\u901a\u4fe1\u89c4\u5219\u4e00\u81f4\uff0c\u5f53\u539f\u751f\u7aef\u5207\u6362\u901a\u4fe1\u89c4\u5219\uff0c\u90a3\u4e48 web \u7aef\u9875\u9762\u4e5f\u9700\u8981\u66f4\u6362\u5bf9\u5e94\u901a\u4fe1\u89c4\u5219\uff09</code></p>\n<h3><strong>1.3.7 \u66f4\u6362 web \u7aef\u53d1\u9001/\u63a5\u6536\u65b9\u6cd5</strong></h3>\n<h4>1.\u66f4\u6539 web \u7aef\u53d1\u9001\u6d88\u606f\u65b9\u5f0f</h4>\n<pre><code> window.bridge.callHandler(\n                'callAppEvent', message,\n                function(responseData) {\n                   //\u53d1\u9001\u6d88\u606f\n                    ....\n                }\n            );\n</code></pre>\n<p>\u5f53\u524d SDK \u5185\u90e8\u4e0e Web \u7aef\u5bf9\u5e94\u7684\u901a\u4fe1\u89c4\u5219\u662f\u901a\u8fc7 bridge.callHandler()\u65b9\u6cd5\u6765\u8fdb\u884c\u53d1\u9001\u6d88\u606f\uff0c\u5f53\u66ff\u6362\u65b0\u7684\u901a\u4fe1\u89c4\u5219\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528\u65b0\u7684\u53d1\u9001\u65b9\u5f0f\u6765\u53d6\u4ee3\u8fd9\u4e2a bridge.callHandler()\u65b9\u6cd5</p>\n<h4>2.\u66f4\u6539 web \u7aef\u63a5\u6536\u6d88\u606f\u65b9\u5f0f</h4>\n<pre><code>// \u76d1\u542c\u6765\u81ea xxx \u4e8b\u4ef6\u7684\u6d88\u606f\nbridge.registerHandler(\"xxx\", function(data, responseCallback) {\n                document.getElementById(\"show\").innerHTML = (data);\n});\n</code></pre>\n<p>\u5f53\u524d SDK \u5185\u90e8\u4e0e Web \u7aef\u5bf9\u5e94\u7684\u901a\u4fe1\u89c4\u5219\u662f\u901a\u8fc7 bridge.registerHandler()\u65b9\u6cd5\u6765\u63a5\u6536\u6d88\u606f\uff0c\u5f53\u66ff\u6362\u65b0\u7684\u901a\u4fe1\u89c4\u5219\u540e\uff0c\u53ef\u4ee5\u4f7f\u7528\u65b0\u7684\u53d1\u9001\u65b9\u5f0f\u6765\u53d6\u4ee3\u8fd9\u4e2a bridge.registerHandler()\u65b9\u6cd5</p>\n<h1>\u4e8c\u3001iOS \u5bf9\u63a5\u8bf4\u660e</h1>\n<h2>2.1 \u96c6\u6210\u7b80\u4ecb</h2>\n<h3>2.1.1 \u9879\u76ee\u67b6\u6784\u56fe</h3>\n<h3>2.1.2 \u8fd0\u884c\u73af\u5883\u8981\u6c42</h3>\n<table>\n<thead>\n<tr>\n<th>\u540d\u79f0\u00b7</th>\n<th>\u8981\u6c42</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>iOS \u7cfb\u7edf</td>\n<td>9.0+</td>\n</tr>\n<tr>\n<td>CocoaPods</td>\n<td>1.11.3+</td>\n</tr>\n<tr>\n<td>Xcode</td>\n<td>11.0+</td>\n</tr>\n</tbody></table><h2>2.2 \u5feb\u901f\u96c6\u6210</h2>\n<h3>2.2.1 <strong>\u9879\u76ee\u914d\u7f6e</strong></h3>\n<h4><strong>\u914d\u7f6e\u652f\u6301\u7cfb\u7edf\u7248\u672c</strong></h4>\n<p>\u6253\u5f00\u9879\u76ee\u7684 PROJECT - Deployment Target - iOS Deployment Target \u6539\u4e3a 9.0 \u6216\u66f4\u9ad8\u3002</p>\n<p>\u6253\u5f00\u9879\u76ee\u7684 TARGETS - General - Deployment Info \uff0c\u628a iOS \u7cfb\u7edf\u6539\u4e3a 9.0 \u6216\u66f4\u9ad8\u3002</p>\n<h3><strong>2.2.2 \u914d\u7f6e App Transport Security (ATS)</strong></h3>\n<p>\u6253\u5f00\u9879\u76ee\u7684\u00a0<code>info.plist\u00a0</code>\u6587\u4ef6\uff0c\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a</p>\n<pre><code>&lt;key&gt;NSAppTransportSecurity&lt;/key&gt;\n&lt;dict&gt;\n    &lt;key&gt;NSAllowsArbitraryLoads&lt;/key&gt;\n    &lt;true/&gt;\n    &lt;key&gt;NSAllowsArbitraryLoadsInWebContent&lt;/key&gt;\n    &lt;true/&gt;\n&lt;/dict&gt;\n</code></pre>\n<h3>2.2.3 <strong>\u914d\u7f6e\u8bbe\u5907\u65cb\u8f6c</strong></h3>\n<p>\u64ad\u653e\u5668\u652f\u6301\u5168\u5c4f\u64ad\u653e\uff0c\u9700\u8981\u5728 TARGETS - General - Deployment Info \u4e2d\uff0c\u52fe\u9009\u652f\u6301\u7684\u6a2a\u5c4f\u65cb\u8f6c\u65b9\u5411\u3002</p>\n<h3>2.2.4 <strong>\u914d\u7f6e\u540e\u53f0\u64ad\u653e\u548c\u753b\u4e2d\u753b</strong></h3>\n<p>\u6253\u5f00\u9879\u76ee\u7684 TARGETS - Signings &amp; Capabilities \uff0c\u70b9\u51fb + Capability \uff0c\u9009\u62e9 Background Modes \uff0c\u52fe\u9009 \u2018Audio, AirPlay, and Picture in Picture\u2019\u3002</p>\n<h2><strong>2.3 \u96c6\u6210</strong> <strong>SDK</strong></h2>\n<h3>2.<strong>3.1 Pod \u65b9\u5f0f\u96c6\u6210</strong></h3>\n<h4><strong>\u96c6\u6210 PLVWebViewSDK</strong></h4>\n<p>\u5728 Podfile \u6587\u4ef6\u4e2d\uff0c\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9\uff1a</p>\n<pre><code>pod 'PLVWebViewSDK', '~&gt; 1.0.0'\n</code></pre>\n<p>\u5728\u7ec8\u7aef\u6267\u884c\u00a0<code>pod install</code></p>\n<h4><strong>\u96c6\u6210\u7cfb\u7edf\u5c0f\u7a97</strong></h4>\n<p>\u5982\u679c\u9700\u8981\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97\u529f\u80fd\uff0c\u5219\u9700\u8981\u5728 Podfile \u6587\u4ef6\u4e2d\u53e6\u5916\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9</p>\n<pre><code># \u5305\u542b\u7cfb\u7edf\u753b\u4e2d\u753b -- \u5982\u679c\u4e0d\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97 \u5219\u4e0d\u9700\u8981\u4e0b\u9762\u914d\u7f6e\npod 'PLVAliHttpDNS', '~&gt;1.10.0'\npod 'PLVFoundationSDK', '1.10.6', :subspecs =&gt; ['BaseUtils', 'NetworkUtils', 'ErrorCode', 'LogReporter', 'ConsoleLogger', 'Reachability', 'SafeModel', 'ProgressHUD']\npod 'PLVBusinessSDK', '1.10.4', :subspecs =&gt; ['BaseBSH']\npod 'PLVLiveScenesSDK', '1.10.6', :subspecs =&gt; ['Base', 'LogReporter', 'ConsoleLogger', 'ErrorManager', 'Network', 'Player', 'BasePlayer', 'LivePlayer', 'LivePlaybackPlayer', 'PictureInPicture']\n</code></pre>\n<p>\u5e76\u5728\u7ec8\u7aef\u6267\u884c\u00a0<code>pod install</code>\uff0c\u5e76\u4e14\u5c06\u5bf9\u5e94\u7684\u00a0<code>PLVLiveScenesSDK \u3001PLVBusinessSDK</code>\u00a0\u8fdb\u884c\u66ff\u6362\u3002</p>\n<h3>2.<strong>3.2 \u79bb\u7ebf\u5305\u65b9\u5f0f\u96c6\u6210</strong></h3>\n<h4><strong>\u96c6\u6210 PLVWebViewSDK</strong></h4>\n<p>\u5c06 PLVWebViewSDK.framework \u5e93\u6dfb\u52a0\u5230\u81ea\u5df1\u7684\u9879\u76ee\u4e2d\u3002\u5982\u679c\u662f\u4f7f\u7528\u6e90\u7801\u7684\u65b9\u5f0f\u96c6\u6210\uff0c\u5219\u9700\u8981\u5c06 PLVWebViewSDK \u6587\u4ef6\u6574\u4e2a\u6dfb\u52a0\u5230\u81ea\u5df1\u7684\u9879\u76ee\u5373\u53ef\u3002</p>\n<h4><strong>\u96c6\u6210\u7cfb\u7edf\u5c0f\u7a97</strong></h4>\n<p>1.\u5982\u679c\u9879\u76ee\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97\u529f\u80fd\u5219\u9700\u8981\u5c06\u4ee5\u4e0b\u5e93\u6dfb\u52a0\u5230\u9879\u76ee\u4e2d</p>\n<pre><code>PLVAliHttpDNS \u3001PLVBusinessSDK \u3001PLVFoundationSDK \u3001PLVIJKPlayer \u3001PLVLiveScenesSDK\n</code></pre>\n<p>2.\u5728 General =&gt; Frameworks \uff0cLibraries \uff0cand Embedded Content \u4e2d\u79fb\u9664\u5df2\u6dfb\u52a0\u7684 PLVFoundationSDK.framework \u3001PLVLiveScenesSDK.framework \u3001PLVBusinessSDK.framework \u5e93\uff0c\u5e76\u6dfb\u52a0\u7cfb\u7edf\u5e93 libresolv.tbd \u3002</p>\n<p>3.\u8bbe\u7f6e PLVIJKPlayer \u4e3a Embed &amp; Sign</p>\n<p>4.Build Settings \uff0cOther Linker Flags \u4e2d\u6dfb\u52a0 -ObjC \uff0c\u5982\u679c\u9879\u76ee\u5df2\u914d\u7f6e\u6709\uff0c\u5219\u4e0d\u9700\u8981\u91cd\u590d\u6dfb\u52a0</p>\n<p>5.\u8fd0\u884c\u62a5\u9519</p>\n<p>\u5982\u679c\u6a21\u62df\u5668\u8fd0\u884c\u62a5\u9519\u9700\u8981\u5728 Build Settings \u4e2d\u8bbe\u7f6e Excluded Architecture =&gt; Any iOS Simulator SDK \u4e3a arm64</p>\n<p>\u5982\u679c\u8fd0\u884c\u62a5\u9519</p>\n<pre><code>Building for iOS Simulator, but the linked and embedded framework '***' was built for iOS + tvOS Simulator\n</code></pre>\n<p>\u53ef\u5728 Build Settings \u4e2d \u8bbe\u7f6e VALIDATE_WORKSPACE \u4e3a YES \u5373\u53ef\u3002</p>\n<h2><strong>2.4 WebView \u63a5\u5165</strong></h2>\n<p>\u521b\u5efa\u60f3\u8981\u5c55\u793a WebView \u7684\u63a7\u5236\u5668\u9875\u9762\u00a0<code>DemoViewController</code>\u00a0\u7ee7\u627f\u4e8e<code>PLVWebViewBaseViewController</code>\uff0c\u5e76\u901a\u8fc7\u521d\u59cb\u5316\u65b9\u6cd5\u00a0<code>-initWithConfig:</code>\u521b\u5efa\u63a7\u5236\u5668\u9875\u9762\u3002\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a</p>\n<pre><code>// PLVWebViewDemoViewController.h\n\n#import &lt;PLVWebViewSDK/PLVWebViewSDK.h&gt;\n\n@interface PLVWebViewDemoViewController : PLVWebViewBaseViewController\n\n@end\n</code></pre>\n<p>\u521d\u59cb\u5316\u65f6\u53ef\u901a\u8fc7\u91cd\u5199\u00a0<code>initHandleForDemo</code>\u00a0\u8fdb\u884c\u81ea\u5b9a\u4e49\u914d\u7f6e\uff0c\u540c\u65f6\u53ef\u4ee5\u5bf9 Bridge \u4e8b\u4ef6\u8fdb\u884c\u81ea\u5b9a\u4e49\u5904\u7406\u3002\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a</p>\n<pre><code>// PLVWebViewDemoViewController.m\n    \n@implementation PLVWebViewDemoViewController\n\n#pragma mark - [ Override ]\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n \n}\n\n/// \u521d\u59cb\u5316\u65f6\uff0c\u53ef\u4ee5\u8fdb\u884c\u7684\u81ea\u5b9a\u4e49\u914d\u7f6e\n//- (void)initHandleForDemo {\n//\n//}\n\n#pragma mark - [ Delegate ]\n#pragma mark PLVFloatableWebViewBridgeDelegate\n/// \u5982\u9700\u8981\u76d1\u542c js \u56de\u8c03\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7 Delegate \u4e8b\u4ef6\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\uff0c\u4f8b\u5982 webviewBridgeShare \u6d88\u606f\n//- (void)webviewBridgeShare:(PLVFloatableWebViewBridge *)bridge {\n//\n//}\n\n@end\n</code></pre>\n<p>\u521b\u5efa\u3001\u914d\u7f6e\u3001\u6253\u5f00\u76f4\u64ad\u9875\u9762\u63a7\u5236\u5668</p>\n<pre><code>PLVWebViewConfig *config = [[PLVWebViewConfig alloc] init];\nconfig.urlString = urlString;\nconfig.allowFloatingWindow = YES;\nconfig.isSystemFloatingWindow = NO;\nconfig.userAgent = self.uaTextView.text;\nconfig.enableAutoFloatWindow = YES;\n    \nPLVWebViewDemoViewController *webVC = [[PLVWebViewDemoViewController alloc] initWithConfig:config];\n[self.navigationController pushViewController:webVC animated:YES];\n</code></pre>\n<h2>2.5 \u9ad8\u7ea7\u529f\u80fd</h2>\n<h3><strong>2.5.1 WebView \u914d\u7f6e</strong></h3>\n<p>\u521b\u5efa PLVWebViewBaseViewController \u65f6\u9700\u8981\u6839\u636e PLVWebViewConfig \u914d\u7f6e\u6765\u8fdb\u884c\u521d\u59cb\u5316\u3002</p>\n<pre><code>PLVWebViewConfig *config = [[PLVWebViewConfig alloc] init];\nconfig.urlString = @\"\";\nconfig.allowFloatingWindow = YES;\nconfig.isSystemFloatingWindow = NO;\nconfig.userAgent = @\"\";\nconfig.enableAutoFloatWindow = YES;    \nPLVWebViewDemoViewController *floatingWebVC = [[PLVWebViewDemoViewController alloc] initWithConfig:config];\n</code></pre>\n<ul>\n<li>allowFloatingWindow \u662f\u5426\u5141\u8bb8\u4f7f\u7528\u6d6e\u7a97\u7684\u529f\u80fd</li>\n<li>isSystemFloatingWindow \u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97\u6216\u8005\u5e94\u7528\u5185\u5c0f\u7a97</li>\n<li>userAgent \u6d4f\u89c8\u5668\u7684 UA \uff0c\u53ef\u81ea\u884c\u4fee\u6539</li>\n<li>enableAutoFloatWindow \u5f00\u542f\u81ea\u52a8\u6d6e\u7a97\uff0c\u5f00\u542f\u540e \u5728\u9000\u51fa\u9875\u9762\u6216\u8005\u9000\u5230\u540e\u53f0\u65f6\u4f1a\u81ea\u52a8\u5f00\u542f\u5c0f\u7a97</li>\n</ul>\n<h3><strong>2.5.2 \u5e94\u7528\u5185\u5c0f\u7a97\u914d\u7f6e</strong></h3>\n<p>\u6211\u4eec\u8fd8\u53ef\u4ee5\u5bf9\u6d6e\u7a97\u7684\u5927\u5c0f\u3001\u9ed8\u8ba4\u4f4d\u7f6e\u3001\u4ee5\u53ca\u6837\u5f0f\u8fdb\u884c\u914d\u7f6e\u4fee\u6539\uff1a</p>\n<pre><code>// \u914d\u7f6e\u6d6e\u7a97\u5927\u5c0f\n[[PLVFloatWindowManager sharedManager] setFloatingWindowSize:size];\n// \u914d\u7f6e\u6d6e\u7a97\u521d\u59cb\u4f4d\u7f6e\n[[PLVFloatWindowManager sharedManager] setFloatingWindowLocation:point];\n// \u5e94\u7528\u5185\u5c0f\u7a97\u6837\u5f0f\u4fee\u6539\nUIView *appWindowView = [PLVFloatWindowManager sharedManager].floatingWindow;\nappWindowView.layer.cornerRadius = 8.0f;\nappWindowView.layer.masksToBounds = YES;\n</code></pre>\n<p>\u5176\u4e2d\uff0c\u8c03\u7528\u00a0<code>-moveContentViewToWindow:size:</code>\u00a0\u65b9\u6cd5\u4e3b\u52a8\u5524\u8d77\u7684\u6d6e\u7a97\uff0c\u9ed8\u8ba4\u5bbd\u5ea6\u4e3a\u5c4f\u5e55\u7684 0.3 \u500d\uff0c\u5bbd\u9ad8\u6bd4 16:9 \u3002\u901a\u8fc7\u4fdd\u5229\u5a01\u7684\u7f51\u9875\u5524\u8d77\u6d6e\u7a97\uff0c\u6d6e\u7a97\u5927\u5c0f\u7531\u7f51\u9875\u544a\u77e5\u3002\u521d\u59cb\u4f4d\u7f6e\u662f\u6307\u6d6e\u7a97\u53f3\u4e0b\u89d2\u8ddd\u79bb\u5c4f\u5e55\u53f3\u4e0b\u89d2\u7684\u76f8\u5bf9\u4f4d\u7f6e\uff0c\u9ed8\u8ba4\u4e3a(-10, -100)\uff0c \u8868\u793a\u60ac\u6d6e\u7a97\u53f3\u8fb9\u6cbf\u8ddd\u79bb\u5c4f\u5e55\u53f3\u8fb9\u6cbf 10pt \uff0c\u4e0b\u8fb9\u6cbf\u8ddd\u79bb\u5c4f\u5e55\u4e0b\u8fb9\u6cbf 100pt \u3002</p>\n<h3><strong>2.5.3 \u753b\u4e2d\u753b\u914d\u7f6e</strong></h3>\n<ol>\n<li>\n<p>\u5982\u679c\u8981\u4f7f\u7528\u753b\u4e2d\u753b\u529f\u80fd\uff0c\u9996\u5148\u9700\u8981\u5728 Podfile \u6587\u4ef6\u4e2d \u6dfb\u52a0\u652f\u6301\u753b\u4e2d\u753b\u7684 SDK \uff0c\u7136\u540e\u6267\u884c\u00a0<code>pod install</code>\uff1b</p>\n<pre><code># \u5305\u542b\u7cfb\u7edf\u753b\u4e2d\u753b -- \u5982\u679c\u4e0d\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97 \u5219\u4e0d\u9700\u8981\u4e0b\u9762\u914d\u7f6e\npod 'PLVAliHttpDNS', '~&gt;1.10.0'\npod 'PLVFoundationSDK', '1.10.6', :subspecs =&gt; ['BaseUtils', 'NetworkUtils', 'ErrorCode', 'LogReporter', 'ConsoleLogger', 'Reachability', 'SafeModel', 'ProgressHUD']\npod 'PLVBusinessSDK', '1.10.4', :subspecs =&gt; ['BaseBSH']\npod 'PLVLiveScenesSDK', '1.10.6', :subspecs =&gt; ['Base', 'LogReporter', 'ConsoleLogger', 'ErrorManager', 'Network', 'Player', 'BasePlayer', 'LivePlayer', 'LivePlaybackPlayer', 'PictureInPicture']\n</code></pre>\n</li>\n<li>\n<p>\u66ff\u6362\u5bf9\u5e94\u7684\u79bb\u7ebf\u5305</p>\n</li>\n</ol>\n<p>\u7528\u63d0\u4f9b\u7684\u79bb\u7ebf\u5305<code>PLVLiveScenesSDK \u3001PLVBusinessSDK</code>\u00a0\u5c06 Pods \u6587\u4ef6\u5939\u4e0b\u5bf9\u5e94\u7684 SDK \u8fdb\u884c\u66ff\u6362\u3002</p>\n<h3><strong>2.5.4</strong> <strong>UA</strong> <strong>\u548c\u767d\u540d\u5355\u914d\u7f6e</strong></h3>\n<p>\u5f53\u5f00\u542f\u4e86\u00a0<code>enabelWhiteList</code>\u00a0\u540e\uff0c\u53ea\u6709\u6dfb\u52a0\u4e86\u57df\u540d\u767d\u540d\u5355\u7684\u94fe\u63a5\u624d\u4f1a\u652f\u6301\u539f\u751f\u4e0e\u524d\u7aef\u7684\u901a\u4fe1\uff0c\u624d\u652f\u6301\u5c0f\u7a97\u7684\u529f\u80fd\u3002</p>\n<pre><code>[PLVUAConfigManager sharedManager].enabelWhiteList = YES;\n[[PLVUAConfigManager sharedManager] addHostWhitelist:@[@\"live.polyv.cn\"]];\n</code></pre>\n<p>\u540c\u65f6\u652f\u6301 \u81ea\u5b9a\u4e49\u914d\u7f6e UA</p>\n<pre><code>[[PLVUAConfigManager sharedManager] addCustomUserAgent:@\"\"];\n</code></pre>\n<h3><strong>2.5.5 \u76d1\u542c\u65b9\u6cd5</strong> <strong>js</strong> <strong>\u4e8b\u4ef6</strong></h3>\n<p>\u5728 SDK \u5185\u90e8\u5df2\u7ecf\u5bf9\u4e00\u4e9b\u4e8b\u4ef6\u8fdb\u884c\u4e86\u5904\u7406\uff0c\u5982\u679c\u60f3\u8981\u81ea\u5b9a\u4e49\u5904\u7406\u67d0\u4e9b\u4e8b\u4ef6\u53ef\u4ee5\u5728 demo \u4e2d\u8fdb\u884c\u76d1\u542c\u62e6\u622a\u5904\u7406\u3002\u793a\u4f8b\u5982\u4e0b\uff1a</p>\n<pre><code>#pragma mark - [ Delegate ]\n#pragma mark PLVFloatableWebViewBridgeDelegate\n/// \u5982\u9700\u8981\u76d1\u542c js \u56de\u8c03\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7 Delegate \u4e8b\u4ef6\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\uff0c\u4f8b\u5982 webviewBridgeShare \u6d88\u606f\n- (void)webviewBridgeShare:(PLVFloatableWebViewBridge *)bridge {\n\n}\n</code></pre>\n<h3><strong>2.5.6 \u6ce8\u518c\u548c\u8c03\u7528\u81ea\u5b9a</strong> <strong>js</strong> <strong>\u4e8b\u4ef6</strong></h3>\n<p>\u53ef\u4ee5\u901a\u8fc7 Demo \u5c42\u6ce8\u518c\u548c\u8c03\u7528\u81ea\u5b9a\u4e49\u4e8b\u4ef6\uff0c\u793a\u4f8b\u4ee3\u7801\u5982\u4e0b\uff1a</p>\n<pre><code>- (void)initHandleForDemo {\n    [self.contentAreaView.mainWebView.bridge registerHandler:@\"\" handler:^(id  _Nonnull data, PLVWVJBResponseCallback  _Nonnull responseCallback) {\n            \n    }];\n    [self.contentAreaView.mainWebView.bridge callHandler:@\"\" data:nil responseCallback:^(id  _Nonnull responseData) {\n        \n    }];\n}\n</code></pre>\n<h2>2 <strong>.6 \u66f4\u6362 web-native \u901a\u4fe1\u89c4\u5219\u6ce8\u610f\u4e8b\u9879</strong></h2>\n<p>\u672c\u9879\u76ee\u4e2d\u4f7f\u7528\u7684\u662f\u5f00\u6e90\u5e93 WebViewJavascriptBridge \u6765\u5b9e\u73b0 web \u548c native \u4e4b\u95f4\u7684\u901a\u4fe1\u3002\u5982\u679c\u63a5\u5165\u7684\u9879\u76ee\u4e2d\u6ca1\u6709\u7528\u5230 web-native \u901a\u4fe1\uff0c\u5219\u4e0d\u9700\u8981\u505a\u4efb\u4f55\u8c03\u6574\u3002\u5982\u679c\u63a5\u5165\u7684\u9879\u76ee\u4e2d\u4e5f\u7528\u5230 web-native \u901a\u4fe1\uff0c\u5219\u53ef\u4ee5\u53c2\u8003\u4e0b\u9762\u7684\u65b9\u5f0f\u8fdb\u884c\u4fee\u6539\u3002</p>\n<h3><strong>2.6.1 \u66f4\u6362 native \u7aef\u901a\u4fe1\u89c4\u5219</strong></h3>\n<p>SDK \u4e2d\u4f7f\u7528\u7684 WebViewJavascriptBridge \u6765\u5b9e\u73b0\u901a\u4fe1\u7684\uff0c\u5728 PLVFloatableWebViewBridge \u4e2d\u5bf9\u5176\u8fdb\u884c\u4e86\u5c01\u88c5\u5904\u7406\uff0c\u5982\u679c\u9700\u8981\u66f4\u6362 native \u7aef\u901a\u4fe1\u89c4\u5219\u53ea\u9700\u8981\u4fee\u6539 PLVFloatableWebViewBridge \u8fd9\u4e2a\u7c7b\u5373\u53ef</p>\n<h4>\u66f4\u6362\u6ce8\u518c\u6d88\u606f\u65b9\u5f0f:</h4>\n<pre><code>- (void)registerHandler:(NSString*)handlerName handler:(WVJBHandler)handler {\n      //\u5f53\u4f7f\u7528\u7684\u65b0\u7684 web-native \u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u4e0b\u9762\u7684\u4ee3\u7801\u4fee\u6539\u4e3a webview \u4f7f\u7528\u65b0\u89c4\u5219\u6ce8\u518c\u6d88\u606f\u65f6\u7684\u4ee3\u7801\n    [self.bridge registerHandler:handlerName handler:handler];\n}\n</code></pre>\n<h4>\u66f4\u6362\u53d1\u9001 web \u7aef\u6d88\u606f</h4>\n<pre><code>- (void)callHandler:(NSString*)handlerName data:(id _Nullable)data responseCallback:(WVJBResponseCallback _Nullable)responseCallback {\n      //\u5f53\u4f7f\u7528\u7684\u65b0\u7684 web-native \u89c4\u5219\u65f6\uff0c\u53ef\u4ee5\u5c06\u4e0b\u9762\u7684\u4ee3\u7801\u4fee\u6539\u4e3a webview \u4f7f\u7528\u65b0\u89c4\u5219\u53d1\u9001\u6d88\u606f\u65f6\u7684\u4ee3\u7801\n    [self.bridge callHandler:handlerName data:data responseCallback:responseCallback];\n}\n</code></pre>\n<h3><strong>2.6.2 \u66f4\u6362 web \u7aef\u901a\u4fe1\u89c4\u5219</strong></h3>\n<p>\u5f53 native \u7aef\u901a\u4fe1\u89c4\u5219\u6539\u53d8\u65f6\uff0cweb \u7aef\u5219\u8981\u6839\u636e\u662f\u5426\u4e0e\u539f\u6765\u7684\u901a\u4fe1\u65b9\u5f0f\u539f\u7406\u76f8\u540c\u6765\u5224\u65ad\u662f\u5426\u9700\u8981\u4fee\u6539\u3002</p>\n<h4>\u5f53\u524d web \u7aef\u6ce8\u518c\u6d88\u606f\u65b9\u5f0f</h4>\n<pre><code>bridge.registerHandler(\"testJavascriptHandler\",\n          function (data, responseCallback) {\n            console.log(data);\n            responseCallback(data);\n          }\n );\n</code></pre>\n<h4>\u5f53\u524d web \u7aef\u53d1\u9001\u6d88\u606f\u65b9\u5f0f</h4>\n<pre><code>bridge.callHandler(\"callAppEvent\", { },\n          function responseCallback(responseData) {\n            console.log(responseData);\n          }\n);\n</code></pre>\n<p>\u5f53\u524d web-native \u7684\u901a\u4fe1\u662f\u901a\u8fc7 bridge \u8fd9\u79cd\u65b9\u5f0f\u6765\u53d1\u9001\u548c\u63a5\u6536\u6d88\u606f\u7684\uff0c\u5982\u679c\u9700\u8981\u8c03\u6574\u53ef\u7528\u96c6\u6210\u9879\u76ee web \u7aef\u63a5\u6536\u3001\u53d1\u9001\u6d88\u606f\u7684\u65b9\u5f0f\u6765\u8fdb\u884c\u66ff\u6362\u3002</p>\n<h2><strong>2.7</strong> <strong>iOS</strong> <strong>\u7cfb\u7edf\u7248\u672c\u4f7f\u7528\u7cfb\u7edf\u5c0f\u7a97\u529f\u80fd\u8bf4\u660e</strong></h2>\n<p>iOS \u56e0\u4e3a\u7cfb\u7edf\u9650\u5236\u60f3\u5b9e\u73b0\u7cfb\u7edf\u5c0f\u7a97\u53ea\u80fd\u901a\u8fc7\u753b\u4e2d\u753b\u7684\u529f\u80fd\uff0c\u540c\u65f6\u8fd9\u4e2a\u529f\u80fd\u4f1a\u6709\u7248\u672c\u9650\u5236\uff0c\u5728 iOS14+\u5f00\u59cb\u652f\u6301 iPhone \u7684\u753b\u4e2d\u753b\u529f\u80fd\u3002\u540c\u65f6\u76f4\u64ad\u5982\u679c\u4f7f\u7528\u7cfb\u7edf\u64ad\u653e\u5668 AVPlayer \u4f1a\u6709 14s+\u7684\u9ad8\u5ef6\u8fdf\uff0cIJKPlayer \u53ef\u4ee5\u5b9e\u73b0\u4f4e\u5ef6\u8fdf\uff0c\u4f46\u662f iOS15 \u4ee5\u4e0a\u753b\u4e2d\u753b\u624d\u652f\u6301 SampleBufferLayer \uff0c\u56e0\u6b64\u5982\u679c\u76f4\u64ad\u4f4e\u5ef6\u8fdf\u7684\u8bdd\u9700\u8981 iOS15+\u3002</p>\n<ul>\n<li>\u56de\u653e\u89c6\u9891\u7cfb\u7edf\u5c0f\u7a97\u652f\u6301 iOS14+</li>\n<li>\u76f4\u64ad\u89c6\u9891\u7cfb\u7edf\u5c0f\u7a97\u652f\u6301 iOS15+</li>\n</ul>\n<h1>\u4e09\u3001\u9e3f\u8499 next</h1>\n<h2>3.1 \u7b80\u4ecb</h2>\n<p>PLVWebSDK \u9879\u76ee\u4ece\u5c5e\u4e8e\u6613\u65b9\u4fe1\u606f\u79d1\u6280\u80a1\u4efd\u6709\u9650\u516c\u53f8\uff0c\u5bf9\u4fdd\u5229\u5a01\u4e91\u76f4\u64ad\u3001\u4e91\u70b9\u64ad\u7cfb\u5217\u4ea7\u54c1\u7684\u76f4\u64ad\u3001\u56de\u653e\u89c2\u770b\u505a\u4e86\u826f\u597d\u7684\u9002\u914d\uff0c\u6781\u5927\u4f18\u5316\u4e86\u7528\u6237\u7684\u89c2\u770b\u4f53\u9a8c\uff0c\u5e76\u652f\u6301\u6d6e\u7a97\u64ad\u653e\u7b49\u6269\u5c55\u529f\u80fd\uff0c\u4e5f\u53ef\u4f5c\u4e3a\u5176\u4ed6\u7f51\u9875\u7684\u5c55\u793a\u5bb9\u5668\u3002</p>\n<p>\u672c\u9879\u76ee\u5305\u542b\u529f\u80fd\u5982\u4e0b\uff1a</p>\n<ul>\n<li>\u652f\u6301\u57fa\u7840 Web \u529f\u80fd</li>\n<li>\u652f\u6301\u5e94\u7528\u5185\u6d6e\u7a97\u64ad\u653e</li>\n<li>\u652f\u6301\u7cfb\u7edf\u7ea7\u6d6e\u7a97\u64ad\u653e</li>\n<li>\u652f\u6301\u60ac\u6d6e\u7a97\u624b\u52bf\u62d6\u52a8</li>\n<li>\u652f\u6301\u89c6\u9891\u5168\u5c4f\u64ad\u653e</li>\n</ul>\n<h2>3.2 \u4e0b\u8f7d\u5b89\u88c5</h2>\n<pre><code>ohpm install plvwebsdk\n</code></pre>\n<p>OpenHarmony ohpm \u73af\u5883\u914d\u7f6e\u7b49\u66f4\u591a\u5185\u5bb9\uff0c\u8bf7\u53c2\u8003\u5982\u4f55\u5b89\u88c5 OpenHarmony ohpm \u5305</p>\n<h2>3.3 \u9700\u8981\u6743\u9650</h2>\n<pre><code>ohos.permission.INTERNET\nohos.permission.GET_NETWORK_INFO\n</code></pre>\n<h2>3.5 \u529f\u80fd\u8bf4\u660e</h2>\n<h3>3.5.1 PLVWebViewConfig</h3>\n<p>1.\u8bbe\u7f6e UA</p>\n<p>\u5f53\u524d\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u8bbe\u7f6e\u9700\u8981\u7684 UA</p>\n<p><code>PLVWebViewConfig().setUa(\"Android\" + PLVUAConfig.defaultUA)</code></p>\n<p>\u6ce8\u610f\uff1a\u5982\u679c\u9700\u8981\u5230 Saas \u9875\u9762\u7684\u5c0f\u7a97\u529f\u80fd\u7684\u60c5\u51b5\uff0c\u5fc5\u987b\u5728 UA \u4e2d\u5e26\u4e0a Android \u548c PLVUAConfig.defaultUA \u5b57\u6bb5</p>\n<p>2.\u8bbe\u7f6e url</p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u8bbe\u7f6e\u9700\u8981\u52a0\u8f7d\u7684 url</p>\n<p>PLVWebViewConfig().setUrl(\"\u9700\u8981\u52a0\u8f7d\u7684 url\")</p>\n<p>3.\u8bbe\u7f6e\u662f\u5426\u5141\u8bb8\u5c0f\u7a97\u60ac\u6d6e</p>\n<p>\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u8bbe\u7f6e\u662f\u5426\u5141\u8bb8\u5f00\u542f\u5c0f\u7a97\u529f\u80fd\uff0c\u9ed8\u8ba4\u662f\u5f00\u542f\u7684\uff0c\u5982\u4e0d\u9700\u8981\u53ef\u4ee5\u8bbe\u7f6e\u4e3a false</p>\n<p><code>PLVWebViewConfig().setAllowFloatingWindow(true)</code></p>\n<h3>3.5.2 \u81ea\u5b9a\u4e49\u6ce8\u518c\u4e8b\u4ef6</h3>\n<p>\u5f53\u524d SDK \u5185\u90e8\u5df2\u7ecf\u6ce8\u518c\u597d\u4e0e\u524d\u7aef\u9875\u9762\u901a\u4fe1\u7684\u4e8b\u4ef6\uff0c\u5f53\u63a5\u5165 sdk \u540e\u5c31\u80fd\u76f4\u63a5\u4f7f\u7528\u8fd9\u4e9b\u4e8b\u4ef6\u3002</p>\n<p>SDK \u4e5f\u652f\u6301\u6ce8\u518c\u81ea\u5b9a\u4e49\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u6765\u8fdb\u884c\u6ce8\u518c</p>\n<pre><code>this.controller.registerHandler(\"\u81ea\u5b9a\u4e49\u4e8b\u4ef6\", (data: string) =&gt; {// \u76d1\u542c\u81ea\u5b9a\u4e49\u4e8b\u4ef6\u7684\u5904\u7406\n})\nthis.controller.callHandle(\"\u53d1\u9001\u539f\u751f\u4e8b\u4ef6\", \"xxx\", () =&gt; {//\u53d1\u9001\u539f\u751f\u4e8b\u4ef6\n})\n</code></pre>\n<p>\u5982\u679c\u9700\u8981\u76d1\u542c/\u62e6\u622a SDK \u5185\u90e8\u5df2\u7ecf\u5b9e\u73b0\u4e86\u7684\u4e8b\u4ef6\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u65b9\u5f0f\u7ee7\u7eed\u76d1\u542c/\u62e6\u622a\uff0c\u8fd9\u91cc\u4ee5 onShare \u4e8b\u4ef6\u4e3a\u4f8b\u5b50\uff0c\u5982\u679c\u9700\u8981\u76d1\u542c/\u62e6\u622a\u5176\u4ed6\u4e8b\u4ef6\u53ef\u4ee5\u4eff\u7167\u8fd9\u91cc\u6765\u5b8c\u6210</p>\n<pre><code>this.controller.registerCustomerContainEvent({\n  onShare: () =&gt; {// \u76d1\u542c\u5230 onShare \u4e8b\u4ef6\u65f6\u7684\u64cd\u4f5c return true // return true \u8868\u793a\u62e6\u622a\u6389\u5206\u4eab\u4e8b\u4ef6 false \u5c31\u7ee7\u7eed\u7531 sdk \u5f80\u4e0b\u6267\u884c\n  }\n})\n</code></pre>\n<h1>\u56db\u3001\u81ea\u5b9a\u4e49\u4e8b\u4ef6</h1>\n<pre><code>// \u5c0f\u7a97\u64ad\u653e\u4e8b\u4ef6\nwebviewBridage?.sendData('clickProduct', webviewData);\n\n// \u6ca1\u6709\u5c0f\u7a97\u64ad\u653e\u7684\u60c5\u51b5\uff1a \u76d1\u542c\u81ea\u5b9a\u4e49\u4e8b\u4ef6\nwebviewBridage?.sendData('clickProductCustom', webviewData);\n\n// \u6570\u636e\u683c\u5f0f\nconst webviewData = {\n        width: plvWebviewDataSize.width,\n        height: plvWebviewDataSize.height,\n        newPage: true,\n        link:  \u201c\u8df3\u8f6c\u7684\u81ea\u5b9a\u4e49 url\u201d,\n        data: {\n                type : out | inner | stock\n                link : \u201c\u8df3\u8f6c\u7684\u81ea\u5b9a\u4e49 url\u201d ( \u540c\u4e0a link )\n                market : \u20185053\u2019,\n                code : 789465,\n                name : \u540d\u79f0\n        },\n}\n</code></pre>\n<p>clickProduct \u4e8b\u4ef6 \u548c clickProductCustom \u81ea\u5b9a\u4e49 webviewData ---&gt; data \u4e0b\u9762\u6839\u636e type \u548c \u5176\u4ed6\u53c2\u6570\u5b8c\u6210 app \u5185\u94fe\u63a5\u8df3\u8f6c\u529f\u80fd</p>\n<p>\u5bf9\u65b9\u6848\u6709\u4efb\u4f55\u7591\u95ee\uff0c\u53ef+V\uff1awjc24680525 \uff0c\u5907\u6ce8\u201c\u5c0f\u7a97\u201d</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xscc", 
        "name": "xscc", 
        "avatar": "https://cdn.v2ex.com/gravatar/3a0fe4765a0ef829862d3c23b09bcfe2?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1066949", 
      "title": "\u6253\u7b97\u4e70\u4e2a HDMI \u65e0\u7ebf\u6295\u5c4f\u5668\uff0c\u6709\u6ca1\u6709\u63a8\u8350\u7684\uff1f\u7a33\u5b9a\u538b\u5012\u4e00\u5207", 
      "id": "https://www.v2ex.com/t/1066949", 
      "date_published": "2024-08-22T03:48:28+00:00", 
      "content_html": "\u6253\u7b97\u518d\u4e70\u4e2a HDMI \u65e0\u7ebf\u6295\u5c4f\u8bbe\u5907\uff0c\u4e00\u5b9a\u8981\u7a33\u5b9a\u3002\u73b0\u5728\u6709\u5957\u5728\u7528\u7684\uff0c\u662f 21 \u5e74\u4e70\u7684\u7eff\u8054\uff0c\u5f53\u65f6\u4e70\u7684\u4e5f\u7b97\u8fc7\u5f97\u53bb\u7684\uff0c\u597d\u50cf 1200 \u591a\uff0c\u73b0\u5728\u662f\u6bcf\u6b21\u7528\u90fd\u8981\u63d2\u62d4\u4e0b\u63a5\u6536\u7aef\u7684\u7535\u6e90\uff0c\u624d\u80fd\u6b63\u5e38\u8fde\u63a5\u3002\u60f3\u6362\u5957\u65b0\u7684\uff0c\u770b\u5230\u6709\u4e2a\u724c\u5b50\u662f PX \u5927\u901a\uff0c\u5bf9\u5cb8\u7684\u4ea7\u54c1\uff0c\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u4e86\u89e3\u7684\uff0c\u7a33\u5b9a\u6027\u5982\u4f55\uff0c\u8bf4\u6765\u542c\u542c\u3002\u8fc8\u62d3\u7ef4\u77e9\uff08 MT-viki \uff09\u7684\u4e1c\u897f\u5370\u8c61\u4e0d\u597d\uff0c\u65e9\u5e74 VGA \u5206\u914d\u5668\u5403\u591f\u82e6\u5934\uff0c\u6ca1\u4e00\u4e2a\u6491\u8fc7\u4e00\u5e74\u7684\uff0c\u5176\u4ed6\u5c0f\u5382\u6742\u724c\u7684\u66f4\u4e0d\u653e\u5fc3\u3002\u5e0c\u671b\u5e2e\u5fd9\u63a8\u8350\u4e2a\u7a33\u5b9a\u7684 HDMI \u6295\u5c4f\u5668\uff0c\u80fd\u6491\u4f4f 24X7 \u5f00\u673a\u7684\u90a3\u79cd\uff0c\u81f3\u5c11\u4e0d\u80fd\u6bcf\u6b21\u90fd\u63d2\u62d4\u7535\u6e90\u3002\u8c22\u8c22\uff01"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/vevlins", 
        "name": "vevlins", 
        "avatar": "https://cdn.v2ex.com/avatar/677c/39d0/274232_large.png?m=1711777186"
      }, 
      "url": "https://www.v2ex.com/t/1064131", 
      "title": "\u7c7b\u4f3c\u4e8e veed/zeemo \u7684\u52a8\u6001\u5b57\u5e55\u6548\u679c\u600e\u4e48\u5b9e\u73b0", 
      "id": "https://www.v2ex.com/t/1064131", 
      "date_published": "2024-08-11T07:42:12+00:00", 
      "content_html": "<p>\u4e00\u884c\u5b57\u5e55\uff0c\u5b57\u6bcd\u8ddf\u968f\u8bf4\u8bdd\u65f6\u95f4\u9ad8\u4eae\uff0c\u4e0d\u8003\u8651\u8bed\u97f3\u8bc6\u522b\u95ee\u9898\uff0c\u5047\u8bbe\u6211\u5df2\u7ecf\u53ef\u4ee5\u5f97\u5230\u6bcf\u4e2a\u5355\u8bcd\u548c\u53e5\u5b50\u7684\u5c55\u793a\u65f6\u95f4\uff0c\u8fd9\u79cd\u89c6\u9891\u751f\u6210\u662f\u901a\u8fc7\u4ec0\u4e48\u6280\u672f\u505a\u5230\u7684\u5462\uff1f\u6211\u77e5\u9053 ffmpeg \uff0c\u6709\u4ec0\u4e48\u751f\u6210\u8fd9\u79cd\u5b57\u5e55\u52a8\u753b\u7684\u5b8c\u6574\u4e00\u4e9b\u7684\u65b9\u6848\u5417</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chriselee", 
        "name": "chriselee", 
        "avatar": "https://cdn.v2ex.com/gravatar/3634e5a8d371790923f56f6769a84bd5?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1064074", 
      "title": "\u5206\u4eab\u4e00\u4e2a AI \u751f\u6210\u89c6\u9891\u7684\u7f51\u7ad9 Sora Video AI", 
      "id": "https://www.v2ex.com/t/1064074", 
      "date_published": "2024-08-11T01:50:08+00:00", 
      "content_html": "\u73b0\u5728\u7684\u4eba\u5de5\u667a\u80fd\u751f\u6210\u89c6\u9891\uff0c\u8981\u60f3\u83b7\u5f97\u66f4\u52a0\u5b9a\u5236\u5316\u7684\u6548\u679c\u7684\u8bdd\uff0c\u4f3c\u4e4e\u5e94\u8be5\u5148\u7528 AI \u751f\u6210\u56fe\u7247\uff0c\u7136\u540e\u518d\u7528 AI \u4ece\u56fe\u7247\u751f\u6210\u89c6\u9891\u3002\u7528\u7684\u662f\u548c\u5feb\u624b\u53ef\u7075\u76f8\u540c\u67b6\u6784\u7684\u5927\u6a21\u578b\u3002<br /><a target=\"_blank\" href=\"https://www.soravideoai.net\" rel=\"nofollow noopener\">https://www.soravideoai.net</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Philippa", 
        "name": "Philippa", 
        "avatar": "https://cdn.v2ex.com/gravatar/30406fd1968dc51a99a723eb4d2bedc4?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1059577", 
      "title": "\u6709\u6ca1\u6709\u81ea\u52a8\u4ece\u89c6\u9891\u8bc6\u522b\u7cbe\u5f69\u77ac\u95f4\u5e76\u63d0\u53d6\u7167\u7247\u7684 AI \u5de5\u5177\uff1f", 
      "id": "https://www.v2ex.com/t/1059577", 
      "date_published": "2024-07-23T20:38:11+00:00", 
      "content_html": "<p>\u6709\u5927\u6982\u5341\u51e0\u4e2a\u5c0f\u65f6\u7684\u65c5\u6e38 4K \u89c6\u9891\uff0c\u5168\u7a0b\u90fd\u662f\u624b\u6301\u5f55\u5236\u4e3a\u4e3b\uff0c\u6ca1\u4ec0\u4e48\u7167\u7247\u3002\u73b0\u5728\u60f3\u4ece\u5176\u4e2d\u63d0\u53d6\u51fa\u7cbe\u5f69\u77ac\u95f4\u7684\u7167\u7247\uff0c\u4f46\u53c8\u4e0d\u60f3\u624b\u52a8\u64cd\u4f5c\u3002\u73b0\u5728 AI \u90a3\u4e48\u53d1\u8fbe\uff0c\u4f30\u8ba1\u4e5f\u80fd\u505a\u4e2a 5 \u30016 \u6210\uff0c\u60f3\u95ee\u95ee\u6709\u4ec0\u4e48\u597d\u5de5\u5177\u63a8\u8350\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/purenothingform", 
        "name": "purenothingform", 
        "avatar": "https://cdn.v2ex.com/gravatar/12315caeb729424d33109268a282df12?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1059559", 
      "title": "\u6296\u97f3\u771f\u6076\u5fc3\u80fd\u4e0b\u8f7d\u5230\u7684\u6700\u9ad8\u753b\u8d28\u4e5f\u662f\u7ecf\u8fc7\u538b\u7f29\u7684", 
      "id": "https://www.v2ex.com/t/1059559", 
      "date_published": "2024-07-23T14:34:57+00:00", 
      "content_html": "<p>\u6296\u97f3\u80fd\u4e0b\u8f7d\u5230\u7684\u6700\u9ad8\u753b\u8d28\u4e5f\u662f\u7cca\u7cca\u7684\n\u4e0d\u50cf\u5c0f\u7ea2\u4e66\u5728\u670d\u52a1\u5668\u4fdd\u7559\u539f\u59cb\u753b\u8d28\u6587\u4ef6\u53ef\u4ee5\u901a\u8fc7\u6cb9\u7334\u4e0b\u8f7d\n\u676f\u5177\u7684\u60c5\u51b5\u662f\u535a\u4e3b\u5728\u6296\u97f3\u5e73\u53f0\u4e0a\u4f20\u7684\u67d0\u4e9b\u89c6\u9891\u5374\u4e0d\u5728\u5c0f\u7ea2\u4e66\u4e5f\u4e0a\u4f20\uff0c\u5bfc\u81f4\u7c89\u4e1d\u6700\u591a\u53ea\u80fd\u4e0b\u8f7d\u5230\u7cca\u7cca\u7684\u6296\u97f3\u538b\u7f29\u7248\u672c\u3002\n\u600e\u6837\u529d\u8bf4\u535a\u4e3b\u4e00\u7897\u6c34\u7aef\u5e73\u4e0d\u8981\u504f\u5fc3\u6296\u97f3\u5e73\u53f0\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/easonwaii", 
        "name": "easonwaii", 
        "avatar": "https://cdn.v2ex.com/gravatar/7be9004d79d865b485a9d002291f2864?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1055706", 
      "title": "\u6709\u507f\uff0c MP4 \u89c6\u9891\u65f6\u957f\u4e0e\u5b9e\u9645\u4e0d\u7b26\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1055706", 
      "date_published": "2024-07-08T08:27:37+00:00", 
      "content_html": "\u6709\u507f\uff1a\u5173\u4e8e MP4 \u683c\u5f0f\uff0c\u89c6\u9891\u603b\u65f6\u957f\u4e0e\u5b9e\u9645\u73b0\u5b9e\u4e0d\u7b26\u7684\u95ee\u9898\uff0c\u4ef7\u683c\u4f60\u62a5\u3002<br />\u52a0\u7eff\u8272\uff1aZWFzb25nbw=="
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/giganet", 
        "name": "giganet", 
        "avatar": "https://cdn.v2ex.com/avatar/ccb8/6849/271334_large.png?m=1749049049"
      }, 
      "url": "https://www.v2ex.com/t/1050366", 
      "title": "\u90fd 2024 \u5e74\u4e86\uff0c\u4f53\u80b2\u8d5b\u4e8b\u76f4\u64ad\u8fd8\u5728 25Hz1080 \u8fd8 i...", 
      "id": "https://www.v2ex.com/t/1050366", 
      "date_published": "2024-06-17T15:15:19+00:00", 
      "content_html": "FullHD \u7684\u7535\u89c6\u90fd\u7528\u4e86\u5c0f 20 \u5e74\u4e86\uff0c\u76f4\u64ad\u7684\u89c6\u9891\u89c4\u683c\u8fd8\u5728 1080i \uff0c25Hz \u7684\u89c4\u683c\uff0c\u5565\u65f6\u5019\u80fd\u4e0a 4K60Hz \u554a\uff0c\u81f3\u5c11\u5148 60Hz \u4e5f\u597d\u554a\uff01\uff01"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/mercury233", 
        "name": "mercury233", 
        "avatar": "https://cdn.v2ex.com/gravatar/e1ef141461115a7ff1fb1085e2140cc3?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1049612", 
      "title": "MPC Video Renderer \u4e2d RTX \u8d85\u5206\u8fa8\u7387\u548c\u6b63\u786e\u7684\u89c6\u9891\u7f29\u5c0f\u6548\u679c\u53ea\u80fd\u4e8c\u9009\u4e00\u5417", 
      "id": "https://www.v2ex.com/t/1049612", 
      "date_published": "2024-06-14T09:10:03+00:00", 
      "content_html": "\u6211\u4f7f\u7528\u7684\u662f MPC-HC 2.3.0 \u548c MPC Video Renderer 0.8.3.2255<br /><br />\u5982\u679c\u5728\u8bbe\u7f6e\u4e2d\u901a\u8fc7\u4f7f\u7528 D3D11 \u7f29\u653e\u6765\u5f00\u542f\u8d85\u5206\u8fa8\u7387\uff0c\u628a\u7a97\u53e3\u7f29\u5c0f\u65f6\uff0c\u753b\u9762\u4f1a\u51fa\u73b0\u4e25\u91cd\u7684\u952f\u9f7f<br /><a target=\"_blank\" href=\"https://i.imgur.com/LB6aNQw.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/LB6aNQw.png\" class=\"embedded_image\" rel=\"noreferrer\"></a><br /><br />\u5173\u95ed\u8d85\u5206\u8fa8\u7387\u65f6\u753b\u8d28\u6b63\u5e38<br /><a target=\"_blank\" href=\"https://i.imgur.com/czWg5QS.png\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/czWg5QS.png\" class=\"embedded_image\" rel=\"noreferrer\"></a><br /><br /><br />VideoRenderer \u7684 issue \u4e0a\u8bf4\u662f nvidia \u7684\u9505<br /><a target=\"_blank\" href=\"https://github.com/Aleksoid1978/VideoRenderer/issues/122\" rel=\"nofollow noopener\">https://github.com/Aleksoid1978/VideoRenderer/issues/122</a><br /><a target=\"_blank\" href=\"https://github.com/Aleksoid1978/VideoRenderer/issues/120\" rel=\"nofollow noopener\">https://github.com/Aleksoid1978/VideoRenderer/issues/120</a><br /><br />\u76ee\u524d\u53ea\u80fd\u624b\u52a8\u5207\u6362\u8fd9\u4e2a\u5f00\u5173\uff0c\u60f3\u95ee\u95ee\u6709\u6ca1\u6709\u6210\u529f\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\u670b\u53cb"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/DuckSum", 
        "name": "DuckSum", 
        "avatar": "https://cdn.v2ex.com/avatar/7a66/193b/662567_large.png?m=1714049305"
      }, 
      "url": "https://www.v2ex.com/t/1035733", 
      "title": "\u63a8\u8350\u51e0\u4e2a\u5728\u7528\u7684\u89c6\u9891\u4e0b\u8f7d\u5de5\u5177", 
      "id": "https://www.v2ex.com/t/1035733", 
      "date_published": "2024-04-25T12:50:48+00:00", 
      "content_html": "<h1>\u5728\u7ebf\u89c6\u9891\u4e0b\u8f7d\u5668-XXVID</h1>\n<p>\u514d\u8d39\uff0c\u53ef\u4ee5\u4e0b\u8f7d\u9ad8\u6e05\u3001\u5168\u9ad8\u6e05\u53ca 4K+\u89c6\u9891\uff0c\u90e8\u5206\u7ad9\u70b9\u8fd8\u652f\u6301\u65e0\u6c34\u5370\u4e0b\u8f7d\uff0c\u81ea\u79f0\u8986\u76d6 1000+\u7f51\u7ad9\uff0c\u6d77\u5916\u51e0\u4e2a\u70ed\u95e8\u7ad9\u70b9\u786e\u5b9e\u53ef\u7528\uff0c\u61c2\u5f97\u90fd\u61c2\uff0c\u4f46\u662f\u4e0d\u652f\u6301 YouTube \uff01</p>\n<p>\u7f51\u7ad9\u5730\u5740\ud83d\udc49 <a href=\"https://xxvid.download?utm_source=v2ex\" rel=\"nofollow\">XXVID</a></p>\n<p><img alt=\"\u5728\u7ebf\u89c6\u9891\u4e0b\u8f7d\u5668\uff5c XXVID\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.twiclips.com/xxvid/xxvid.jpg\" title=\"XXVID\"/></p>\n<p><img alt=\"\u5728\u7ebf\u89c6\u9891\u4e0b\u8f7d\u5668\uff5c XXVID\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://cdn.twiclips.com/xxvid/xxvid-demo.jpg\" title=\"XXVID\"/></p>\n<h1>YouTube \u89c6\u9891\u4e0b\u8f7d\u5668-DMSAVE</h1>\n<p>\u514d\u8d39\uff0c\u53ef\u4ee5\u9009\u62e9\u4e0d\u540c\u5206\u8fa8\u7387\uff0c\u5305\u62ec\u97f3\u9891\u3001\u89c6\u9891\uff0c\u4e5f\u652f\u6301\u5176\u4ed6\u7ad9\u70b9\u4e0b\u8f7d\uff0c\u4f46\u662f\u4eb2\u6d4b YouTube \u6548\u679c\u6700\u597d\u3002</p>\n<p>\u7f51\u7ad9\u5730\u5740\ud83d\udc49 <a href=\"https://dmsave.top?utm_source=v2ex\" rel=\"nofollow\">DMSAVE</a></p>\n<p><img alt=\"YouTube \u89c6\u9891\u4e0b\u8f7d\u5668\uff5c DMSAVE\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://mrpa-video.oss-us-west-1.aliyuncs.com/xxvid/dmsave.jpg\" title=\"DMSAVE\"/></p>\n<h3>\u8fd8\u6709\u54ea\u4e9b\u5927\u5bb6\u4e00\u76f4\u5728\u7528\u7684\u89c6\u9891\u4e0b\u8f7d\u7ad9\u70b9\uff0c\u6b22\u8fce\u8bc4\u8bba\u5206\u4eab\uff0c\u4f20\u64ad\u6b63\u80fd\u91cf\ud83d\ude0e</h3>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/huage", 
        "name": "huage", 
        "avatar": "https://cdn.v2ex.com/avatar/162a/2584/69678_large.png?m=1700057630"
      }, 
      "url": "https://www.v2ex.com/t/1029063", 
      "title": "\u7f51\u4e0a\u6709\u516c\u5f00\u7684\u5927\u534e\u6216\u8005\u6d77\u5eb7\u7684\u89c6\u9891\u6d41\u505a\u6d4b\u8bd5\u7801\uff1f", 
      "id": "https://www.v2ex.com/t/1029063", 
      "date_published": "2024-04-02T03:27:39+00:00", 
      "content_html": "\u56e0\u4e3a\u9879\u76ee\u9700\u8981\uff0c\u60f3\u5728\u7f51\u9875\u4e0a\u6d4b\u8bd5\u4e00\u4e0b\u5927\u534e\u6216\u8005\u6d77\u5eb7\u7684 HLS \u6216\u8005 RTSP \u89c6\u9891\u6d41\u80fd\u5426\u6b63\u5e38\u64ad\u653e\uff0c\u6709\u6ca1\u6709\u54ea\u91cc\u53ef\u4ee5\u83b7\u5f97\u5462\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/nanqic", 
        "name": "nanqic", 
        "avatar": "https://cdn.v2ex.com/gravatar/8e3ed4d9fb41e381a78a6e53039b1aec?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1020033", 
      "title": "\u5df2\u6709\u97f3\u9891\u6587\u7a3f\uff0c\u600e\u6837\u751f\u6210\u5b57\u5e55\u65f6\u95f4\u7ebf", 
      "id": "https://www.v2ex.com/t/1020033", 
      "date_published": "2024-03-02T06:37:37+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u8bf7\u6559\u5404\u4f4d\u505a\u5b57\u5e55\u7684\u5927\u4f6c\uff0c\u5df2\u6709\u5982\u4e0b\u683c\u5f0f\u7684 txt \u6587\u7a3f\uff0c\u548c mp3 \u6587\u4ef6\uff0c\u6709\u81ea\u52a8\u5339\u914d\u5b57\u5e55\u65f6\u95f4\u7ebf\u7684\u8f6f\u4ef6\u5417\uff1f\n\u7528\u8fc7\u526a\u6620\uff0c\u51c6\u786e\u7387\u4e0d\u9ad8\uff0cSubtitle Edit \u597d\u50cf\u6ca1\u6709\u8fd9\u4e2a\u529f\u80fd\uff0c\u76ee\u524d\u662f\u542c\u4e00\u53e5\u97f3\u9891\uff0c\u6839\u636e\u6ce2\u7eb9\u624b\u52a8\u8c03\u6574\u65f6\u95f4\uff0c\u6709\u6ca1\u6709\u9ad8\u6548\u4e00\u70b9\u7684\u5904\u7406\u65b9\u5f0f\uff1f</p>\n<pre><code>\u7b2c\u4e00\u53e5\n\u7b2c\u4e8c\u53e5\n\u7b2c\u4e09\u53e5\n</code></pre>\n<p>\u60f3\u8981\u751f\u6210\u5982\u4e0b\u683c\u5f0f\u6216 srt \u5b57\u5e55</p>\n<pre><code>00:00:00:01 00:00:02:08 \u7b2c\u4e00\u53e5\n00:00:02:08 00:00:03:24 \u7b2c\u4e8c\u53e5\n00:00:03:24 00:00:06:04 \u7b2c\u4e09\u53e5\n</code></pre>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Haku", 
        "name": "Haku", 
        "avatar": "https://cdn.v2ex.com/avatar/f178/a1b8/133660_large.png?m=1770122472"
      }, 
      "url": "https://www.v2ex.com/t/1019354", 
      "title": "\u8bf7\u95ee\u73b0\u5728\u6700\u65b0\u7684\u8868\u60c5\u8fc1\u79fb\u7814\u7a76\uff0c\u6709\u5f00\u6e90\u4ee3\u7801\u9879\u76ee\u7684\u662f\u54ea\u4e9b\u554a\uff1f", 
      "id": "https://www.v2ex.com/t/1019354", 
      "date_published": "2024-02-29T01:59:52+00:00", 
      "content_html": "<p>\u76ee\u524d\u7f51\u4e0a\u80fd\u641c\u5230\u7684 first order emotion \u7b49\u90fd\u5df2\u7ecf\u662f\u597d\u51e0\u5e74\u4ee5\u524d\u7684\u4e86\u3002\u6700\u8fd1\u770b\u5230\u7684\u8df3\u821e\u7684\u5219\u662f\u5b57\u8282\u7684\u8c8c\u4f3c\u8fd8\u6ca1\u5f00\u6e90\u3002</p>\n<p>\u98de\u6d46\u7684\u6211\u770b\u89c6\u9891\u548c\u81ea\u5df1\u8dd1\u63a8\u7406\uff0c\u6548\u679c\u90fd\u4e0d\u592a\u597d\uff0c\u60f3\u95ee\u4e0b\u5404\u4f4d\u77e5\u9053\u6709\u54ea\u4e9b\u6bd4\u8f83\u65b0\u4e00\u70b9\u4e14\u6548\u679c\u8fd8\u884c\u7684\u9879\u76ee\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xmuli", 
        "name": "xmuli", 
        "avatar": "https://cdn.v2ex.com/avatar/a9cf/d7f2/490357_large.png?m=1732109842"
      }, 
      "url": "https://www.v2ex.com/t/1016045", 
      "title": "tx \u89c6\u9891\u7f51\u9875\u7248\u90e8\u5206\u5df2\u4e0d\u7ed9\u770b\u3002\u3002\u3002", 
      "id": "https://www.v2ex.com/t/1016045", 
      "date_published": "2024-02-17T12:17:27+00:00", 
      "content_html": "<p>Chrome &amp;&amp; Firefox &amp;&amp; Edge \u64ad\u653e\u90fd\u5982\u56fe\uff0c\u5f97\u4e0b\u5ba2\u6237\u7aef\u4e86\uff1b\n\u4eca\u665a\u66f4\u65b0 20:00 \uff0c\u5e74\u756a 84 \u96c6\uff1b\u5176\u5b83\u5267\u672a\u6d4b\uff1b</p>\n<p><a href=\"https://imgse.com/i/pFJEpYn\" rel=\"nofollow\"><img alt=\"pFJEpYn.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://s11.ax1x.com/2024/02/17/pFJEpYn.png\"/></a></p>\n<p><a href=\"https://imgse.com/i/pFJEFyT\" rel=\"nofollow\"><img alt=\"pFJEFyT.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://s11.ax1x.com/2024/02/17/pFJEFyT.png\"/></a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bkmi", 
        "name": "bkmi", 
        "avatar": "https://cdn.v2ex.com/avatar/9d67/8e20/84263_large.png?m=1735309349"
      }, 
      "url": "https://www.v2ex.com/t/1013238", 
      "date_modified": "2024-01-31T14:45:25+00:00", 
      "content_html": "<p>\u4e0d\u8bba\u662f\u5bb6\u91cc\u7684\u7535\u89c6\u8fd8\u662f M1 Pro \u7b14\u8bb0\u672c\uff0c\u8fd8\u6709 iPad Pro \uff0c\u4e09\u661f S23U \uff0c\u8fd9\u4e9b\u8bbe\u5907\u4eae\u5ea6\u90fd\u4e0d\u4f4e\uff0c\u770b\u53c2\u6570 HDR \u5185\u5bb9\u90fd\u80fd\u5230 1600 \u5c3c\u7279\uff0c\u4f46\u662f\u611f\u89c9 HDR \u753b\u9762\u8fd8\u662f\u504f\u6697\uff0c\u6240\u8c13\u7684\u66f4\u591a\u7ec6\u8282\u4e5f\u6ca1\u592a\u611f\u53d7\u51fa\u6765\u3002\u662f\u8bbe\u5907\u5c4f\u5e55\u4eae\u5ea6\u8fd8\u4e0d\u591f\uff0c\u8fd8\u662f HDR \u5c31\u8fd9\u6837\u3002</p>\n<p>\u5e73\u65f6\u6211\u8fd8\u662f\u503e\u5411\u4e8e\u6311 SDR \u89c6\u9891\u5728\u770b\uff0c\u4f46\u662f\u6700\u8fd1\u4e0b\u8d44\u6e90\u53d1\u73b0\u8d8a\u6765\u8d8a\u591a\u662f HDR \u5185\u5bb9\uff0c\u8fd8\u6709 Dolby Vision \u5185\u5bb9\uff0c\u8d44\u6e90\u8d8a\u6765\u8d8a\u96be\u4e0b\u4e86\u3002</p>\n", 
      "date_published": "2024-01-31T14:44:44+00:00", 
      "title": "\u4f60\u4eec\u770b HDR \u89c6\u9891\u89c9\u5f97\u6548\u679c\u597d\u5417", 
      "id": "https://www.v2ex.com/t/1013238"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/simple2025", 
        "name": "simple2025", 
        "avatar": "https://cdn.v2ex.com/gravatar/d8be1ee891483e0287a7350aae996608?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1012173", 
      "title": "vlc \u64ad\u653e\u5668\u64ad\u653e\u89c6\u9891\u5207\u6362\u65f6\u4f1a\u4f7f\u5f53\u524d\u7a97\u53e3\u9000\u51fa\u6d3b\u52a8\u72b6\u6001,\u8fd9\u4e2a\u600e\u4e48\u4e0d\u4f7f\u5f53\u524d\u7a97\u53e3\u9000\u51fa\u6d3b\u52a8\u72b6\u6001\u5462?", 
      "id": "https://www.v2ex.com/t/1012173", 
      "date_published": "2024-01-28T06:38:21+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/NightmareFn76", 
        "name": "NightmareFn76", 
        "avatar": "https://cdn.v2ex.com/gravatar/a8e4cc9304ed7c37a0298c37ca3d45d6?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1008521", 
      "title": "\u5173\u4e8e AMD \u663e\u5361\u4e0e Pr \u786c\u4ef6\u52a0\u901f\u76f8\u5173\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1008521", 
      "date_published": "2024-01-14T08:01:16+00:00", 
      "content_html": "<p>\u4e4b\u524d\u6574\u4e86\u4e00\u53f0\u8fc7\u6e21\u4f7f\u7528\u7684\u53f0\u5f0f\u673a\nI3-12100F+AMD 5600XT\n\u7ed3\u679c\u4f7f\u7528 Pr \u65f6\u5019\u53d1\u73b0\u867d\u7136\u80fd\u9009\u62e9\u786c\u4ef6\u52a0\u901f,\u4f46\u538b\u5236\u89c6\u9891\u65f6\u5019 CPU \u57fa\u672c\u8dd1\u6ee1 GPU \u7eaf\u7cb9\u5728\u6478\u9c7c\n\u73b0\u5728\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u4ec0\u4e48\u89e3\u51b3\u65b9\u6848</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wangshou89", 
        "name": "wangshou89", 
        "avatar": "https://cdn.v2ex.com/gravatar/8ead9f48200ac2b8806a29dbf22acab9?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1000374", 
      "date_modified": "2023-12-14T07:13:07+00:00", 
      "content_html": "action4 \u7684\u9a91\u884c\u914d\u4ef6\u53ef\u4ee5\u52a0\u5165 GPS \u4fe1\u606f\uff0c\u4f46\u662f\u6837\u5f0f\u56fa\u5b9a\u7684\uff0c\u5176\u5b9e\u5f88\u63a5\u8fd1\u4e86\u3002<br />\u53ea\u662f\u60f3\u5728\u8fd9\u4e2a\u57fa\u7840\u4e0a\u80fd\u663e\u793a\u5177\u4f53\u8def\u540d\u3002<br /> <a target=\"_blank\" href=\"https://i.imgur.com/NiOu6dN.jpeg\" rel=\"nofollow noopener\" target=\"_blank\"><img src=\"https://i.imgur.com/NiOu6dN.jpeg\" class=\"embedded_image\" rel=\"noreferrer\"></a>", 
      "date_published": "2023-12-14T07:12:11+00:00", 
      "title": "\u6211\u8857\u62cd\u5f55\u5236\u89c6\u9891\u7684\u65f6\u5019\uff0c\u53f3\u4e0b\u89d2\u6709\u4e2a\u5730\u56fe\uff0c\u968f\u65f6\u544a\u8bc9\u89c2\u4f17\u6211\u5728\u54ea\u91cc\uff0c\u8fd9\u4e2a\u9700\u6c42\u6709\u529e\u6cd5\u5b9e\u73b0\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1000374"
    }
  ]
}