IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Fiddler抓包视频并转图片,去重后制讲义【视频处理】 -> 正文阅读

[开发测试]Fiddler抓包视频并转图片,去重后制讲义【视频处理】

第一节 思路概述

解析、下载、合并、转换(.mp4转.png)、去重、转换(.png转.pdf)

第二节 下载在线视频至计算机

*.mp4文件

推荐普通视频下载工具,在此不赘述

*.m3u8文件(.ts与.key文件)

1、Fidder软件:进行抓包,选择URL地址中包含.m3u8字段的地址。

*可使用"Request Header"请求头的"Filter"过滤器,"Show only if URL contains"只显示包含.m3u8字段的URL地址。

?2、“主机地址+URL地址”为视频源地址,右键选择“Copy”→“Just Url”,即可复制。

3、TS助手软件:自行填写“媒体名称”、“下载目录”,粘贴视频源地址至“m3u8文件地址”。

4、点击“添加并下载”,经过“下载m3u8列表文件”“下载Key文件”“下载TS文件”“解密合并”等一系列运行后,成功下载。

5、在“下载目录”中的文件夹里,保留“.mp4”的文件,其它的删除即可。

第三节 从视频流中,以一定间隔截取多量图片

1、系统命令:将mp4转化为png

<代码>

ffmpeg -i E:\TS视频下载\分割前视频\测试视频.mp4 -vf fps=1/5 E:\TS视频下载\分割后图片\测试视频_%3d.png

ffmpeg -ss 0:0:0 -t 0:0:2 -i E:\TS视频下载\分割前视频\测试视频.mp4 -r 1 E:\TS视频下载\分割后图片\测试视频_%3d.png

<示例>

1 - 每秒截取一张图片

ffmpeg -i input.mp4 -vf fps=1 image_%3d.png1 - 每秒钟截取一张

2 - 每间隔X时间截取一张

ffmpeg -i input.mp4 -vf fps=1/10 image_%3d.png
//每间隔10秒,截取一张图片

3 - 每间隔X个关键帧截取一张

ffmpeg -i input.mp4 -vf "select='eq(pict_type,PICT_TYPE_I)'" -vsync vfr image_%3d.png

//每间隔X个关键帧截取一张

4 - 每1帧截取一张

ffmpeg -i input.mp4 -r 1 -f image2 image_%3d.png //提取图片

//-r 提取图像的频率,-ss 开始时间,-t 持续时间,-f image2?指定格式化的格式为image2

5 - 截取视频片段

ffmpeg -ss 0:1:30 -t 0:0:20 -i input.mp4 -vcodec copy -acodec copy output.mp4 //剪切视频

//-ss 开始时间,-t 持续时间

<运行结果>显示如下结果,则运行完毕

Input #0, mpegts, from 'E:\TS视频下载\分割前视频\测试视频.mp4':
? Duration: 00:04:13.10, start: 1.458667, bitrate: 291 kb/s
? Program 1
? ? Metadata:
? ? ? service_name ? ?: Service01
? ? ? service_provider: FFmpeg
? ? Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
? ? Stream #0:1[0x101](eng): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 187 kb/s
Stream mapping:
? Stream #0:0 -> #0:0 (h264 (native) -> png (native))
Press [q] to stop, [?] for help
Output #0, image2, to 'E:\TS视频下载\分割后图片\测试视频_%3d.png':
? Metadata:
? ? encoder ? ? ? ? : Lavf58.45.100
? ? Stream #0:0: Video: png, rgb24, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 0.20 fps, 0.20 tbn, 0.20 tbc
? ? Metadata:
? ? ? encoder ? ? ? ? : Lavc58.91.100 png
frame= ? 51 fps= 14 q=-0.0 Lsize=N/A time=00:04:15.00 bitrate=N/A speed=67.9x
video:17696kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

<方法>C语言控制输出数字的有效位数

image_%3d.png

表示设定格式为 image_001.png iamge_002.png等的图像文件。

函数的调用格式为: <格式化字符串> <参量表>

其中“格式化字符串”可以控制输出数字的有效位数,%x.y可以设置输出的数字的位数。

x指定数据的宽度,即小数点前、x位整数的输出位数;

y指定数据的小数位数,即保留小数点后、y位小数的输出位数。

2、Pyhton:将图片黑/白边框裁剪(可选)

导入os,numpy,cv2等相关模块

from PIL import Image
import os
import os.path
import numpy as np
import cv2

Image.crop(left, up, right, below)
-left:现左边界与左边界的距离
-up:现上边界与上边界的距离
-right:现右边界与左边界的距离
-below:现下边界与上边界的距离

rootdir = r'E:\TS视频下载\分割后图片'????????#指明被遍历的文件夹
for parent, dirnames, filenames in os.walk(rootdir):????????#遍历每一张图片
? ? for filename in filenames: ? ?
? ? ? ? currentPath = os.path.join(parent, filename) ??
? ? ? ? img = Image.open(currentPath)
? ? ? ? box1 = (320, 93, 1280, 635)????????#以“1280×720”像素大小的图片为例,设置需要剪裁的左边、上边像素和需要保留的右边、下边的像素
? ? ? ? img1 = img.crop(box1) ????????#图像裁剪
? ? ? ? #img1.show() ????????#以默认打开方式打开图片文件
? ? ? ? img1.save(r"E:\TS视频下载\裁剪后图片"+'\\'+filename) ????????#存储裁剪得到的图像
? ? ? ? print("已保存:"+filename)

第四节 删除图片中一致的/相似的图片

1、本文使用的是VisiPics1.31进行图片对比和去重。

(1)在官网下载重复图片查找软件,并安装软件

https://www.fosshub.com/VisiPics.html

(2)在官网下载汉化补丁,并替换掉内容

打开Language files→Full language files→Simplified Chinese(语言补丁→全语言补丁→简体中文)

在软件的目录(D:\Program Files (x86)\VisiPics\Lang-EN.ini)中替换为补丁的内容

2、自动选择选项中,只勾选“未压缩的图片”,取消勾选“分辨率较低”、“文件较小”。

第五节 用图片制成pdf

1、选择所有需要的png图片,合并为新的单个pdf。

(1)“创建”→“将文件合并为单个PDF”

(2)“添加文件”→“添加文件”

(3)“合并文件”

?2、已转换成格式不易改变的PDF,可直接阅读或转为word后识别。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:54:53  更:2021-09-24 10:55:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:45:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码