摄像头相关记录

1、视频流获取

RTSP视频流传输协议

ffmpeg视频流处理工具:获取(摄像头,网络,本地),处理 优势:支持多种传输协议, 会根据传输协议调整,更加方便的获取数据,负责搞定复杂的视频源,稳定的抓取图像。 视频2进制流的起始和结束标记分别为FFD8和FFD9

opencv视频流处理工具:方便对图像和视频进行分析(进一步操作)

第一步:下载FFmpeg(Windows版本)

  1. 打开FFmpeg官方下载页:https://ffmpeg.org/download.html
  2. 找到「Windows」板块,点击「Windows builds by BtbN」(这是最常用的Windows编译版本,不用自己编译);
  3. 跳转到GitHub页面后,下载最新的「ffmpeg-master-latest-win64-gpl.zip」(64位系统,zip压缩包,不用安装,解压就能用);
  4. 把下载的压缩包解压到你想存放的目录,比如 D:\Software\ffmpeg(路径里不要有中文/空格 ,避免后续出问题)。
    解压后你会看到目录里有 bin 文件夹,里面包含 ffmpeg.exe(核心程序)、ffplay.exe(测试播放)等文件,这就是FFmpeg的核心文件。

第二步:配置环境变量(让系统能找到ffmpeg命令)

  1. 右键点击「此电脑」→ 选择「属性」→ 点击右侧「高级系统设置」;
  2. 在弹出的「系统属性」窗口中,点击「环境变量」;
  3. 在「系统变量」列表里找到「Path」,双击它;
  4. 点击「新建」,把FFmpeg解压目录下的 bin 路径粘贴进去(比如 D:\Software\ffmpeg\bin);
  5. 点击「确定」保存所有窗口(一定要点到底,所有弹窗都确认)。

第三步:验证FFmpeg是否安装成功

  1. 关闭所有已打开的命令行/终端窗口(环境变量需要重启终端才生效);
  2. 重新打开「命令提示符」(CMD)或「PowerShell」;
  3. 输入命令:ffmpeg -version
    • 如果显示FFmpeg的版本信息(比如ffmpeg version 6.1...),说明安装+配置成功;
    • 如果还是报错,检查路径是否输错(比如少写了\bin),或重启电脑再试。
bash 复制代码
# 替换 用户名/密码 为你摄像头的实际账号密码
ffmpeg -rtsp_transport tcp -i rtsp://admin:123456@ip:554/stream1 -vframes 1 -f image2 test.jpg
ffplay -rtsp_transport tcp rtsp://admin:123456@ip:554/stream1

如果能正常播放画面,说明流完全没问题;如果画面卡顿/黑屏,就是流本身不稳定。

补充:确认摄像头 RTSP 流路径

如果改了密码还是不行,大概率是 RTSP 流路径不对(不同品牌路径格式不同),给你几个常用格式参考:

海康威视:rtsp://admin:密码@ip地址:554/Streaming/Channels/101

大华:rtsp://admin:密码@ip地址:554/cam/realmonitor?channel=1&subtype=0

通用:rtsp://admin:密码@ip地址:554/0 / rtsp://admin:密码@ip地址:554/1/1

python 复制代码
import cv2

# 原地址(无密码):rtsp://ip地址:554/stream1
# 修改后(带密码):rtsp://admin:123456@ip地址.4:554/stream1
cap = cv2.VideoCapture("rtsp://admin:123456@ip地址:554/stream1")

# 测试读取帧
ret, frame = cap.read()
if ret:
    print("成功读取帧!")
    cv2.imwrite("test_code.jpg", frame)
else:
    print("读取帧失败(仍有问题)")
cap.release()

2、docker采用桥接模式可能导致视频传输时网络丢包

将主机的代码目录挂载到Docker容器中

在 Docker 环境下配置挂载点

使用 -v 或 --mount 参数挂载数据卷

如果是类似这种情况,可能存在网络问题导致数据丢包

相关推荐
230万光年的思念5 分钟前
【无标题】
python
shengli72211 分钟前
机器学习与人工智能
jvm·数据库·python
2301_7657031419 分钟前
Python迭代器(Iterator)揭秘:for循环背后的故事
jvm·数据库·python
追风少年ii39 分钟前
多组学扩展---分子对接pyrosetta
python·数据分析·空间·单细胞
2301_821369611 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
m0_561359671 小时前
使用Kivy开发跨平台的移动应用
jvm·数据库·python
编程火箭车1 小时前
04.第一个 Python 程序:Hello World 从编写到运行全解析
python·python第一个程序·python入门报错解决·python新手教程·hello world 程序·python终端运行·pycharm运行代码
qq_423233902 小时前
如何用FastAPI构建高性能的现代API
jvm·数据库·python
疯狂踩坑人2 小时前
【Python版 2026 从零学Langchain 1.x】(二)结构化输出和工具调用
后端·python·langchain
HDO清风2 小时前
CASIA-HWDB2.x 数据集DGRL文件解析(python)
开发语言·人工智能·pytorch·python·目标检测·计算机视觉·restful