修改下面python3代码为全部由python运行import osfrom natsort import natsorted# 存储当前文件夹下的所有mp4文件路径L = for root dirs files in oswalkhomedownloads files = natsortedfiles for file in files # 只处理mp4文件
import os from natsort import natsorted
存储当前文件夹下的所有mp4文件路径
L = [] for root, dirs, files in os.walk('/home/downloads'): files = natsorted(files) for file in files: # 只处理mp4文件 if os.path.splitext(file)[1] == '.mp4': file_path = os.path.join(root, file) L.append(file)
生成bash文件
with open('/home/downloads/mp4.sh', 'w') as f: f.write("#! /usr/bin/env python\n\n") for l in L: f.write(f"import subprocess\n") f.write(f"subprocess.run(['ffmpeg', '-i', '{l}', '-vcodec', 'copy', '-acodec', 'copy', '-vbsf', 'h264_mp4toannexb', '{l.replace('.mp4', '.ts')}'], check=True)\n")
f.write(f"\ninput_files = [{'|'.join([i.replace('.mp4', '.ts') for i in L])}]\n")
f.write(f"with open('input.txt', 'w') as f:\n")
f.write(f"\tf.write('\\n'.join(input_files))\n")
f.write(f"\nsubprocess.run(['ffmpeg', '-f', 'concat', '-safe', '0', '-i', 'input.txt', '-acodec', 'copy', '-vcodec', 'copy', '-absf', 'aac_adtstoasc', 'output.mp4'], check=True)\n")
f.write(f"subprocess.run(['rm', '*.ts'])\n"
原文地址: https://www.cveoy.top/t/topic/cNWM 著作权归作者所有。请勿转载和采集!