FFmpeg filter_complex concat дает только первый вход на урожай - PullRequest
0 голосов
/ 20 сентября 2018

Я столкнулся с проблемой при использовании concat и кропа с несколькими входами и несколькими выходами.Вот

ffmpeg -y \
-i input_1.mp4 \
-i input_2.mp4 \
-i input_3.mp4 \
-i input_4.mp4 \
-filter_complex "[0:v][1:v][2:v][3:v]concat=n=4:v=1:a=0[v];\
[v]crop=3840:1080:960:0[center];\
[v]crop=960:1080:0:0[left];\
[v]crop=960:1080:4800:0[right]" \
-map "[center]" -c:v libx264 -preset faster -b:v 20000k -an -pix_fmt yuv420p -tune zerolatency -tune fastdecode "Output_Center.mp4" \
-map "[left]" -c:v libx264 -preset faster -b:v 20000k -an -pix_fmt yuv420p -tune zerolatency -tune fastdecode "Output_Left.mp4" \
-map "[right]" -c:v libx264 -preset faster -b:v 20000k -an -pix_fmt yuv420p -tune zerolatency -tune fastdecode "Output_Right.mp4"

Итак, я объединяю 4 входа в 1 поток [v], затем обрезаю определенные части до [center], [left] и [right]

Для первого вывода (по центру) работает как положено, длительность выходного видео правильная (1 + 2 + 3 + 4 длительности входа), но для длительности левого и правого выходов полностью совпадает с длительностью первого входа.

Я также пробовалиспользуйте [v1] как вывод concat, это не помогло

1 Ответ

0 голосов
/ 20 сентября 2018

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

-filter_complex "[0:v][1:v][2:v][3:v]concat=n=4:v=1:a=0,split=3[v1][v2][v3];\
[v1]crop=3840:1080:960:0[center];\
[v2]crop=960:1080:0:0[left];\
[v3]crop=960:1080:4800:0[right]" \
...