作为一名技术人员,电脑硬盘上存的许多视频都是教程、录像,而非电影。
这些长期保存的视频文件,如果能够有效压缩,则对我们帮助甚大。
我一般使用 小丸工具箱 进行压缩。这是目前公认的最好用的压缩软件。
百度网盘链接:https://pan.baidu.com/s/1dRGMXBsKUGZ2tFlT0ZnJ7Q 提取码:6666
此软件的功能是:
1,使用软件功能1,扫描电脑某个分区的所有视频文件,将它们复制集中到一个文件夹中。
2,用户手动 使用 小丸工具箱,进行压缩。
3,使用软件功能2,替换视频文件。
说明:小丸工具箱,可进行多个视频的批量压制。 压制编码,我一般选择x264_32_8bit,CRF参数默认的23或23.5即可。
背景:上周从非洲马里回国,现在上海隔离。看了python教程,编写了这个对我来说很实用的程序,第一个python程序。
源代码子函数比较多,有比较简单。就不一一贴上了。
资源在:https://download.csdn.net/download/puff1987/22319079?spm=1001.2014.3001.5503
我使用此软件将E盘中的480个视频进行了转换,视频总大小80G.左右。
当用户选择功能1时,将输入路径,实现复制。
if __name__ == '__main__': MessageFilePath = 'CopyMessage.xlsx' postfix = '_batch.mp4' # 后缀名词 ChoiceNum=ChoiceNumFunction() #ChoiceNum =2 #测试时,方便。 if ChoiceNum==1: source_dir, target_dir = ChoiceDirFunction() #source_dir='E:/公司内部培训资料/2016-1-18超声传感器讲解说明' #target_dir='E:/潜龙勿用' Filelist = getAllSub(source_dir) FileListResult = [] FileListResult=JudgeFile(Filelist) CopyMessage = Configuration(FileListResult,target_dir) xw_toExcel(CopyMessage, MessageFilePath) print('**********') print(CopyMessage) print('**********') i=1 for MessageRow in CopyMessage: Num=mycopy(MessageRow[0],MessageRow[1]) if not Num: print('此文件复制失败',MessageRow[0],MessageRow[1]) print('当前复制进度为{0}/{1}'.format(str(i),str(len(CopyMessage)))) i+=1
当用户选择功能2时,将 实现视频文件替换。
elif ChoiceNum==2: print('\n在将压缩后的视频替换原路径视频之前,您可以在CopyMessage.xlsx文件中配置第三列,选择不替换某些文件。\n') ti=str(input('是否开始替换文件?y/n =')) if ti=='y': ReadMessage = [] ReadMessage = ReadCopyMessage(MessageFilePath) ExM=ExtendMessage(ReadMessage) i=1 print('\n') for MessageRow in ExM: #print(i,'------',MessageRow) if MessageRow[2]>0: #使能开关 Num=mycopy(MessageRow[4],MessageRow[5]) if not Num: print('此文件复制失败',MessageRow[4],MessageRow[5]) else: ExM[i-1][3]=True if os.path.exists(MessageRow[5])&os.path.exists(MessageRow[0]): #确定复制成功后,删除最原始视频文件。 DelFile(MessageRow[0]) #print('已删除:',MessageRow[0]) else: pass print('****当前复制进度为{0}/{1}\t\t目标路径为:{2}'.format(str(i), str(len(ExM)),MessageRow[5])) i += 1 '''if i >= 1: # 测试用。 只运行少数几个文件进行测试。 #print(MessageRow) break''' xw_toExcel(ExM, MessageFilePath) print('\n\t替换工作已经完成。\n\t您可以通过',MessageFilePath,'表格文件查看转换结果') PathTar,File2=os.path.split(ExM[0][1]) print('\t您可以手动删除',PathTar,'文件夹下的所有文件。')