Вот что я пока придумал. Обратите внимание, что это грубое приближение того, что вы должны делать.
Во-первых, найдите все свои видеофайлы и выведите их в файл для чтения. Вы можете пропустить эту часть и просто передать результаты на следующий шаг.
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/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/nonh264List.txt
#Optional Cleanup, only if necessary
mv /tmp/nonh264List.txt /home/user/needToEncode.txt
rm /tmp/*.txt
Затем вы можете выполнить аналогичный цикл по файлу needToEncode.txt
, чтобы запустить желаемую кодировку ffmpeg
. Вам нужно будет изменить любые пути к тому месту, где хранятся ваши медиафайлы, а также расширения файлов и кодировку на то, что вы ищете.
Я собираюсь включить ссылку на документацию для ffmpeg
, а также дляmediainfo
. Вы также можете использовать инструмент ffmpeg
ffprobe
, как показано здесь , чтобы выполнить эту задачу.
Прежде чем что-либо предпринимать, обязательно прочитайте все предоставленные мной ссылки. Этот скрипт может быть не самым оптимизированным или работать точно так, как вы хотите, но я смог использовать его, чтобы найти все видеофайлы, отсортировать их и сохранить вывод в файл.