Script criação de um vídeo a partir de imagens, especificando quanto tempo para mostrar cada imagem?

1

Parece haver várias maneiras de converter imagens em vídeos, mas todas parecem permitir que você mostre a cada vídeo uma quantidade fixa de tempo. Alguém sabe de uma maneira de roteirizar a criação de um vídeo a partir de arquivos de imagem que permite especificar o tamanho para mostrar cada imagem?

Por exemplo,

magicSoftware.exe out=video.mp4 | in=file1.png time=100ms | in=file2.png time=400ms
    
por Jim 01.10.2012 / 21:13

1 resposta

0

Não consigo pensar em nenhuma ferramenta que possa fazer isso como um simples comando único; você poderia, no entanto, converter suas imagens individualmente para vídeos (de duração variável) e então concatenar esses vídeos juntos - eu usaria o ffmpeg para isso.

ffmpeg -f image2 -loop 1 -i input1.png -t 6 -crf 22 -preset veryfast 01.ts
ffmpeg -f image2 -loop 1 -i input2.png -t 9 -crf 22 -preset veryfast 02.ts
ffmpeg -f image2 -loop 1 -i input3.png -t 4 -crf 22 -preset veryfast 03.ts

-t define a duração da saída em segundos. Você também pode usar frações de segundos, então -t 2.2 lhe dará uma duração de 2,2 segundos. Se você deseja especificar o comprimento em termos de quadros de vídeo, use -vframes of frames:v ; por padrão, este comando lhe dará 25 quadros por segundo. Em seguida, concatene os arquivos MPEG TS juntos em um único MP4:

ffmpeg -i "concat:01.ts|02.ts|03.ts" -c copy output.mp4

Claro, seria possível fazer o script disso (eu sei como faria isso no bash, mas não tenho nenhum conhecimento de scripts no Windows).

    
por 20.01.2013 / 22:03

Tags