Я хочу реализовать полностью автоматизированное решение, которое будет выбирать видеофайлы из входящего каталога, обрабатывать их и помещать результат в специальный каталог iTunes «Автоматически добавлять в iTunes».
Прежде чем предлагать различные продукты, ознакомьтесь с требованиями:
Первоначально я бы сказал, что Handbrake должен уметь это делать, но я обнаружил, что handbrake никогда не будет выполнять Pass Thru для видео (это заявление, которое я получил от автора).
z264 будет просматривать каждый файл, но будет касаться только видеофайлов avi, flv, mpg, mpeg, wmv, vob, mkv и mp4, копируя видео- и аудиопотоки и перепаковывая, если это возможно, перекодируя только аудио, если это необходимо, и перекодируя только то, что видео необходимо, и оставит вас с дружественными iTunes, оптимизированными для атома файлами mp4, оставив оригиналы в вашей корзине. Он принимает разумные решения за вас о том, как перекодировать файлы, основываясь на том, как вы устанавливаете его переменные HandBrake (устанавливаются в строках 312-333).
проверьте файл на кодировку AVC и обертку flv, wmv или mkv и переоберните в контейнер mp4, в противном случае, если это еще не am mp4, перекодируйте в AVC mp4
z264 имеет несколько зависимостей (mediainfo, rmtrash, ffmpeg, SublerCLI и HandBrakeCLI)
скопируйте и вставьте раздел бинарной установки в новый сценарий bash и используйте его для загрузки и установки зависимостей в /usr/local/bin/ (создайте /usr/local и /usr/local/bin/, если их там еще нет)
создайте виртуальный диск объемом 2 ГБ с именем «Два», используя команду в разделе виртуального диска
diskutil quiet erasevolume HFS+ 'Two' `hdiutil attach -nomount ram://4194304`
дважды проверьте определения команд (местоположения зависимостей) и правильное расположение (в «/usr/local/bin/»)
change line 231 to read: mediainfo="/usr/local/bin/mediainfo"
change line 236 to read: rmtrash="/usr/local/bin/rmtrash"
change line 238 to read: ffmpeg="/usr/local/bin/ffmpeg"
change line 239 to read: SublerCLI="/usr/local/bin/SublerCLI"
change line 262 to read: mediainfo="/usr/local/bin/mediainfo"
change line 263 to read: rmtrash="/usr/local/bin/rmtrash"
change line 265 to read: HandBrakeCLI="/usr/local/bin/HandBrakeCLI"
сохранить как z264 в /usr/local/bin/
сделать исполняемый файл
sudo chmod +x /usr/local/bin/z264
используйте терминал для вызова z264 для одного файла, каталога файлов или вызовите его из cron для периодического обхода целых файловых систем
z264 directory.full.of.mixed.video.filetypes/*
мелкие проблемы: пользователь должен уметь читать, отлаживать и использовать bash. z264 еще не подсчитывает, сколько процессов background_transcoder он порождает, а это означает, что если транскодов много, им потребуется некоторое время для их завершения, но они будут завершены. Вам также нужно много памяти (8 ГБ в порядке). Пользователям Snow Leopard потребуется установить команду очистки из инструментов разработчика xcode.
tty: illegal option -- -
usage: tty [-s]
В настоящее время я использую Subler для преобразования MKV в MP4 и встраивания субтитров в процессе без перекодирования видео или аудио. Если мне нужно перекодировать DTS, чтобы его воспроизводил Apple TV, я использую MP4Tools . Однако оба они являются графическими интерфейсами, и я понятия не имею, можно ли их вызывать из командной строки. Я полагаю, что лучшим выбором будет MKVToolNix (при условии, что вы просто хотите изменить формат) и ffmpeg (который включает параметры транскодирования, когда они необходимы).
Я использую HandBrake , как было предложено в вопросе выше, если загрузка недоступна в формате MP4. (Думаю, я не могу назвать службу, которую использую, так как загрузка не является законной в каждой стране, но поиск по ключевому слову «YIFY» может помочь найти рипы MP4). Кроме того, я использую Subler для добавления SRT без конвертировать MP4 снова и снова .
А затем, чтобы получить метаданные и копию в iTunes , я использую iFlicks , который можно загрузить из App Store .
Думаю, вы найдете ответы в этих двух постах:
Итак, подводя итог:
ffmpeg -i <input_file>.mkv -f srt -i <input_subtitle>.srt -c:v copy -c:a aac -b:a 384k -c:s mov_text -strict -2 <output_file>.mp4
Попробуйте в пакете ffmpeg . Он может решить если не все, то большую часть проблем.
ffmeg
для выполнения желаемых задач. Существуют ли какие-либо флаги или настройки, которые могут облегчить им начало работы.Вы можете взглянуть на VideoDrive для Mac. Все это он делает автоматически: www.aroonasoftware.com
У него нет интерфейса командной строки, но есть встроенный таймер, который можно запускать в любое время. И он также совместим с Applescript.
SmartConveter бесплатен в App Store и работает быстрее, чем Handbrake.
Роб
Грэм Милн
сорин