Поэтому я искал ответ на этот вопрос и смог найти очень много подобных случаев, но не смог найти ответ на то, что я пытаюсь сделать.
Я взглянул на эти две темы, в частности:
Кроме того, Google будет вокруг и читать кучу страниц справки безрезультатно. (Это не значит, что ответов там нет, я просто не могу их найти!)
В любом случае, с этим предисловием, вот что я пытаюсь сделать:
У меня есть три папки (и миллиард файлов) этого:
- Показать имя - S ## E ## - Title.mp4
- Показать имя - S ## E ## - Title.eng.srt
Я пытаюсь объединить все .mp4 и .srt в просто Show Name - S##E## - Title.mkv
с субтитрами, включенными в файл.
Проблема с первым связанным потоком, который я связал, заключается в том, что он просто превращает .mp4 в .mkv и вообще не объединяет субтитры.
Код:
FOR %%A IN (*.mp4) DO "C:\Program Files\MKVToolNix\mkvmerge.exe" -o "%%~nA.mkv" "%%~A"
Это создает файл .mkv, но не включает субтитры. Если я пытаюсь добавить "%%~dpnA.srt"
или что-либо после "%%~A"
, я получаю сообщение: Error: The file 'C:\Users\xnaas\Desktop\test\Show Name - S##E## - Title.srt' could not be opened for reading: open file error.
и тому подобное. Я думаю, что моя самая большая путаница в том, что я не знаю, что делает то, что я печатаю. Что делает ~
или nA
?
Проблема со второй ссылкой заключается в том, что я не знаю, как адаптировать ее к пакетной форме, потому что я не совсем уверен, как это сделать с помощью ffmpeg. Я предполагаю, что это просто еще один цикл, но я не настолько знаком с ним.
Это единственный скрипт, который я использовал для ffmpeg (Linux сейчас против Windows выше):
for f in *.mkv; do ffmpeg -i "$f" -c:v libx264 -preset medium -crf 18 -c:a copy "encoded/${f%.mkv}.mkv"; done
Я уверен, что это может быть адаптировано, но я не уверен, как.
for f in *.mp4; do ffmpeg -i "$f" -c copy "test/${f%}.mkv"; done
Это лучшее, что я мог придумать после долгого перебора, но это, очевидно, не приводит к файлам субтитров, а также называет все .mp4.mkv
.
Извините за массивную стену дерьма там. Я с нетерпением жду любой помощи / идеи, которую может предложить каждый. Спасибо!