Найти - Пользователи
Полная версия: из ip камеры в телегу
Начало » Python для новичков » из ip камеры в телегу
1 2 3 4 5
shiyri
Добрый день, подскажите пожалуйста короткий путь …..
У меня есть ип камера, я могу с нее взять скриншот ссылкой типа admin:admin@192.168.0.5/snapshot/snapshot.jpg, его требуется передать в телегу, провайдер Ростелеком запрещает использовать сервера api телеги, нашел выход, нашел сайт через, который сейчас отправляются логи в телегу текстом. Те на компе формируется событие и через Post запрос, событие уходит в php, на сайт, от туда в телегу, теперь хочется добавить к логу фотку. На сайте я сделал простую форму для загрузки фото, теперь надо сделать код для получения фото с камеры и отправка этого фото в форму на сайте.
Вот что получилось, но не работает, подскажите почему пожалуйста.


 #!/usr/bin/python
import cv2
import os
# Config
stream_url = 'admin:admin@192.168.2.67/action/snapshot/snapshot.jpg'
# Determine save location
absolute_script_dir = os.path.dirname(os.path.realpath(__file__))
save_dir = absolute_script_dir + '/snapshots/'
save_path = save_dir + '/snapshot.jpg'
# Capture frame from camera stream
cap = cv2.VideoCapture(stream_url)
ret, frame = cap.read()
# Save frame as image
if not os.path.exists(save_dir):
    os.makedirs(save_dir)
cv2.imwrite(save_path, frame)

ошибка:
Traceback (most recent call last):
File “C:\Users\checkout\Desktop\snap_py.py”, line 21, in <module>
cv2.imwrite(save_path, frame)
cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp:715: error: (-215:Assertion failed) !_img.empty() in function ‘cv::imwrite’
скрипт папку создает, но внутри пусто
shiyri
Насколько я правильно понимаю, сначала надо фото получить, сохранить, а потом уже отправлять…
Сохранять и отправлять лучше делать в одном скрипте или вызывать разные?
shiyri
global C:\projects\opencv-python\opencv\modules\videoio\src\cap.cpp (1
16) cv::VideoCapture:pen VIDEOIO(CV_IMAGES): raised OpenCV exception:

OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\videoio\src\cap_images.cp
p:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the n
ame of file): 192.168.2.67/action/snapshot/snapshot.jpg in function ‘cv::icvExtr
actPattern’


Запустил из командной строки вышли такие логи
shiyri
Ошибка была в адресе, надо было добавить http/
shiyri
Теперь надо

 <form method="post" action="basic.php" enctype="multipart/form-data">
<label for="inputfile">Upload File</label>
<input type="file" id="inputfile" name="inputfile"></br>
<input type="submit" value="Click To Upload">
</form>
файлик локальный(jpg), как-то положить в эту форму
py.user.next
shiyri
провайдер Ростелеком запрещает использовать сервера api телеги, нашел выход, нашел сайт через, который сейчас отправляются логи в телегу текстом
Вообще, в инете сейчас принято использовать SOCKS5-прокси. Там суть в том, что данные шифруются и какой адрес запрашивается, скрыто в шифротексте, отправляемом на прокси-сервер. Так только ты и прокси-сервер знаете, с каким узлом идёт обмен.

Так что нужно найти такой прокси (обычно список берётся) и добавить подключение через него в свой скрипт.

shiyri
Теперь надо
  
<form method="post" action="basic.php" enctype="multipart/form-data">
<label for="inputfile">Upload File</label>
<input type="file" id="inputfile" name="inputfile"></br>
<input type="submit" value="Click To Upload">
</form>
Это ты можешь узнать через консоль браузера, заполнив форму и отправив её через браузер. Созданный запрос виден в консоли браузера, которую можно открыть через клавишу F12 (для Firefox).
shiyri
py.user.next
Вообще, в инете сейчас принято использовать SOCKS5-прокси. Там суть в том, что данные шифруются и какой адрес запрашивается, скрыто в шифротексте, отправляемом на прокси-сервер. Так только ты и прокси-сервер знаете, с каким узлом идёт обмен.
Если прокси висит или выключается это искать новый? Это не стабильный вариант…. хоть и мение геморный
shiyri
 import urllib2
import requests
api_host = 'http://бла бла бла/upload.php'
headers = {'Content-Type' : 'image/jpeg'}
image_url = "C:\snapshots\snapshot.jpg"
img_file = urllib2.urlopen(image_url)
response = requests.post(api_host, data=img_file.read(), headers=headers, verify=False)

ошибка
File “up_py.py”, line 6
image_url = “C:\snapshots\snapshot.jpg”
^
SyntaxError: (unicode error) ‘unicodeescape’ codec can't decode bytes in positio
n 2-4: truncated \xXX escape

shiyri
image_url = “C:\snapshots\snapshot.jpg”
надо ставить двойные слеши
py.user.next
shiyri
Если прокси висит или выключается это искать новый?
Из списка берётся другой прокси. А список ты можешь обновлять из Интернета, там они ничем не блокируются.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB