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后識別。
總結
以上是生活随笔為你收集整理的Fiddler抓包视频并转图片,去重后制讲义【视频处理】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脉冲雷达数据采集基础
- 下一篇: layui 表格加载动画_仅需四步!BI