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.
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