Python3 代码:将 MP4 文件转换为 TS 格式并合并
该代码没有语法错误。它使用 Python3 实现将多个 MP4 文件转换为 TS 格式并最终合并成一个新的 MP4 文件。
import os
from natsort import natsorted
import subprocess
# 存储当前文件夹下的所有mp4文件路径
L = []
for root, dirs, files in os.walk('E:/home/up'):
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_path)
# 转换为ts格式
for l in L:
ts_file_path = l.replace('.mp4', '.ts')
cmd = f'ffmpeg -i '{l}' -vcodec copy -acodec copy -vbsf h264_mp4toannexb '{ts_file_path}''
subprocess.run(cmd, shell=True)
# 合并为mp4格式
ts_list = [l.replace('.mp4', '.ts') for l in L]
concat_str = '|' .join(ts_list)
cmd = f'ffmpeg -i 'concat:{concat_str}' -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4'
subprocess.run(cmd, shell=True)
# 删除ts文件
for ts in ts_list:
os.remove(ts)
代码解释:
- 导入库: 首先导入 os、natsort 和 subprocess 库,它们分别用于文件操作、自然排序和执行 shell 命令。
- 获取文件路径: 代码使用 os.walk() 遍历指定目录('E:/home/up') 下的所有文件,并将所有 MP4 文件的路径存储在 L 列表中。
- 转换为 TS 格式: 代码遍历 L 列表,将每个 MP4 文件路径转换为对应的 TS 文件路径,并使用 ffmpeg 命令将其转换为 TS 格式。
- 合并为 MP4 格式: 代码将所有生成的 TS 文件路径拼接成一个字符串,并使用 ffmpeg 命令将其合并成一个新的 MP4 文件。
- 删除 TS 文件: 最后,代码删除所有生成的 TS 文件。
注意:
- 该代码需要安装 ffmpeg 工具。
- 可以根据实际情况修改代码中的目录路径和输出文件名称。
- 使用 natsorted() 函数可以确保生成的 TS 文件按正确的顺序合并。
通过这个 Python3 代码,您可以轻松地将多个 MP4 文件转换为 TS 格式并合并成一个新的 MP4 文件。
原文地址: https://www.cveoy.top/t/topic/nzGY 著作权归作者所有。请勿转载和采集!