您现在的位置是:网站首页> 网络安全 神兵利器
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()
很赞哦!()




