Concatena uma lista de arquivos com diferentes resoluções

0

Eu tenho uma lista de arquivos mp4 que são de kb ou de no máximo 4 MB (eles eram na verdade gifs, mas baixados como mp4) .Então, quando concateno usando uma lista deles, o vídeo não funciona como todos eles são de tamanhos diferentes (resolução sábia) e todos não estão na ordem vertical.Assim, qualquer ajuda com esse assunto e também eu f alguém seria gentil o suficiente para me dizer o comando FFmpeg para converter esta lista mp4 para gif sem perder quality.Thanks antecipadamente

    
por hacker red 13.03.2016 / 10:49

1 resposta

2

Você pode usar os fps , escala , setsar , setpts , concat , < href="https://ffmpeg.org/ffmpeg-filters.html#palettegen"> palettegen e filtros paletteuse .

1. Torne todas as entradas uniformes, concatene e, em seguida, gere a paleta

    ffmpeg -i input0 -i input1 -i input2 -filter_complex \
    "[0:v]fps=10,scale=320:240,setsar=1/1,setpts=PTS-STARTPTS[v0]; \
     [1:v]fps=10,scale=320:240,setsar=1/1,setpts=PTS-STARTPTS[v1]; \
     [2:v]fps=10,scale=320:240,setsar=1/1,setpts=PTS-STARTPTS[v2]; \
     [v0][v1][v2]concat=n=3:v=1:a=0,palettegen[out]" \
    -map "[out]" palette.png
  • Você pode não precisar de fps, mas não mostrou nenhuma informação sobre suas entradas, então eu tive que fazer suposições.

2. Codificar para GIF

    ffmpeg -i input0 -i input1 -i input2 -i palette.png -filter_complex \
    "[0:v]fps=10,scale=320:240,setsar=1/1,setpts=PTS-STARTPTS[v0]; \
     [1:v]fps=10,scale=320:240,setsar=1/1,setpts=PTS-STARTPTS[v1]; \
     [2:v]fps=10,scale=320:240,setsar=1/1,setpts=PTS-STARTPTS[v2]; \
     [v0][v1][v2]concat=n=3:v=1:a=0[vv]; \
     [vv][3:v]paletteuse[out]" \
    -map "[out]" output.gif
  • Você não pode "converter MP4 para GIF sem perder qualidade", mas há uma pequena chance de você não notar muita diferença desde que você disse que o MP4 foi criado a partir do GIF. Tudo depende do aspecto das suas entradas e de quantas cores existem.

Veja também

por 13.03.2016 / 19:47