python - 如何使用带有 FFmpeg 的 Python 自动剪切视频?

标签 python ffmpeg

我正在尝试使用带有 FFmpeg 的 Python 自动剪切视频,因此每次我想要新的视频剪切时都不必输入命令。我不确定我做错了什么,这是代码:
导入操作系统

path = r'C:/Users/user/Desktop/folder'

    for filename in os.listdir(path):
       if (filename.endswith(".mp4")): 
           command = "ffmpeg - i" + filename + "-c copy -map 0 -segment_time 00:00:06 -f segment -reset_timestamps 1 output%03d.mp4"
           os.system(command)
       else:
           continue

最佳答案

错别字
首先,语法中有一个错字,正如您所写的 - i而正确的语法是-i .
语法 " + filename + "是正确的,但是前后必须有空格

command = "ffmpeg -i " + filename + " -c copy -map 0 -segment_time 00:00:06 -f segment -reset_timestamps 1 output%03d.mp4"
否则,您会收到类似的错误
Unrecognized option 'iC:\Users\user\Desktop\folder\filename.mp4-c'.
Error splitting the argument list: Option not found
解决方案
我认为其他所有论点都是正确的,对我来说,起初它不起作用,我只需要添加-fflags +discardcorrupt但也许这只是我的文件。
这是正确的代码,但我建议您阅读 this .
注意:我使用了 os.path.join()将输出文件保存在同一目录中,因为我的 python 文件在另一个目录中。
import os

path = r'C:\Users\user\Desktop\folder'

for filename in os.listdir(path):
    if filename.endswith(".mp4"): 
        command = "ffmpeg -fflags +discardcorrupt -i " + os.path.join(path, filename) + " -c copy -map 0 -segment_time 00:00:03 -f segment -reset_timestamps 1 " + os.path.join(path, "output%03d.mp4")
        os.system(command)
    else:
        continue

关于python - 如何使用带有 FFmpeg 的 Python 自动剪切视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68398729/

相关文章:

ffmpeg - 使用 FFMPEG 从音频生成波形视频

c++ - 如何打开AVCodec?

ffmpeg 转换的垂直堆叠的 .mp4 视频不在 Windows 上播放

video - FFMpeg - 删除重复帧后修剪视频

Python 网页抓取 : how to skip url error

python - 如何加快 exec() 的重复执行速度?

python - reshape .cc :55 stretch_dim ! = -1。节点号 X (RESHAPE) 准备失败

encoding - ffmpeg 单色 rawvideo

python - 粘贴后 'insertion point' 的位置(以编程方式)

python - 虽然真正的 python 脚本应该无限循环但它只执行一次 - Monkeyrunner