Ходячее дерево каталогов с помощью ffmpy - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь собрать скрипт Python, который использует ffmpy для вывода видео с интервальной съемкой из серии изображений .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).

Эти два аргумента передаются в функцию для построения видео (символы «-» в дате заменяются на «/» для построения пути ввода):

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, хороши, если вы имеете дело с изображениями в одном каталоге, но не смогли найти ничего, что могло бы пройти через несколько каталогов на разной глубине.

...