import os import glob from natsort import natsorted

当前文件夹下的所有mp4路径

L = [] dir_path = r'E:\home\up' output_dir = r'E:\home\up\1' for root, dirs, files in os.walk(dir_path): files = natsorted(files) for file in files: if os.path.splitext(file)[1] == '.mp4': file_path = os.path.join(root, file) L.append(file_path)

生成ffmpeg命令

commands = [] for l in L: ts_file = os.path.join( os.path.dirname(l), os.path.splitext(os.path.basename(l))[0] + '.ts') commands.append( f'ffmpeg -i '{l}' -vcodec copy -acodec copy -bsf:v h264_mp4toannexb '{ts_file}'')

concat_command = ( f'ffmpeg -i 'concat:{'|''.join([os.path.join(os.path.dirname(l), os.path.splitext(os.path.basename(l))[0] + '.ts') for l in L])}' ' '-acodec copy -vcodec copy -bsf:a aac_adtstoasc ' f''{os.path.join(output_dir, os.path.splitext(os.path.basename(L[0]).replace('00', '-', 1))[0][:-1].upper() + '.mp4')}'')

执行ffmpeg命令

for command in commands: os.system(command)

os.system(concat_command)

删除ts文件和修改mp4文件名

for ts_file in glob.glob(os.path.join(dir_path, '.ts')): os.remove(ts_file) for mp4_file in glob.glob(os.path.join(output_dir, '.mp4')): os.rename(mp4_file, os.path.join(output_dir, mp4_file.split(os.path.sep)[-1].replace(mp4_file.split(os.path.sep)[-1][0], '', 1)))

Python代码:删除视频文件名中第一个英文字母之前的数字

原文地址: https://www.cveoy.top/t/topic/nCe5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录