Обрезка FFmpeg и видео петли - PullRequest
0 голосов
/ 24 ноября 2018

В моем сценарии я хотел бы обрезать исходное видео и зациклить его в течение указанного времени.И ниже мой код

ffmpeg -i source.mp4 -filter_complex "[0:v]trim=start=6:end=46,loop=5[vf];[0:a]atrim=start=6:end=46,aloop=5[af]" -map "[vf]" -map "[af]" output.mp4 -y

Для этого мне нужно получить 200 секунд видео в качестве output.mp4.Но я получил видео продолжительностью 40 секунд.

1 Ответ

0 голосов
/ 24 ноября 2018

В фильтрах loop и aloop необходимо указать максимальное количество кадров / сэмплов, поскольку по умолчанию оно равно 0.Например,

[0:v] loop = '5 : 10'

выводит [0:v] без изменений, а затем первые 10 кадров этого цикла повторяются 5 раз.И не забывайте фиксировать временные метки усеченного вывода.

Итак, с помощью этого фильтра можно добиться того, что вы хотите сделать (при условии, что частота кадров на входе составляет 30 кадров в секунду, а частота дискретизации равна 48 К / с)

[0:v] trim = 'start = 6 : end = 46',
setpts = 'PTS - STARTPTS',
loop = 'loop = 4 : size = 40 * 30' [vf];
[0:a] atrim = 'start = 6 : end = 46',
asetpts = 'PTS - STARTPTS',
aloop = 'loop = 4 : size = 40 * 48000' [af]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...