FFMPEG держать несколько кадров и использовать в качестве фильма - PullRequest
0 голосов
/ 18 июня 2019

У меня есть видео, из которого я пытаюсь сделать прыжки. Например, я хочу, чтобы выходные данные моей команды показывали кадр 5 исходного клипа для 30 кадров, а кадр 25 клипа OG - 30 кадров.

при условии, что клип OG равен 30 FPS

ffmpeg -t 1 -i og_clip.mp4 -filter_complex "
    [0]select=eq(n\,5)[H1];[0][H1]overlay[O1];
    [0]select=eq(n\,25)[H2];[0][H2]overlay[O2];
    [O1][O2]concat=n=2[Merge]" -map "[Merge]" out.mp4

Выше не работает правильно.

То, что я делал до сих пор, было командой из двух частей:

ffmpeg -i og_clip.mp4 -vf "select=eq(n\,5)" -vframes 1 -y out_0.png
ffmpeg -i og_clip.mp4 -vf "select=eq(n\,25)" -vframes 1 -y out_1.png
ffmpeg -t 1 -i og_clip.mp4 -i out_0.png -i out_1.png -filter_complex "
    [0][1]overlay[H1];[0][2]overlay[H2];
    [H1][H2]concat=n=2[Merge]" -map "[Merge]" out.mp4

Который работал на меня. Единственная проблема в том, что процесс преобразования в png сначала для каждого кадра, который я хочу использовать, занимает слишком много времени. Я пытаюсь объединить все это в одну команду. Я полагаю, что кодирование png - это то, что занимает так много времени.

Любая помощь будет высоко ценится!

1 Ответ

1 голос
/ 18 июня 2019

Используйте

ffmpeg -t 1 -i og_clip.mp4 -filter_complex "[0]select=eq(n\,5)+eq(n\,25),settb=1/30,setpts=N*30,fps=30" -an out.mp4

После выбора кадров метки времени настраиваются так, чтобы они составляли 30 кадров друг от друга. Затем фильтр fps закроет эти промежутки клонированными кадрами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...