小丸工具箱官方网站
来源:Python技术
作者:派森酱
人类都是视觉动物小丸工具箱mkv转换成无损mp4,不管是男生还是女生看到漂亮的小姐姐、小哥哥就想截图保存下来。可是截图会对画质会产生损耗,截取的画面不规整,像素不高等问题。
用 Python 写一个逐帧无损保存视频画面的小脚本大致可以分为三个步骤:
安装模块
pip3 install you-get
pip3 install opencv-python
you-get
you-get 是一个开源的视频下载软件,支持 80+ 网站视频的下载。只需要一行代码就可以小丸工具箱mkv转换成无损mp4了。
在 cmd 中运行下面的命令下载视频:
you-get -o 下载后保存文件的目录 视频的 url 地址
展开全文
如果报 'you-get' 不是内部或外部命令,也不是可运行的程序 问题,可以运行
pip show you-get
将 Location 的值的 site-packages 改成 Scripts 加入到环境变量,如:c:\users\xxx\appdata\roaming\python\python39\site-packages 改成c:\users\xxx\appdata\roaming\python\python39\Scripts。
OpenCV
磨刀不误砍柴工, 在开发之前先来认识一下 OpenCV。它的全称是 Open Source Computer Vision Library,是一个可以跨平台的计算机视觉库 ,OpenCV-Python 是 OpenCV 的 Python API。它集合了 C++ 和 Python 的最优特征,用于支持 Python 解决计算机视觉的问题。OpenCV 可以用于人机互动、图像分割、人脸识别等等领域。
在处理视频按帧保存图片的时候需要用到以下几个函数:
话不多说,用上面的函数写一个截取视频画面的 Python 程序.
import cv2
import os
image_base_path = "D:\\video\\images\\";
def get_images(video_path):
frame_times = -1;
fileName = video_path.split("\\")[-1:][0].split('.')[0]
image_out_path = image_base_path + fileName
if not os.path.exists(image_out_path):
os.makedirs(image_out_path)
cap = cv2.VideoCapture(video_path)
while cap.isOpened():
frame_times = frame_times + 1
success, frame = cap.read()
if not success:
break;
cv2.imencode('.jpg', frame)[1].tofile(image_out_path + "\\" + str(frame_times) + ".jpg")
if __name__ == '__main__':
get_images('D:\\vedio\\✿温柔旗袍中国风✿ (P1. 【横屏】).mp4')
总结
本文简单的介绍了you-get 的使用和如何使用 OpenCV 读取视频并保存图片。