Вопрос Список видеофайлов и длительность для нескольких файлов в папке и вложенных папках с возможностью, если это возможно


Мне нужно получить список имен файлов и путь вместе с длительностью файла. Все видеофайлы. Некоторые файлы также находятся в подпапках. Мне нужен список, отсортированный по длительности. Моя цель - удалить файлы с длительностью менее 2 минут. Есть ли что-то, что я могу сделать это через терминал или графический интерфейс?


2
2018-02-12 08:20


происхождения


Возможный дубликат: askubuntu.com/q/681388/295286 - Sergiy Kolodyazhnyy


ответы:


Вам не повезло, не используя внешние программы, file videoname.xyz не возвращает продолжительность видео. С другой стороны, avprobe (ffprobe) из пакета libav-инструменты делает!

Вам нужно будет выполнить рекурсивный прогон каталога (например, на Python), вызвать avprobe (через подпроцесс), проанализировать продолжительность с выхода и сохранить длину воспроизведения и имя файла в подходящей структуре.


1
2018-02-12 09:05





это должно дать вам список mp4s менее 120 секунд в указанной папке, включая подпапки

find ~/pathtofolder -iname '*.mp4' -type f > vidfiles && while read f; do echo -n "$f: "; ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$f"; done < vidfiles | awk '$NF<120' > shortvids

Просто измените ~/pathtofolder в ваше целевое местоположение.

Список будет в файле с именем shortvids

Я прошу прощения за не сортировку, но я не вижу необходимости, если единственными файлами в списке являются короткие видеоролики.

Если вы хотите изменить продолжительность, ближе к концу изменения '$NF<120' на количество секунд. Например '$NF<300' означало бы "продолжительность менее 5 минут (или 300 секунд)"

конечно, вы также можете найти продолжительность больше чем или равно путем изменения знака ie. < в > или =


1
2018-03-07 19:54