Как вырезать кадр видео с ffmpeg и конвертировать частоту кадров?

так как пару дней я сталкиваюсь с проблемой с ffmpeg, которая на самом деле сводит меня с ума...
Я пытаюсь использовать ffmpeg filter_complex для извлечения определенных коротких сегментов видеофайла (снятого на 60 кадров в секунду). Я знаю точные кадры из оригинальных кадров, которые я хочу использовать для резки. Я использую отделка команда фильтра вместе с setpts, Если я хочу изменить скорость каждого фрагмента.
В фактическом случае я хочу иметь первый фрагмент в исходной скорости (1,0), и приводя к видео выхода должно быть на 30fps вместо первоначально футажей 60fps.
Вот код, который я использую:

ffmpeg -y -i footage60fps -filter_complex " 
[0:v]trim=start_frame=28:end_frame=82,setpts=PTS-
STARTPTS,setpts=1.0*PTS[v0]; 
[0:v]trim=start_frame=10:end_frame=20,setpts=PTS-
STARTPTS,setpts=2.0*PTS[v1]; [v0][v1]concat=n=2:v=1:a=0[out] " -map [out] -
preset ultrafast -r 30 output30fps.mp4

результат, который я ожидаю, будет заключаться в том, что в первом фрагменте (кадр 28 до последнего до 82) ffmpeg будет отбрасывать каждый второй кадр ([x]), чтобы он преобразовывался из 60fps в 30fps с нормальной скоростью:
[28][x][30][x][32][x]...[80]

однако, результат, который я получаю:
[28][29][30][31][x][33][x][35][x]...[81]

кто-нибудь понимает такое поведение? Как я могу решить эту проблему? Кажется, что это незначительная проблема, но она оказывается настолько раздражающей, когда резка на музыке и т. д... Любая помощь будет высоко ценится!

1
задан Alexander Pospischil
28.11.2022 6:14 Количество просмотров материала 2743
Распечатать страницу

1 ответ

использовать

ffmpeg -y -i footage60fps -filter_complex " 
[0:v]trim=start_frame=28:end_frame=82,setpts=PTS-STARTPTS,framestep=2[v0]; 
[0:v]trim=start_frame=10:end_frame=20,setpts=PTS-STARTPTS,setpts=2.0*PTS[v1];
[v0][v1]concat=n=2:v=1:a=0[out]" -map [out] -r 30 -preset ultrafast output30fps.mp4

Я не изучал причины поведения, которое вы видите, но когда вы смешиваете различные потоки скорости, подобные этому, с фильтром concat и применяете соответствие скорости CFR, каденция падений кадров не всегда соответствует ожиданиям.

0
отвечен Gyan 2022-11-29 14:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

ffmpeg
framerate
video
video-conversion
video-editing
Вверх