Возможно ли объединить видеофайлы с чересстрочной разверткой FFmpeg без объединения? - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь создать видеофайл, в котором кадры из 2 исходных видеофайлов mp4 чередуются следующим образом:

I1 I2 P1 P2 I1 I2 P1 P2 I1 I2 P1 P2 ...

, где I = Intra, P = predicted, и цифры из какого источникафайл они приходят.

Возможно ли это с помощью команд FFmpeg?Если нет, если я использую код ffplay из read_thread, как поместить содержимое, возвращенное из av_read_frame, в соответствующий видеофайл?

Спасибо

1 Ответ

1 голос
/ 17 мая 2019

Вы не можете сделать это без транскодирования.Вот простой пример для видео с тем же разрешением и частотой кадров:

ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "[0:v][1:v]blend=all_expr='ifnot(mod(N,2),A,B)'[out]" -map [out] out.mp4

Проверьте эту страницу для подробностей.

Обновление :

Как сказано в комментарии Гаяна, приведенная выше команда пропустит половину кадров.Так что удваивайте частоту кадров перед чередованием, может быть, лучше, если вы не хотите потерять какую-либо информацию.Asume входные видео являются постоянными 30 кадров в секунду:

ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "[0:v]framerate=60[in0];[1:v]framerate=60[in1];[in0][in1]blend=all_expr='ifnot(mod(N,2),A,B)'[out]" -map [out] out.mp4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...