Как я Dead Space Downfall на кадры нарезал

В связи с грядущим выходом ремэйка Dead Space и неявным продолжителем серии The Callisto Protocol я пересмотрел приквел к оригинальной игре и хочу поделиться некоторыми интересными моментами из этого анимационного хоррора.

3636

Субтитры пропали. Почему?Потому что -vf subtitles открывает файл субтитров с начала и не знает о перемотке (а в первых секундах надписей не оказалось, они бы прояснили ошибку). Узнает, если добавить -copyts. Но тогда плеер будет показывать, что видео проигрывается не с 00:00, а с 03:16. Это исправляется магией - таким же -ss к выходным аргументам https://stackoverflow.com/a/59576487

Это потому что у меня так и не получилось указать нормальный путь до субтитров.-vf требует линуксового экранирования как минимум для : \ ] [. Легко автоматически преобразовать не получится.
-vf "subtitles=С:\folder\[1080p x264].mkv" - нет
-vf "subtitles=С:/folder/[1080p x264].mkv" - уже лучше
-vf "subtitles=С\\:/folder/\[1080p x264\].mkv" - почему-то да
-vf "subtitles=С\\:\\\\folder\\\\\[1080p x264\].mkv" - к сожалению, да
Но можно заранее переместиться в батнике в папку с этим файлом. Субтитры можно брать из видеофайла https://ffmpeg.org/ffmpeg-filters.html#subtitles-1

-s 640x480Это 4:3. Которое за счёт метаданных показывается как 16:9. Кодировать с неквадратным пикселем плохо. Тебе нужно -vf "...,scale=-2:480".

:: Извлекаем видео без аудиоВ таком варианте оно лишний раз перекодируется. Нужен -c copy или -c:v copy. Хотя тогда вырежет менее точно. Можно перекодировать, но без потерь (-crf 0).
Останутся субтитры и шрифты, есть есть. Можно делать -map 0:v:0 вместо -an.
Ещё если переместить коммент в конец блока, будет ошибка. :: - хак, который плохо дружит со скобками, лучше официальный rem.

-movflags +faststartНужен при кодировании. Только в последнем вызове ffmpeg.

-filter:v fps=23.976Это для прореживания кадров. Для 60fps, например.

В целом получается путь страданий. Надо видеть, какой кусок вырезать, есть вариант использовать Vapoursynth/Avisynth вместе с ffmpeg ради этого.

1

Vapoursynth/AvisynthВ них же можно накладывать субтитры.
Легко автоматически преобразовать не получится.Хотя нет, это просто: https://pastebin.com/T7uhPJnX

1

Спасибо за конструктив! Приму к сведению и попробую в ближайшее время.

Потому что -vf subtitles открывает файл субтитров с начала и не знает о перемоткеДа, поэтому мне пришлось сначала вырезать субтитры из определенного отрезка. Работы в 2 раза больше, но зато есть возможность отредактировать сабы при необходимости, вырезав ненужный кусок.

-s 640x480. Это 4:3Ох, ещё раз спасибо! Набивал от руки и не заметил проблемы, хотел конечно же 16:9.