FFMPEG создает видео головоломки из изображения - PullRequest
0 голосов
/ 10 июля 2020

Я создаю видеоизображение для решения головоломок. Мой вывод должен быть в формате w540: h960 и разделен на части головоломки (части изображения) на 4 * 4 = 16 частей головоломки. Итак, сославшись на этот ответ , я также следил за этим:

ffmpeg -i background.jpg -i image1.jpg -t 14 -filter_complex "[0]scale=540:960[bg]; 
[1]split=16[a][b][c][d][e][f][g][h][i][j][k][l][m][n][o][p];
[a]crop=iw/4:ih/4:0*iw/4:0*ih/4[a];
[b]crop=iw/4:ih/4:1*iw/4:0*ih/4[b];
[c]crop=iw/4:ih/4:2*iw/4:0*ih/4[c];
[d]crop=iw/4:ih/4:3*iw/4:0*ih/4[d];
[e]crop=iw/4:ih/4:0*iw/4:1*ih/4[e];
[f]crop=iw/4:ih/4:1*iw/4:1*ih/4[f];
[g]crop=iw/4:ih/4:2*iw/4:1*ih/4[g];
[h]crop=iw/4:ih/4:3*iw/4:1*ih/4[h];
[i]crop=iw/4:ih/4:0*iw/4:2*ih/4[i];
[j]crop=iw/4:ih/4:1*iw/4:2*ih/4[j];
[k]crop=iw/4:ih/4:2*iw/4:2*ih/4[k];
[l]crop=iw/4:ih/4:3*iw/4:2*ih/4[l];
[m]crop=iw/4:ih/4:0*iw/4:3*ih/4[m];
[n]crop=iw/4:ih/4:1*iw/4:3*ih/4[n];
[o]crop=iw/4:ih/4:2*iw/4:3*ih/4[o];
[p]crop=iw/4:ih/4:3*iw/4:3*ih/4[p];
[a][b][c][d][e][f][g][h][i][j][k][l][m][n][o][p]concat=n=16:v=1:a=0[comb_v];
[bg][comb_v] overlay=1" output_video.mp4 -y

Но это не сработает, потому что должен быть другой способ, а не concat. Потому что concat объединяет все 16 частей в 1 наверху! Итак, как я могу показать эти 16 частей в определенной позиции, например, в 1-м сконд:

[blank][g][b][d]
[a][e][c][h]
[i][f][j][l]
[m][n][k][o]

[p] не в кадре 1-й секунды, это будет наконец. Теперь перемещаем [blank] -> [a] для решения головоломки на 2-й секунде:

После этого покажите полное изображение, и эта головоломка будет решена! Но если есть идеи о том, чтобы сдвинуть фигуры в первые две секунды, я обязательно сделаю go для других. Итак, как я могу перемещать части за каждую секунду?

Обновление:

Я также пробовал xstack в соответствии с предложением @llogan:

ffmpeg -i image1.jpg -t 20 -filter_complex "[0]split=16[a][b][c][d][e] 
[f][g][h][i][j][k][l][m][n][o][p];
[a]crop=iw/4:ih/4:0*iw/4:0*ih/4[a];
[b]crop=iw/4:ih/4:1*iw/4:0*ih/4[b];
[c]crop=iw/4:ih/4:2*iw/4:0*ih/4[c];
[d]crop=iw/4:ih/4:3*iw/4:0*ih/4[d];
[e]crop=iw/4:ih/4:0*iw/4:1*ih/4[e];
[f]crop=iw/4:ih/4:1*iw/4:1*ih/4[f];
[g]crop=iw/4:ih/4:2*iw/4:1*ih/4[g];
[h]crop=iw/4:ih/4:3*iw/4:1*ih/4[h];
[i]crop=iw/4:ih/4:0*iw/4:2*ih/4[i];
[j]crop=iw/4:ih/4:1*iw/4:2*ih/4[j];
[k]crop=iw/4:ih/4:2*iw/4:2*ih/4[k];
[l]crop=iw/4:ih/4:3*iw/4:2*ih/4[l];
[m]crop=iw/4:ih/4:0*iw/4:3*ih/4[m];
[n]crop=iw/4:ih/4:1*iw/4:3*ih/4[n];
[o]crop=iw/4:ih/4:2*iw/4:3*ih/4[o];
[p]crop=iw/4:ih/4:3*iw/4:3*ih/4[p];
[a][b][c][d][e][f][g][h][i][j][k][l][m][n][o][p]=xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0|
w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2;" output_video.mp4 -y

Но ошибка его выдачи Нет такого фильтра: ''

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