赞
踩
解析、下载、合并、转换(.mp4转.png)、去重、转换(.png转.pdf)
*.mp4文件
推荐普通视频下载网站及其工具“硕鼠”FLVCD - 硕鼠官网|在线视频下载,支持无代码下载90%的主流视频网站视频。但仅限于非商业用途。
*.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”的文件,其它的删除即可。

推荐FFmpeg官网Download FFmpeg下载。

支持操作三种系统Linux,Windows,Mac,笔者以Windows为例,下载了程序包“Windows builds from gyan.dev”的版本“ffmpeg-2023-06-19-git-1617d1a752-essentials_build.7z”,用Zip解压软件解压到一般的程序安装地址即可。

<代码>
先在cmd中转到FFmpeg的解压地址,再按需求执行如下任一命令:
[常用1]ffmpeg -i E:\视频下载\分割前视频\测试视频.mp4 -vf fps=1/5 E:\视频下载\分割后图片\测试视频_%3d.png
[常用2]ffmpeg -ss 0:0:0 -t 0:0:2 -i E:\视频下载\分割前视频\测试视频.mp4 -r 1 E:\视频下载\分割后图片\测试视频_%3d.png
<示例>
1 - 每秒截取一张图片
ffmpeg -i input.mp4 -vf fps=1 image_%3d.png
//每秒钟截取一张
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:\视频下载\分割前视频\测试视频.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:\视频下载\分割后图片\测试视频_%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:\视频下载\分割后图片' #指明被遍历的文件夹
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:\视频下载\裁剪后图片"+'\\'+filename) #存储裁剪得到的图像
print("已保存:"+filename)
1、本文使用的是VisiPics-1-31汉化补丁版软件,进行图片对比和去重。
(1)在官网下载重复图片查找软件,并安装软件
VisiPics download latest version中
(2)在官网下载汉化补丁,并替换掉内容
Simplified Chinese - VisiPics中,进入Language files→Full language files→Simplified Chinese(语言补丁→全语言补丁→简体中文)路径;

将简体中文Simplified Chinese - VisiPics配置设置的文本内容,替换掉在软件安装目录(D:\Program Files (x86)\VisiPics)下文件“Lang-EN.ini”的文本内容。
2、更改VisiPics.exe程序的默认设置
“过滤选项”选项中,选择“严格”至“基本”的中间层次;

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

1、选择所有需要的png图片,合并为新的单个pdf。
(1)“创建”→“将文件合并为单个PDF”

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

(3)“合并文件”

2、已转换成格式不易改变的PDF,可直接阅读或转为word后识别。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。