NEWS
Videos per Telegram
-
Hallo zusammen,
ich möchte mit dem Telegram-Adapter Bilder und Videos von der Pi-Kamera versenden. Ersteres geht soweit.
Aber die Videos schickt er nicht. Nachdem ich die die Video mit raspvid aufgenommen habe (Länge 10sek) werden diese mit MP4Box zu mp4 konvertiert.
Hier das vollständige Skript:
on({id: "telegram.0.communicate.request"/*Last received request*/, change: "any"}, function (obj) { var d = new Date(); var curr_date = d.getDate(); var curr_month = d.getMonth() + 1; //Months are zero based var curr_year = d.getFullYear(); var curr_hour = d.getHours(); var curr_min = d.getMinutes(); //console.log(curr_date + "-" + curr_month + "-" + curr_year + '_'+curr_hour+curr_min); //var filename = curr_year +""+ curr_month +""+ curr_date + "_" + curr_hour+""+curr_min + ".jpg"; //console.log(filename); if (getState("telegram.0.communicate.request").val.toLowerCase().search("picam") != -1 ) { var filename = curr_year +""+ curr_month +""+ curr_date + "_" + curr_hour+""+curr_min + ".jpg"; exec ("raspistill -w 1920 -h 1080 -q 90 -o /home/pi/picam/" + filename + " > /home/pi/picam/picerr.log"); setTimeout(function() { //your code to be executed after 1 second //sendTo('telegram', "/home/pi/picam/" + filename); sendTo('telegram.0', { text: '/home/pi/picam/' + filename, caption: filename, disable_notification: true }); }, 8000); } if (getState("telegram.0.communicate.request").val.toLowerCase().search("pivid") != -1 ) { filename = curr_year +""+ curr_month +""+ curr_date + "_" + curr_hour+""+curr_min + ".h264 "; filenamefin = curr_year +""+ curr_month +""+ curr_date + "_" + curr_hour+""+curr_min + ".mp4 "; exec ("raspivid -o /home/pi/picam/" + filename + " -t 10000 -w 1280 -h 720 > /home/pi/picam/viderr.log"); //raspivid -o video.h264 -t 10000 exec ("MP4Box -add "+filename+" " + filenamefin); setTimeout(function() { //your code to be executed after 1 second sendTo('telegram.0', { text: '/home/pi/picam/' + filenamefin, //upload_video: '/home/pi/picam/' + filenamefin, caption: filename, disable_notification: true }); }, 20000); } });
Kann mir jemand einen Tip geben?
Danke!!
-
Dein Dateiname beinhaltet Leerzeichen am Ende. Und du musst Dateiname in "text" platzieren.
-
Hallo,
danke für den Hinweis mit den Leerzeichen. Der Dateiname ist aber doch dem Element 'text' zugewiesen. Analog wie bei den Bildern und da geht es ja,
Grüße
-
Hallo,
danke für den Hinweis mit den Leerzeichen. Der Dateiname ist aber doch dem Element 'text' zugewiesen. Analog wie bei den Bildern und da geht es ja,
Grüße `
Wenn du beliebiges bestehendes Video überträgst? Vielleicht sind 20 Sekunden zu kurz. -
Schein eher am Timing zu liegen. Die Nachricht wurde gesendet bevor das Video fertig verarbeitet wurde
Damit geht es
on({id: "telegram.0.communicate.request"/*Last received request*/, change: "any"}, function (obj) { var d = new Date(); var curr_date = d.getDate(); var curr_month = d.getMonth() + 1; //Months are zero based var curr_year = d.getFullYear(); var curr_hour = d.getHours(); var curr_min = d.getMinutes(); if (getState("telegram.0.communicate.request").val.toLowerCase().search("picam") != -1 ) { var filename = curr_year +""+ curr_month +""+ curr_date + "_" + curr_hour+""+curr_min + ".jpg"; exec ("raspistill -q 90 -o /home/pi/picam/" + filename + " > /home/pi/picam/picerr.log"); setTimeout(function() { sendTo('telegram.0', { text: '/home/pi/picam/' + filename, caption: filename, disable_notification: true }); }, 6000); } if (getState("telegram.0.communicate.request").val.toLowerCase().search("pivid") != -1 ) { filename = curr_year +""+ curr_month +""+ curr_date + "_" + curr_hour+""+curr_min + ".h264"; filenamefin = curr_year +""+ curr_month +""+ curr_date + "_" + curr_hour+""+curr_min + ".mp4"; setTimeout(function() { exec ("raspivid -o /home/pi/picam/" + filename + " -t 10000 -w 1280 -h 720"); }, 1000); setTimeout(function() { exec ("MP4Box -add /home/pi/picam/"+filename+" /home/pi/picam/" + filenamefin + " >> vidconerr.log"); setTimeout(function() { sendTo('telegram.0', { text: '/home/pi/picam/' + filenamefin, caption: filenamefin, disable_notification: true }); }, 4000); }, 12000); } });