您现在的位置是:网站首页> 网络安全 神兵利器
python视频批量压缩脚本
栗子2019-04-12 00:24:54【神兵利器】人已围观
简介随着手机像素越来越高,我的手机默认4K,出门旅游时,随手拍一段视频,5分钟就能占用手机1个多G的存储空间。造成我这32G的存储还没怎么用就满了。 当即想到QQ影音、格式工厂等可以转码压缩视频,尝试后发现并不好用,因为录像时手机可能竖着拍也可能横着拍,导致压缩时分辨率与原先不一致,视频扭曲、变相。只好自己想办法。
随着手机像素越来越高,我的手机默认4K,出门旅游时,随手拍一段视频,5分钟就能占用手机1个多G的存储空间。造成我这32G的存储还没怎么用就满了。
当即想到QQ影音、格式工厂等可以转码压缩视频,尝试后发现并不好用,因为录像时手机可能竖着拍也可能横着拍,导致压缩时分辨率与原先不一致,视频扭曲、变相。只好自己想办法。
自己码了一个python3的脚本,借助神器FFmpeg解决。由于视频压缩较耗费硬盘性能,就不考虑多线程了。
FFmpeg下载地址:https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20190411-ce92ee4-win64-static.zip
功能:自动识别分辨率;压缩码率为2K,不会导致视频不清晰;压缩比例约为10:1;自动遍历文件夹,批量处理;目前只支持MP4,因为手机视频多数都是MP4,其他格式可以自己改,当然如果大佬有需求可以通过博客上的联系方式联系在下,乐意交流。
无图无真相
#coding=utf-8 import getopt import os import sys T1 = ('==============================\n' ' 视频批量压缩工具\n' ' www.baikesec.com\n' '==============================\n') def main(argv): try: opts, args = getopt.getopt(argv, "hs:d:", ["help","spath=", "dpath="]) except getopt.GetoptError: print('Error:请输入"-h"查看帮助') sys.exit(2) for opt, arg in opts: if opt == '-h': print(T1 + '\n参数:\n' ' -s 源文件夹\n' ' -d 目的文件夹\n\n\n' + "举个栗子:mp4ys.py -s c:\\windows -d D:\\") sys.exit() elif opt in ("-s", "--spath"): global inputpath inputpath = arg elif opt in ("-d", "--dpath"): global d_path d_path = arg if "\\" != d_path[-1]: d_path = d_path + "\\" def run(): print(T1) file_l = os.listdir(inputpath) for file in file_l: global path path = os.path.join(inputpath, file) if ".mp4" in file: global file_re f_path,file_re = os.path.split(file) cmd = "ffmpeg.exe -i " + path + " -vcodec h264 -r 30 -b:v 2048k " + d_path + file_re + " -y" #print(cmd) os.system(cmd) print("视频:%s 压缩完成"%file_re) if __name__ == "__main__": main(sys.argv[1:]) run()
很赞哦!()