使用动画将捕获的图片发布到API-rpi4

问题描述 投票:0回答:1

我正在尝试构建一个程序,该程序会自动将通过运动拍摄的照片从我的USB网络摄像头发布到其他API,并且遇到了一些问题。我的直播正常工作,并且可以在所需时间拍照。我有脚本可以在此处发布照片:

on_picture_save home/pi/Documents/on_picture_save.py 

(是,删除分号)

如何使脚本使用刚刚保存的文件,或者自动执行该脚本,所以我只需要执行以下操作?:

import requests

url = "https://api.emotuit.com/upload"

r = requests.post(url)

print(r.text)

所有运动保存在的目标目录是主目录/ pi /显示器,并且根据事件发生的时间将照片保存在自己的目录中,如下所示:

picture_filename %v_%Y-%m-%d-%H:%M/%q

任何想法,将不胜感激,谢谢!

python api post raspberry-pi motion-detection
1个回答
0
投票

基于on_picture_save文档,您可以在命令中使用%f

on_picture_save home/pi/Documents/on_picture_save.py %f

并且它应该发送带有完整路径的文件名作为参数,您可以将其作为sys.argv[1]获得>

import sys

print(sys.argv[1])

您也可以使用其他Conversion Specifiers发送其他信息。


BTW:

snapshot_filename的文档中,您还可以看到

target_dir

中创建一个名为lastsnap.jpg]的符号链接,然后除非快照_文件名是完全是'lastsnap'

所以您可以将最后一张图片作为lastsnap.jpg


EDIT:似乎您有curl命令

curl -X POST api.link.com/here -F 'files=@/path/to/file/here.jpg;type=image.jpg'

可以在http://curl.trillworks.com上转换为Python的请求

并且使用sys.argv[1]可能是

import sys
import requests

files = {'files': (sys.argv[1], open(sys.argv[1], 'rb'))}

response = requests.post('http://api.link.com/here', files=files)

print(response.json())

但是它无法访问您的屏幕,您也看不到它。您只能将其保存在文件中并创建其他程序(在桌面上手动运行)以读取并显示它。

我正在使用MQTT队列而不是文件。

[on_picture_save.py正在将数据发送到队列,而家里的其他本地计算机在桌面上运行脚本,该脚本定期从队列中获取数据并显示在桌面上。

Paho MQTT

© www.soinside.com 2019 - 2024. All rights reserved.