用ffmpy行走目录树

时间:2019-02-20 15:00:37

标签: python ffmpy

我正在尝试将一个使用ffmpy的Python脚本放在一起,以从一系列.jpg图像中输出延时视频。图像按日期存储在目录中,以年为父,然后是月,然后是天,并按顺序编号:

.../2019
        /01
           /01
              /0000.jpg
               0001.jpg
               ...
               000n.jpg
           ...
           /31
              /0000.jpg
               0001.jpg
               ...
               000n.jpg

...等等。

该脚本接受两个参数:日期和格式。格式可以是'mp4'或'webm',日期可以是年份(2019),年份和月份(2019-01)或年份,月份和日期(2019-01-01)。 / p>

将这两个参数传递给函数以构建视频(日期中的“-”字符替换为“ /”以构建输入路径):

def create_video(format):
    input_path = os.path.join(location, 'images', date_path, '**/*.jpg')
    input_options = '-loglevel info -pattern_type glob -framerate 18'
    output_path = os.path.join(location, 'videos', '{0}.{1}'.format(args.date, args.format))

    if args.format == 'mp4':
        output_options = '-c:v libx264 -vf "scale=1280:-1,hqdn3d=luma_spatial=1" -pix_fmt yuv420p'
    else:
        output_options = '-c:v libvpx -vf "scale=1280:-1,hqdn3d=luma_spatial=1" -b:v 1M -c:a libvorbis'

    ff = ffmpy.FFmpeg(
        'inputs={{{0}: {1}}}'.format(input_path, input_options),
        'outputs={{{0}: {1}}}'.format(output_path, output_options)
    )
    ff.run()

问题是试图让ffmpy遍历目录树;当我尝试运行脚本时,出现了“ FileNotFoundError:[Errno 2]没有这样的文件或目录”错误。

我也尝试过这种方法,但是它给出了相同的“未找到”错误:

input_path = os.path.join(location, 'images', date_path)
input_options = '-loglevel info -pattern_type glob -i **/*.jpg -framerate 18'

有没有一种方法可以使ffmpy遍历目录以查找图像,而无需创建if...elif...else语句来为每个日期模式构建不同的输入路径?如果您要处理单个目录中的图像,那么我在Google上找到的所有结果都可以,但是却找不到能够遍历不同深度的多个目录的任何内容。

0 个答案:

没有答案