Непрерывно играть GIF на изображении с помощью FFmpeg - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь разместить несколько изображений на изображении и сохранить как изображение с помощью FFmpeg. Я добился размещения нескольких картинок, но все картинки не воспроизводятся непрерывно, т.е. повторение второй картинки только один раз: первый рисунок завершается sh и запускается снова ... остановка и возобновление второго рисунка возможны только после завершения первого рисунка.

command_try[0]="-i";
    command_try[1]=input;
    command_try[2]="-i";
    command_try[3]=gifthumbnail;
    command_try[4]="-i";
    command_try[5]=gifthumbnail;
    command_try[6]="-i";
    command_try[7]=thumbnail;
    command_try[8]="-i";
    command_try[9]=thumbnail2;
    command_try[10]="-filter_complex";
    command_try[11]="[0:v]scale=0:0[base];[1:v]scale=300:-1[img1];[2:v]scale=720:-1290[img2];[3:v]scale=80:-1[img3];[4:v]scale=50:-1[img4];[img1]rotate=45:c=black@0:ow=rotw(45):oh=roth(45)[r1];[img2]rotate=0:c=black@0:ow=rotw(0):oh=roth(0)[r2];" +
            "[img3]rotate=0:c=black@0:ow=rotw(0):oh=roth(0)[r3];[img4]rotate=0:c=black@0:ow=rotw(0):oh=roth(0)[r4];[base][r1]overlay=100:70[tmp1];"+
            "[tmp1][r2]overlay=55:55[tmp2];[tmp2][r3]overlay=65:65[tmp3];[tmp3][r4]overlay=30:30";

    command_try[12]="-preset";
    command_try[13]="veryfast";
    command_try[14]="/storage/emulated/0/Pictures/imggif.gif";

Поскольку я недавно начал работать над FFmpeg, мне нужна помощь в непрерывной самостоятельной игре gif.

1 Ответ

0 голосов
/ 07 февраля 2020

Используйте параметр ввода -stream_loop -1 и добавьте параметр shortest=1 к любому наложению с бесконечно повторяющимся GIF в качестве входа.

Упрощенный пример:

ffmpeg -i video.mp4 -stream_loop -1 -i 1.gif -filter_complex "overlay=shortest=1:format=auto" output.mp4

Чтобы избежать желтые линии добавляют фильтры palettegen и paletteuse :

ffmpeg -i video.mp4 -stream_loop -1 -i 1.gif -filter_complex "overlay=shortest=1:format=auto,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif

Вы используете FFmpeg 3.0.1, который действительно старый, поэтому вам придется изменить auto до rgb.

...