|
发表于 2024-12-10 14:30:17
|
显示全部楼层
看起来您的代码试图通过命令行将多个 `.ts` 文件合并成一个 `.mp4` 文件,但使用了 `copy/b` 命令。这个命令实际上只是在文件之间做一个简单的字节拼接,在某些情况下可能没法正确生成一个有效的 MP4 文件。
这里有几个可能的问题和建议:
1. **路径问题**:确保所有的 `.ts` 文件路径在 `video/` 文件夹内是正确的。
2. **命令问题**: `copy /b` 是 Windows 下的命令,运行该命令需要确保在 Windows 环境中执行,并且命令行的环境是正确的。
3. **合并方式不当**:简单拼接 `.ts` 文件可能无法生成有效的 `.mp4` 文件,尤其是在文件头部信息不一致的情况下。建议使用 FFmpeg 等专业工具来合并 `.ts` 文件。
4. **文件生成路径问题**:生成的 `movie.mp4` 文件会放在当前命令行的工作目录下,可以通过打印当前工作目录来检查:
- import os
- print(os.getcwd())
复制代码
建议使用 FFmpeg 合并:
- import os
- def merge_ts():
- with open("哲仁王后", mode="r", encoding="utf-8") as f:
- with open("file_list.txt", "w") as file_list:
- for line in f:
- if line.startswith("#"):
- continue
- line = line.strip()
- file_list.write(f"file '{line}'\n")
- os.system("ffmpeg -f concat -safe 0 -i file_list.txt -c copy movie.mp4")
- print("搞定")
- merge_ts()
复制代码
**注意**:你需要安装并将 FFmpeg 添加到你的系统环境变量中,这样 `ffmpeg` 命令才能正常工作。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|