摄像头相关记录

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 参数挂载数据卷

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

相关推荐
X56612 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
ZhengEnCi2 小时前
03ab-PyTorch安装教程 📚
python
狐狐生风3 小时前
LangChain 向量存储:Chroma、FAISS
人工智能·python·学习·langchain·faiss·agentai
狐狐生风3 小时前
LangChain RAG 基础
人工智能·python·学习·langchain·rag·agentai
老前端的功夫3 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
yaoxin5211234 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
dFObBIMmai4 小时前
MySQL主从同步中大事务导致的延迟_如何拆分大事务优化同步
jvm·数据库·python
szccyw04 小时前
mysql如何限制特定存储过程执行权限_MySQL存储过程安全访问
jvm·数据库·python
小白学大数据4 小时前
Python 自动化爬取网易云音乐歌手歌词实战教程
爬虫·python·okhttp·自动化
风之所往_5 小时前
Python 3.0 新特性全面总结
python