{"id":46794,"date":"2023-02-06T16:34:34","date_gmt":"2024-01-21T10:31:17","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/"},"modified":"2024-04-29T13:23:37","modified_gmt":"2024-04-29T05:23:37","slug":"%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/","title":{"rendered":"\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u4eec\u5c06\u6839\u636e\u4e0b\u9762\u7684\u56fe\u793a\u5728Jetson TX2\u4e0a\u914d\u7f6eKafka\u548cNode-RED\uff0c\u5e76\u89e3\u91ca\u5c06DeepStream\u7684\u8f93\u51fa\u4e0eKafka\u548cNode-RED\u8fdb\u884c\u534f\u540c\u7684\u6b65\u9aa4\u3002<\/p>\n<h4>\u6784\u6210\u56fe<\/h4>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/3-0.png\" alt=\"image.png\" \/><\/div>\n<h4>\u5b8c\u6210\u56fe\u50cf<\/h4>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/5-0.gif\" alt=\"out.gif\" \/><\/div>\n<h1>\u73af\u5883\u4fe1\u606f<\/h1>\n<p>Jetson TX2 is translated as \u6770\u900aTX2 in Chinese.<br \/>\nJetpack 4.3 is translated as Jetpack 4.3\u7248\u672c in Chinese.<br \/>\n\u30ab\u30e1\u30e9\uff1aLOGICOOL HD PRO WEBCAM C920 can be translated as \u6444\u50cf\u5934\uff1aLOGICOOL HD PRO WEBCAM C920 in Chinese.<br \/>\nKafka 2.4.0 remains as Kafka 2.4.0 in Chinese.<br \/>\nNode-RED 1.0.3 stays as Node-RED 1.0.3 in Chinese.<br \/>\nNode.js 12.14.1 is translated as Node.js 12.14.1\u7248\u672c in Chinese.<\/p>\n<h1>\u6982\u8ff0\u6b65\u9aa4<\/h1>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Kafka\u914d\u7f6e<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Node-RED\u914d\u7f6e<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>DeepStream\u793a\u4f8b\u5e94\u7528\u7a0b\u5e8f\u542f\u52a8<\/ol>\n<h1>1. \u8bbe\u7f6e\u5361\u592b\u5361<\/h1>\n<h2>1-1. Java\u7684\u5f15\u5165<\/h2>\n<p>\u4e3a\u4e86\u8fd0\u884cKafka\uff0c\u9700\u8981\u5b89\u88c5Java\uff0c\u6240\u4ee5\u5c06\u5176\u5f15\u5165\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install <\/span>openjdk-11-jre\r\n<span class=\"nv\">$ <\/span>java <span class=\"nt\">--version<\/span>\r\n<\/code><\/pre>\n<h2>1-2. Kafka\u7684\u5b89\u88c5\u548c\u542f\u52a8<\/h2>\n<p>\u53c2\u8003\u4ee5\u4e0b\u7684 Kafka \u5feb\u901f\u5165\u95e8\u6b65\u9aa4\uff0c\u5b89\u88c5\u5e76\u542f\u52a8\u5355\u8282\u70b9 Kafka\u3002<br \/>\nhttps:\/\/kafka.apache.org\/quickstart<\/p>\n<p>\u4ece\u4ee5\u4e0b\u7f51\u7ad9\u4e0b\u8f7dKafka\u7684\u4ee3\u7801\uff1a<br \/>\nhttps:\/\/www.apache.org\/dyn\/closer.cgi?path=\/kafka\/2.4.0\/kafka_2.12-2.4.0.tgz<\/p>\n<p>\u6211\u4f1a\u89e3\u51bb\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">tar<\/span> <span class=\"nt\">-xzf<\/span> kafka_2.12-2.4.0.tgz\r\n<\/code><\/pre>\n<p>\u542f\u52a8zookeeper\u3002\u4fdd\u6301\u5df2\u7ecf\u542f\u52a8\u7684zookeeper\u7ec8\u7aef\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cd <\/span>kafka_2.12-2.4.0\r\n<span class=\"nv\">$ <\/span>bin\/zookeeper-server-start.sh config\/zookeeper.properties\r\n<\/code><\/pre>\n<p>\u8bf7\u542f\u52a8Kafka\u670d\u52a1\u5668\uff0c\u5e76\u4fdd\u6301\u542f\u52a8\u8be5\u670d\u52a1\u5668\u7684\u7ec8\u7aef\u4fdd\u6301\u6253\u5f00\u72b6\u6001\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cd <\/span>kafka_2.12-2.4.0\r\n<span class=\"nv\">$ <\/span>bin\/kafka-server-start.sh config\/server.properties\r\n<\/code><\/pre>\n<p>\u6211\u8981\u521b\u5efa\u4e00\u4e2a\u8bdd\u9898\u3002\u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u8981\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a\u201c\u6d4b\u8bd5\u201d\u7684\u8bdd\u9898\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cd <\/span>kafka_2.12-2.4.0\r\n<span class=\"nv\">$ <\/span>bin\/kafka-topics.sh <span class=\"nt\">--create<\/span> <span class=\"nt\">--bootstrap-server<\/span> localhost:9092 <span class=\"nt\">--replication-factor<\/span> 1 <span class=\"nt\">--partitions<\/span> 1 <span class=\"nt\">--topic<\/span> <span class=\"nb\">test<\/span>\r\n<span class=\"nv\">$ <\/span>bin\/kafka-topics.sh <span class=\"nt\">--list<\/span> <span class=\"nt\">--bootstrap-server<\/span> localhost:9092\r\n<\/code><\/pre>\n<h1>2. Node-RED\u5b89\u88c5<\/h1>\n<h2>2-1. \u5b89\u88c5Node.js<\/h2>\n<p>Node.js\u7684\u5b89\u88c5\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b\u6587\u7ae0\u3002<br \/>\n\u5728TX2\u4e0a\u4e5f\u53ef\u4ee5\u6309\u7167\u76f8\u540c\u7684\u6b65\u9aa4\u8fdb\u884c\u5b89\u88c5\u3002<\/p>\n<p>\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u5b89\u88c5Node.js\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt <span class=\"nb\">install<\/span> <span class=\"nt\">-y<\/span> nodejs npm\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>npm <span class=\"nb\">install <\/span>n <span class=\"nt\">-g<\/span>\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>n stable\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">sudo <\/span>apt purge <span class=\"nt\">-y<\/span> nodejs npm\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">exec<\/span> <span class=\"nv\">$SHELL<\/span> <span class=\"nt\">-l<\/span>\r\n<span class=\"nv\">$ <\/span>node <span class=\"nt\">-v<\/span>\r\n<span class=\"nv\">$ <\/span>npm <span class=\"nt\">-v<\/span>\r\n<\/code><\/pre>\n<h2>2-2. \u5b89\u88c5\u548c\u542f\u52a8Node-RED<\/h2>\n<p>\u5728\u5b89\u88c5Node-RED\u65f6\uff0c\u6267\u884c\u4ee5\u4e0bNode-RED\u6587\u6863\u4e2d\u63d0\u4f9b\u7684\u547d\u4ee4\u5373\u53ef\u3002<\/p>\n<p>Node-RED\u6587\u6863<br \/>\nhttps:\/\/nodered.org\/docs\/getting-started\/local#\u4f7f\u7528npm\u8fdb\u884c\u5b89\u88c5<\/p>\n<p>\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\uff0c\u5b89\u88c5Node-RED\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">sudo <\/span>npm <span class=\"nb\">install<\/span> <span class=\"nt\">-g<\/span> <span class=\"nt\">--unsafe-perm<\/span> node-red\r\n<\/code><\/pre>\n<p>\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8Node-RED\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>node-red\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/38-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/39-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u9009\u62e9\u201c\u5b89\u88c5\u201d\u9009\u9879\u5361\uff0c\u641c\u7d22\u201ckafka\u201d\uff0c\u5e76\u5b89\u88c5\u201cnode-red-contrib-kafka-manager\u201d\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/41-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u53ef\u4ee5\u786e\u8ba4\u5de6\u8fb9\u7684\u8c03\u8272\u677f\u4e0a\u5df2\u7ecf\u6dfb\u52a0\u4e86\u300cKafka Consumer\u300d\u548c\u300cKafka Producer\u300d\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/43-0.png\" alt=\"image.png\" \/><\/div>\n<h2>2-3. \u521b\u5efaNode-RED\u7684\u6d41\u7a0b<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/45-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/46-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/47-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/48-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/49-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/50-0.png\" alt=\"image.png\" \/><\/div>\n<h1>3. \u542f\u52a8DeepStream\u793a\u4f8b\u5e94\u7528\u7a0b\u5e8f<\/h1>\n<h2>\u5c06DeepStream\u7684\u793a\u4f8b\u4ee3\u7801\u548c\u914d\u7f6e\u6587\u4ef6\u590d\u5236\u3002<\/h2>\n<p>\u5c06\u793a\u4f8b\u4ee3\u7801\u548c\u914d\u7f6e\u6587\u4ef6\u590d\u5236\u5230\u5de5\u4f5c\u76ee\u5f55\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">mkdir<\/span> ~\/work\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cp<\/span> <span class=\"nt\">-r<\/span> \/opt\/nvidia\/deepstream\/deepstream-4.0\/samples ~\/work\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">cp<\/span> <span class=\"nt\">-r<\/span> \/opt\/nvidia\/deepstream\/deepstream-4.0\/sources\/ ~\/work\r\n<\/code><\/pre>\n<h2>3-2. \u68c0\u67e5\u7f51\u7edc\u6444\u50cf\u5934<\/h2>\n<p>\u4f7f\u7528l4l2-ctl\u547d\u4ee4\u786e\u8ba4Web\u6444\u50cf\u5934\u5df2\u8fde\u63a5\u3002<br \/>\n\u4ece\u4e0b\u9762\u7684\u793a\u4f8b\u53ef\u4ee5\u770b\u51fa\u5b83\u5df2\u8fde\u63a5\u5230\/dev\/video0\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>v4l2-ctl <span class=\"nt\">--list-devices<\/span>\r\nvi-output, ov5693 2-0036 <span class=\"o\">(<\/span>platform:15700000.vi:2<span class=\"o\">)<\/span>:\r\n    \/dev\/video1\r\n\r\nHD Pro Webcam C920 <span class=\"o\">(<\/span>usb-3530000.xhci-2<span class=\"o\">)<\/span>:\r\n    \/dev\/video0\r\n<\/code><\/pre>\n<h2>3-3. \u6587\u4ef6\u7d44\u6210<\/h2>\n<p>\u6839\u636e\u6837\u672c\u914d\u7f6e\u6587\u4ef6test5_config_file_src_infer.txt\u7684\u53c2\u8003\uff0c\u521b\u5efa\u4e00\u4e2a\u540d\u4e3atest5_config_usb_src_infer.txt\u7684\u914d\u7f6e\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">cd<\/span> ~\/work\/sources\/apps\/sample_apps\/deepstream-test5\/configs\/\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">ls<\/span>\r\n<span class=\"nv\">$ <\/span>vi test5_config_file_src_infer.txt\r\n<\/code><\/pre>\n<p>\u6784\u6210\u6587\u4ef6\u7684\u5185\u5bb9\u5982\u4e0b\u6240\u793a\u3002<br \/>\n\u8bf7\u6ce8\u610f\u6709\u4e24\u70b9\u3002<br \/>\n&#8211; &#8220;camera-v4l2-dev-node&#8221; \u4e2d\u8bbe\u7f6e\u7684\u53f7\u7801\u5e94\u4e3a\u5728\u4e0a\u4e00\u6b65\u4e2d\u786e\u8ba4\u7684 \/dev\/videoX \u7684\u53f7\u7801\u3002<br \/>\n&#8211; \u5c06 camera-fps-n \u8bbe\u7f6e\u4e3a 30 \u4f1a\u5bfc\u81f4\u5904\u7406\u5ef6\u8fdf\uff0c\u56e0\u6b64\u8bf7\u5c06\u6444\u50cf\u5934\u8f93\u5165\u8bbe\u7f6e\u4e3a 15FPS\u3002<\/p>\n<pre class=\"post-pre\"><code>[<span class=\"n\">application<\/span>]\r\n<span class=\"n\">enable<\/span>-<span class=\"n\">perf<\/span>-<span class=\"n\">measurement<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">perf<\/span>-<span class=\"n\">measurement<\/span>-<span class=\"n\">interval<\/span>-<span class=\"n\">sec<\/span>=<span class=\"m\">5<\/span>\r\n<span class=\"c\">#gie-kitti-output-dir=streamscl\r\n<\/span>\r\n[<span class=\"n\">tiled<\/span>-<span class=\"n\">display<\/span>]\r\n<span class=\"n\">enable<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">rows<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">columns<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">width<\/span>=<span class=\"m\">640<\/span>\r\n<span class=\"n\">height<\/span>=<span class=\"m\">360<\/span>\r\n<span class=\"n\">gpu<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"c\">#(0): nvbuf-mem-default - Default memory allocated, specific to particular platform\r\n#(1): nvbuf-mem-cuda-pinned - Allocate Pinned\/Host cuda memory, applicable for Tesla\r\n#(2): nvbuf-mem-cuda-device - Allocate Device cuda memory, applicable for Tesla\r\n#(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory, applicable for Tesla\r\n#(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetson\r\n<\/span><span class=\"n\">nvbuf<\/span>-<span class=\"n\">memory<\/span>-<span class=\"n\">type<\/span>=<span class=\"m\">0<\/span>\r\n\r\n[<span class=\"n\">source0<\/span>]\r\n<span class=\"n\">enable<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"c\">#Type - 1=CameraV4L2 2=URI 3=MultiURI\r\n<\/span><span class=\"n\">type<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">camera<\/span>-<span class=\"n\">width<\/span>=<span class=\"m\">640<\/span>\r\n<span class=\"n\">camera<\/span>-<span class=\"n\">height<\/span>=<span class=\"m\">360<\/span>\r\n<span class=\"n\">camera<\/span>-<span class=\"n\">fps<\/span>-<span class=\"n\">n<\/span>=<span class=\"m\">15<\/span>\r\n<span class=\"n\">camera<\/span>-<span class=\"n\">fps<\/span>-<span class=\"n\">d<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">camera<\/span>-<span class=\"n\">v4l2<\/span>-<span class=\"n\">dev<\/span>-<span class=\"n\">node<\/span>=<span class=\"m\">0<\/span>\r\n\r\n[<span class=\"n\">sink0<\/span>]\r\n<span class=\"n\">enable<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"c\">#Type - 1=FakeSink 2=EglSink 3=File\r\n<\/span><span class=\"n\">type<\/span>=<span class=\"m\">2<\/span>\r\n<span class=\"n\">sync<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">source<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">gpu<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">nvbuf<\/span>-<span class=\"n\">memory<\/span>-<span class=\"n\">type<\/span>=<span class=\"m\">0<\/span>\r\n\r\n[<span class=\"n\">sink1<\/span>]\r\n<span class=\"n\">enable<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"c\">#Type - 1=FakeSink 2=EglSink 3=File 4=UDPSink 5=nvoverlaysink 6=MsgConvBroker\r\n<\/span><span class=\"n\">type<\/span>=<span class=\"m\">6<\/span>\r\n<span class=\"n\">msg<\/span>-<span class=\"n\">conv<\/span>-<span class=\"n\">config<\/span>=<span class=\"n\">dstest5_msgconv_sample_config<\/span>.<span class=\"n\">txt<\/span>\r\n<span class=\"c\">#(0): PAYLOAD_DEEPSTREAM - Deepstream schema payload\r\n#(1): PAYLOAD_DEEPSTREAM_MINIMAL - Deepstream schema payload minimal\r\n#(256): PAYLOAD_RESERVED - Reserved type\r\n#(257): PAYLOAD_CUSTOM   - Custom schema payload\r\n<\/span><span class=\"n\">msg<\/span>-<span class=\"n\">conv<\/span>-<span class=\"n\">payload<\/span>-<span class=\"n\">type<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">msg<\/span>-<span class=\"n\">broker<\/span>-<span class=\"n\">proto<\/span>-<span class=\"n\">lib<\/span>=\/<span class=\"n\">opt<\/span>\/<span class=\"n\">nvidia<\/span>\/<span class=\"n\">deepstream<\/span>\/<span class=\"n\">deepstream<\/span>-<span class=\"m\">4<\/span>.<span class=\"m\">0<\/span>\/<span class=\"n\">lib<\/span>\/<span class=\"n\">libnvds_kafka_proto<\/span>.<span class=\"n\">so<\/span>\r\n<span class=\"c\">#Provide your msg-broker-conn-str here\r\n<\/span><span class=\"n\">msg<\/span>-<span class=\"n\">broker<\/span>-<span class=\"n\">conn<\/span>-<span class=\"n\">str<\/span>=<span class=\"m\">127<\/span>.<span class=\"m\">0<\/span>.<span class=\"m\">0<\/span>.<span class=\"m\">1<\/span>;<span class=\"m\">9092<\/span>;<span class=\"n\">test<\/span>\r\n<span class=\"n\">topic<\/span>=<span class=\"n\">test<\/span>\r\n<span class=\"c\">#Optional:\r\n#msg-broker-config=..\/..\/deepstream-test4\/cfg_kafka.txt\r\n<\/span>\r\n[<span class=\"n\">sink2<\/span>]\r\n<span class=\"n\">enable<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">type<\/span>=<span class=\"m\">3<\/span>\r\n<span class=\"c\">#1=mp4 2=mkv\r\n<\/span><span class=\"n\">container<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"c\">#1=h264 2=h265 3=mpeg4\r\n## only SW mpeg4 is supported right now.\r\n<\/span><span class=\"n\">codec<\/span>=<span class=\"m\">3<\/span>\r\n<span class=\"n\">sync<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">bitrate<\/span>=<span class=\"m\">2000000<\/span>\r\n<span class=\"n\">output<\/span>-<span class=\"n\">file<\/span>=<span class=\"n\">out<\/span>.<span class=\"n\">mp4<\/span>\r\n<span class=\"n\">source<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">0<\/span>\r\n\r\n[<span class=\"n\">osd<\/span>]\r\n<span class=\"n\">enable<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">gpu<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">border<\/span>-<span class=\"n\">width<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">text<\/span>-<span class=\"n\">size<\/span>=<span class=\"m\">15<\/span>\r\n<span class=\"n\">text<\/span>-<span class=\"n\">color<\/span>=<span class=\"m\">1<\/span>;<span class=\"m\">1<\/span>;<span class=\"m\">1<\/span>;<span class=\"m\">1<\/span>;\r\n<span class=\"n\">text<\/span>-<span class=\"n\">bg<\/span>-<span class=\"n\">color<\/span>=<span class=\"m\">0<\/span>.<span class=\"m\">3<\/span>;<span class=\"m\">0<\/span>.<span class=\"m\">3<\/span>;<span class=\"m\">0<\/span>.<span class=\"m\">3<\/span>;<span class=\"m\">1<\/span>\r\n<span class=\"n\">font<\/span>=<span class=\"n\">Arial<\/span>\r\n<span class=\"n\">show<\/span>-<span class=\"n\">clock<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">clock<\/span>-<span class=\"n\">x<\/span>-<span class=\"n\">offset<\/span>=<span class=\"m\">800<\/span>\r\n<span class=\"n\">clock<\/span>-<span class=\"n\">y<\/span>-<span class=\"n\">offset<\/span>=<span class=\"m\">820<\/span>\r\n<span class=\"n\">clock<\/span>-<span class=\"n\">text<\/span>-<span class=\"n\">size<\/span>=<span class=\"m\">12<\/span>\r\n<span class=\"n\">clock<\/span>-<span class=\"n\">color<\/span>=<span class=\"m\">1<\/span>;<span class=\"m\">0<\/span>;<span class=\"m\">0<\/span>;<span class=\"m\">0<\/span>\r\n<span class=\"n\">nvbuf<\/span>-<span class=\"n\">memory<\/span>-<span class=\"n\">type<\/span>=<span class=\"m\">0<\/span>\r\n\r\n[<span class=\"n\">streammux<\/span>]\r\n<span class=\"n\">gpu<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"c\">##Boolean property to inform muxer that sources are live\r\n<\/span><span class=\"n\">live<\/span>-<span class=\"n\">source<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">batch<\/span>-<span class=\"n\">size<\/span>=<span class=\"m\">4<\/span>\r\n<span class=\"c\">##time out in usec, to wait after the first buffer is available\r\n##to push the batch even if the complete batch is not formed\r\n<\/span><span class=\"n\">batched<\/span>-<span class=\"n\">push<\/span>-<span class=\"n\">timeout<\/span>=<span class=\"m\">40000<\/span>\r\n<span class=\"c\">## Set muxer output width and height\r\n<\/span><span class=\"n\">width<\/span>=<span class=\"m\">1920<\/span>\r\n<span class=\"n\">height<\/span>=<span class=\"m\">1080<\/span>\r\n<span class=\"c\">##Enable to maintain aspect ratio wrt source, and allow black borders, works\r\n##along with width, height properties\r\n<\/span><span class=\"n\">enable<\/span>-<span class=\"n\">padding<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">nvbuf<\/span>-<span class=\"n\">memory<\/span>-<span class=\"n\">type<\/span>=<span class=\"m\">0<\/span>\r\n\r\n[<span class=\"n\">primary<\/span>-<span class=\"n\">gie<\/span>]\r\n<span class=\"n\">enable<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">gpu<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">batch<\/span>-<span class=\"n\">size<\/span>=<span class=\"m\">4<\/span>\r\n<span class=\"c\">## 0=FP32, 1=INT8, 2=FP16 mode\r\n<\/span><span class=\"n\">bbox<\/span>-<span class=\"n\">border<\/span>-<span class=\"n\">color0<\/span>=<span class=\"m\">1<\/span>;<span class=\"m\">0<\/span>;<span class=\"m\">0<\/span>;<span class=\"m\">1<\/span>\r\n<span class=\"n\">bbox<\/span>-<span class=\"n\">border<\/span>-<span class=\"n\">color1<\/span>=<span class=\"m\">0<\/span>;<span class=\"m\">1<\/span>;<span class=\"m\">1<\/span>;<span class=\"m\">1<\/span>\r\n<span class=\"n\">bbox<\/span>-<span class=\"n\">border<\/span>-<span class=\"n\">color2<\/span>=<span class=\"m\">0<\/span>;<span class=\"m\">1<\/span>;<span class=\"m\">1<\/span>;<span class=\"m\">1<\/span>\r\n<span class=\"n\">bbox<\/span>-<span class=\"n\">border<\/span>-<span class=\"n\">color3<\/span>=<span class=\"m\">0<\/span>;<span class=\"m\">1<\/span>;<span class=\"m\">0<\/span>;<span class=\"m\">1<\/span>\r\n<span class=\"n\">nvbuf<\/span>-<span class=\"n\">memory<\/span>-<span class=\"n\">type<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">interval<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"n\">gie<\/span>-<span class=\"n\">unique<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">model<\/span>-<span class=\"n\">engine<\/span>-<span class=\"n\">file<\/span>=..\/..\/..\/..\/..\/<span class=\"n\">samples<\/span>\/<span class=\"n\">models<\/span>\/<span class=\"n\">Primary_Detector<\/span>\/<span class=\"n\">resnet10<\/span>.<span class=\"n\">caffemodel_b4_int8<\/span>.<span class=\"n\">engine<\/span>\r\n<span class=\"n\">labelfile<\/span>-<span class=\"n\">path<\/span>=..\/..\/..\/..\/..\/<span class=\"n\">samples<\/span>\/<span class=\"n\">models<\/span>\/<span class=\"n\">Primary_Detector<\/span>\/<span class=\"n\">labels<\/span>.<span class=\"n\">txt<\/span>\r\n<span class=\"n\">config<\/span>-<span class=\"n\">file<\/span>=..\/..\/..\/..\/..\/<span class=\"n\">samples<\/span>\/<span class=\"n\">configs<\/span>\/<span class=\"n\">deepstream<\/span>-<span class=\"n\">app<\/span>\/<span class=\"n\">config_infer_primary<\/span>.<span class=\"n\">txt<\/span>\r\n<span class=\"c\">#infer-raw-output-dir=..\/..\/..\/..\/..\/samples\/primary_detector_raw_output\/\r\n<\/span>\r\n[<span class=\"n\">tracker<\/span>]\r\n<span class=\"n\">enable<\/span>=<span class=\"m\">1<\/span>\r\n<span class=\"n\">tracker<\/span>-<span class=\"n\">width<\/span>=<span class=\"m\">600<\/span>\r\n<span class=\"n\">tracker<\/span>-<span class=\"n\">height<\/span>=<span class=\"m\">300<\/span>\r\n<span class=\"n\">ll<\/span>-<span class=\"n\">lib<\/span>-<span class=\"n\">file<\/span>=\/<span class=\"n\">opt<\/span>\/<span class=\"n\">nvidia<\/span>\/<span class=\"n\">deepstream<\/span>\/<span class=\"n\">deepstream<\/span>-<span class=\"m\">4<\/span>.<span class=\"m\">0<\/span>\/<span class=\"n\">lib<\/span>\/<span class=\"n\">libnvds_mot_klt<\/span>.<span class=\"n\">so<\/span>\r\n<span class=\"c\">#ll-config-file required for DCF\/IOU only\r\n#ll-config-file=tracker_config.yml\r\n#ll-config-file=iou_config.txt\r\n<\/span><span class=\"n\">gpu<\/span>-<span class=\"n\">id<\/span>=<span class=\"m\">0<\/span>\r\n<span class=\"c\">#enable-batch-process applicable to DCF only\r\n<\/span><span class=\"n\">enable<\/span>-<span class=\"n\">batch<\/span>-<span class=\"n\">process<\/span>=<span class=\"m\">0<\/span>\r\n\r\n[<span class=\"n\">tests<\/span>]\r\n<span class=\"n\">file<\/span>-<span class=\"n\">loop<\/span>=<span class=\"m\">0<\/span>\r\n<\/code><\/pre>\n<h2>3-4. \u542f\u52a8DeepStream\u793a\u4f8b\u5e94\u7528\u7a0b\u5e8f<\/h2>\n<p>\u8bf7\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u542f\u52a8\u793a\u4f8b\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nb\">cd<\/span> ~\/work\/sources\/apps\/sample_apps\/deepstream-test5\/configs\/\r\n<span class=\"nv\">$ <\/span>deepstream-test5-app <span class=\"nt\">-c<\/span> test5_config_usb_src_infer.txt \r\n<\/code><\/pre>\n<h2>3-5.\u786e\u8ba4\u7ed3\u679c<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/67-0.gif\" alt=\"out.gif\" \/><\/div>\n<h1>\u603b\u7ed3<\/h1>\n<p>\u6211\u5df2\u786e\u8ba4\u53ea\u9700\u8fdb\u884c\u7b80\u5355\u8bbe\u7f6e\u5373\u53ef\u5b9e\u73b0DeepStream SDK\u548cNode-RED\u7684\u534f\u540c\u64cd\u4f5c\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u4eec\u5c06\u6839\u636e\u4e0b\u9762\u7684\u56fe\u793a\u5728Jetson TX2\u4e0a\u914d\u7f6eKafka\u548cNode-RED\uff0c\u5e76\u89e3\u91ca\u5c06De [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-46794","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5c06deepstream-sdk\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7kafka\u4e0enode-red\u8fdb\u884c\u96c6\u6210\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u4eec\u5c06\u6839\u636e\u4e0b\u9762\u7684\u56fe\u793a\u5728Jetson TX2\u4e0a\u914d\u7f6eKafka\u548cNode-RED\uff0c\u5e76\u89e3\u91ca\u5c06De [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5c06deepstream-sdk\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7kafka\u4e0enode-red\u8fdb\u884c\u96c6\u6210\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-21T10:31:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T05:23:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/3-0.png\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/\",\"name\":\"\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2024-01-21T10:31:17+00:00\",\"dateModified\":\"2024-04-29T05:23:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5c06deepstream-sdk\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7kafka\u4e0enode-red\u8fdb\u884c\u96c6\u6210\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210","og_description":"\u9996\u5148 \u5728\u8fd9\u7bc7\u6587\u7ae0\u4e2d\uff0c\u6211\u4eec\u5c06\u6839\u636e\u4e0b\u9762\u7684\u56fe\u793a\u5728Jetson TX2\u4e0a\u914d\u7f6eKafka\u548cNode-RED\uff0c\u5e76\u89e3\u91ca\u5c06De [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u5c1d\u8bd5\u5c06deepstream-sdk\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7kafka\u4e0enode-red\u8fdb\u884c\u96c6\u6210\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2024-01-21T10:31:17+00:00","article_modified_time":"2024-04-29T05:23:37+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7aab913a08637a696efd\/3-0.png"}],"author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"3 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/","name":"\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2024-01-21T10:31:17+00:00","dateModified":"2024-04-29T05:23:37+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u5c1d\u8bd5\u5c06DeepStream SDK\u7684\u7269\u4f53\u68c0\u6d4b\u7ed3\u679c\u901a\u8fc7Kafka\u4e0eNode-RED\u8fdb\u884c\u96c6\u6210"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e5%b0%9d%e8%af%95%e5%b0%86deepstream-sdk%e7%9a%84%e7%89%a9%e4%bd%93%e6%a3%80%e6%b5%8b%e7%bb%93%e6%9e%9c%e9%80%9a%e8%bf%87kafka%e4%b8%8enode-red%e8%bf%9b%e8%a1%8c%e9%9b%86%e6%88%90%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=46794"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46794\/revisions"}],"predecessor-version":[{"id":85529,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46794\/revisions\/85529"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=46794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=46794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=46794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}