Stream摄像头内容到浏览器
需求: 将网络摄像头的流截取下来,进行处理如人脸识别等以后,重新发布到浏览器中直接通过浏览器访问。
本文采用了一个简单的容易实现的方案,使用java语言springboot 框架实现,其它语言应该也是类似。示例代码webcamera-stream-demo
1. 实现思路
使用websocket,客户端和服务器端建立一个长连接,服务器端以固定时间间隔发送一帧(一帧图片的jpeg的base64编码)给前端通过<img>
展示。具体流程:
- 通过opencv 读取摄像头的RTSP视频流。RTSP协议被大多数网络摄像头支持,摄像头的RTSP流的url可以搜索一下
各主流摄像头的rtsp地址格式
- 对读取的帧进行想要的操作
- 通过websocket发布操作后的帧
2. 具体实现
PreviewController.java
greeting()
方法会每隔50ms(20fps)调用一次,每次将最新的一帧发布出去Camera.java
创建一个后台进程不断读取摄像头的视频流resources/static/index.html(app.js)
客户端订阅socket接收帧,每接收到一帧就更新一次图片,20fps可以达到流畅的视频效果。
Double Jpeg detection with the same quantization matrix (Notes)
1. Introduction
介绍一下几篇论文中等质量双压缩检测的方法,备忘。State of the-art double jepg compression detection with the same quantization matrix.
2. Methods
2.1 Proposed by Fangjun et al.
Detecting Double JPEG Compression With the Same Quantization Matrix
2.1.1 jpeg压缩和解压缩过程导致的三种误差
i. 量化误差 压缩过程中,DCT系数量化导致的误差
ii. 截断误差 解压缩过程中,IDCT变换可能导致值在[0,255]之外,需要截断到0或者255
iii. 舍入误差 解压缩, IDCT变换得到的值为浮点数,需要舍入为最接近的整数
2.1.2 jpeg多重压缩统计特征
\(J_n\)代表压缩n次的Jpeg图片,\(D_n\)代表 \(J_n\)和\(J_{n+1}\)中JPEG系数(量化后的DCT系数)不一样的个数,\(S_n\)代表\(J_n\)中非0 JPEG系数的个数。
统计特征:随着n增加,\(D_n\)单调减小
Copyright © 2015 Powered by MWeb, Theme used GitHub CSS.