Перечислите файлы, которые не являются закодированными H264

Вам не нужно регулярное выражение, вам нужны расширенные шаблоны globbing. Я предполагаю, что ваша оболочка - bash:

shopt -s extglob
cd parent-directory-of-2015
for original in */*/!(*-+([0-9])x+([0-9]).jpg); do
    echo "an original: $original"
done

Этот шаблон будет исключать файлы с совпадением "-digitsxdigits.jpg"

0
12.01.2019, 22:32
1 ответ

Вот что я пока придумал. Обратите внимание, что это грубое приближение того, что вы должны делать.

Во-первых, найдите все свои видеофайлы и выведите их в файл для чтения. Вы можете пропустить эту часть и просто передать результаты на следующий шаг.

find path/to/videos/directory -name \*.mp4 >> /tmp/videoList.txt

Это находит все .mp4файлы во всех подпапках вашего каталога мультимедиа и помещает их в файл.

Затем вы можете использовать инструмент, как показано в этом примере , чтобы проверить, какую кодировку использует каждый видеофайл. В данном случае ищем h264.

while read p; do
mediainfo $p | grep -v h264 | grep.mp4 | \
  cut -f2 -d: >> /tmp/h264List.txt
done </tmp/videoList.txt

В этом примере создается файл /tmp/h264List.txt, содержащий все файлы, использующие кодировку h264. Отсюда вы можете сравнить и найти все видеофайлы, отличные от -h264.

sort /tmp/videoFiles.txt /tmp/h264List.txt | uniq -u >> /tmp/nonh264List.txt

К этому моменту у вас должен быть файл со всеми видеофайлами, отличными от -h264, в каталогах, в которых вы искали. Все вместе это может выглядеть примерно так:

Обратите внимание, что это грубый пример!

#!/bin/bash

find /home/user/videos/tvshows -name \*.mp4 >> /tmp/videoList.txt

while read p; do
  mediainfo $p | grep -v h264 | grep.mp4 | \
  cut -f2 -d: >> /tmp/h264List.txt
done </tmp/videoList.txt

sort /tmp/videoList.txt /tmp/h264List.txt | uniq -u >> /tmp/nonh264List.txt

#Optional Cleanup, only if necessary
mv /tmp/nonh264List.txt /home/user/needToEncode.txt
rm /tmp/*.txt

Затем вы можете выполнить аналогичный цикл по файлу needToEncode.txt, чтобы запустить желаемую кодировку ffmpeg. Вам нужно будет изменить любые пути к тому месту, где хранятся ваши медиафайлы, а также расширения файлов и кодировку на то, что вы ищете.

Я собираюсь включить ссылку на документацию для ffmpeg, а также дляmediainfo. Вы также можете использовать инструмент ffmpegffprobe, как показано здесь , чтобы выполнить эту задачу.

Прежде чем что-либо предпринимать, обязательно прочитайте все предоставленные мной ссылки. Этот скрипт может быть не самым оптимизированным или работать точно так, как вы хотите, но я смог использовать его, чтобы найти все видеофайлы, отсортировать их и сохранить вывод в файл.

1
28.01.2020, 04:03

Теги

Похожие вопросы