Пакетное кодирование в X265 на Mac

Мне нужно закодировать тысячи файлов MP4 H264 (в основном) в иерархии папок в H265. К сожалению, Handbrake, который я обычно использую, плохо поддерживает пакетную обработку иерархий.

Отдельный проект HB Batch Encoder, похоже, не поддерживает X265.

Предпочтительно мне нужен метод, который может

  • Принять все исходные файлы фильмов в выбранной иерархии
  • Кодировать в X265 так же хорошо, как ручной тормоз
  • Автоматически проходить через AAC, перекодировать любой другой звук
  • Вывод в тот же каталог, что и источник
  • Переместить исходник в корзину
  • Работает на ОС Х 10.11

Можете ли вы предложить инструмент и метод для достижения этого набора функций?

Обратите внимание, что запуск файлов с кодировкой H264 для кодирования их в H265 может привести к потере качества, поскольку вы соединяете два кодировщика с потерями. У вас нет доступа к мастер-кодам без потерь?
Неа. Это всего лишь реферальные резервные копии, поэтому качество не критично. Критичнее пространство, чем качество.

Ответы (1)

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

Я еще не очень хорошо изучил кодировку h.265, но с помощью настроек, которые я украл из вики ffmpeg , вот как вы бы кодировали папку, полную .movs:

cd "/the/path to/your/folder/"
mkdir "for the trash"
for i in *.mov; do;
  ffmpeg -i "$i" -c:v libx265 -preset slow -crf 25 -c:a copy "${i/\.mov/.mp4}"
  mv $i "./for the trash/"
done

Обратите внимание, что это не удалит файлы, а переместит их в новую папку, называемую корзиной . Это потому, что если вы удаляете файлы с помощью командной строки, они исчезают мгновенно, у вас не будет второго шанса, если вы передумаете или сделаете опечатку. Есть мусорные утилиты командной строки , но это выходит за рамки этого ответа.

вот запись в вики , на которой я основывал свою команду ffmpeg, она хорошо объясняет используемые параметры (я немного беспокоюсь о сжатии с потерями, поэтому я несколько изменил настройки качества. Я также использовал медленную предустановку, которая дает меньший файл В зависимости от того, сколько у вас есть времени, вы можете использовать что-то от ultrafastдо placeboдля достижения результатов, которые различаются по размеру файла, но с тем же качеством. placeboНазван так потому, что небольшая разница, которую он дает за счет значительного увеличения времени обработки, в основном в вашей голове):

В этом примере мы будем использовать следующие настройки:

  • CRF по умолчанию 28. CRF 28 должен визуально соответствовать видео libx264 в CRF 23, но в результате получается примерно половина размера файла.
  • средняя предустановка. Предустановка определяет, насколько быстрым будет процесс кодирования — за счет эффективности сжатия. Иными словами, если вы выберете сверхбыстрое, процесс кодирования будет выполняться быстро, но размер файла будет больше по сравнению со средним. Визуальное качество будет таким же. Допустимые пресеты: сверхбыстрый, сверхбыстрый, очень быстрый, быстрый, быстрый, средний, медленный, медленнее, очень медленный и плацебо.
  • Аудио AAC со скоростью 128 кбит/с. Здесь используется внутренний кодировщик ffmpeg, но в разделе AAC вы найдете информацию о дополнительных параметрах.

ffmpeg -i input -c:v libx265 -preset medium -crf 28 -c:a aac -b:a 128k output.mp4

Handbrake также работает в командной строке .

И, наконец, если у вас аллергия на колоссальную мощь, скрытую в terminal.app, есть GUI для ffmpeg, например этот или этот . Не уверен, насколько хорошо они справляются с пакетным кодированием, и это не рекомендация, потому что я не использую ни один из них. Время ужесточить и использовать командную строку!

Спасибо за предложение. Я попробую ffmpeg в командной строке. Я сообщу, как это работает. Однако вы, похоже, пропустили мою жалобу на то, что пакетная обработка Handbrake не соблюдает иерархию, то есть пропускает файлы в иерархии папок.
@MiB, если вы ищете графический интерфейс для ffmpeg, попробуйте iffmpeg. Я использовал его в течение нескольких дней, пока не научился хорошо работать с инструментом командной строки. Он обрабатывает пакетное кодирование, но вам нужно поэкспериментировать, чтобы убедиться, что вы правильно установили настройки для всего в пакете. Если вы считаете себя технически подкованным, но вам не нравится командная строка, я бы порекомендовал ее.