Dashboard 2 and cameras

Hello,
Is there a way to get my RTSP or JPEG cameras into Dashboard2?

I started a successor of the ui-mp4 frag node (dashboard 1) from @kevinGodell. See node-red-contrib-video. But due to lack of free time and lack of contributions, it is not completed yet.

thank you very much. Unfortunatelly i am very unexperienced in hls, and all that stuff around videos. I just wanted to get my IP camera into my Dashboard2, but apparently there is no plug and play solution for this. Anyway i am more than thankfull for your interest to help.

There is a way to do it I have 5 cameras running, but it's not plug in a node and go there are a few steps.

would you please give more details? how to get it working?

Note that I have written some wiki pages, inclusive a hls intro and a tutorial about showing an RTSP camera stream in dashboard D2.

1 Like

tanks for the info

here is one camera, this is repeated five times

[{"id":"9e3662b7092cb61d","type":"http request","z":"2f2c61633c921d2f","name":"1","method":"GET","ret":"bin","paytoqs":"ignore","url":"url and password to login to camera","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":450,"y":180,"wires":[["571e65c1f5860456"]]},{"id":"571e65c1f5860456","type":"base64","z":"2f2c61633c921d2f","name":"","action":"str","property":"payload","x":680,"y":180,"wires":[["e69dc16832d71e67"]]},{"id":"e69dc16832d71e67","type":"ui-template","z":"2f2c61633c921d2f","group":"9df61d18902808f6","page":"","ui":"","name":"camera 1","order":2,"width":"6","height":"6","head":"","format":"<template>\n  <v-container>\n    <v-col>\n      <v-row>\n        <v-card>\n          <img\n            v-if=\"isValidBase64(msg.payload)\"\n            width=\"100%\"\n            height=\"100%\"\n            alt=\"shucks\"\n            :src=\"`data:image/png;base64,${msg.payload}`\"\n          />\n          <div v-else>Invalid image data</div>\n        </v-card>\n      </v-row>\n    </v-col>\n  </v-container>\n</template>\n\n<script>\n  export default {\n  props: {\n    msg: {\n      type: Object,\n      required: true\n    }\n  },\n  \n  data() {\n    return {\n      isActive: {},\n      buttonText: {\n        time: ''\n      }\n    };\n  },\n\n  watch: {\n    msg: {\n      deep: true,\n      handler(newVal) {\n          this.buttonText.time = newVal.payload;\n        }\n      \n    },\n  },\n\n  methods: {\n\n    isValidBase64(str) {\n      // Basic validation for Base64 string\n      return typeof str === 'string' && /^[A-Za-z0-9+/=]+$/.test(str);\n    }\n  },\n};\n</script>","storeOutMessages":true,"passthru":false,"resendOnRefresh":true,"templateScope":"local","className":"","x":860,"y":180,"wires":[[]]},{"id":"9df61d18902808f6","type":"ui-group","name":"Camera","page":"1ee8d4f46e820153","width":"6","height":"6","order":1,"showTitle":false,"className":"","visible":"true","disabled":"false","groupType":"default"},{"id":"1ee8d4f46e820153","type":"ui-page","name":"Camera","ui":"be93d1640cb1fd4c","path":"/Camera","icon":"mdi-camera-iris","layout":"flex","theme":"8226cb6548fd5dbd","breakpoints":[{"name":"Default","px":"0","cols":"3"},{"name":"Tablet","px":"576","cols":"6"},{"name":"Small Desktop","px":"768","cols":"9"},{"name":"Desktop","px":"1024","cols":"12"}],"order":9,"className":"","visible":"true","disabled":"false"},{"id":"be93d1640cb1fd4c","type":"ui-base","name":"PageOne","path":"/dashboard","appIcon":"","includeClientData":true,"acceptsClientConfig":["ui-notification","ui-control"],"showPathInSidebar":false,"showPageTitle":true,"navigationStyle":"default","titleBarStyle":"default"},{"id":"8226cb6548fd5dbd","type":"ui-theme","name":"Default","colors":{"surface":"#000000","primary":"#808080","bgPage":"#000000","groupBg":"#000000","groupOutline":"#808080"},"sizes":{"density":"default","pagePadding":"12px","groupGap":"12px","groupBorderRadius":"4px","widgetGap":"12px"}}]

the input is an inject node set to repeat every 10 seconds

[edit] this is not video it is a every 10 second snap shot of the camera

2 Likes