Criando vídeos mpeg a partir de figuras

(propaganda mode on)
Geralmente a análise de uma simulação numérica é feita através de gráficos e o comportamento das partículas é analisado em diferentes instantes de tempo. Aí ao invés de ver um zilhão de figuras tive a idéia de juntar todas em um arquivo de vídeo e descobri que o ffmpeg faz esse trabalho com folga: é possível combinar um número qualquer de figuras em sequencia formando um único arquivo de vídeo.
(propaganda mode off)
Obviamente isto não é útil apenas no caso de simulações númericas e o processo é bastante simples:
- Primeiro é necessário instalar o ffmpeg. Para isso habilite os repositórios adicionais e procure por ffmpeg no synaptic ou digite no terminal
sudo aptitude install ffmpeg
- Agora a parte prática. Antes de criar o filme é preciso renomear suas figuras seguindo um padrão (caso isso ainda não tenha sido feito), como por exemplo
fig-1.png, fig-2.png, fig-3.png, …
- Com todas as figuras renomeadas, para criar o filme digite no terminal
ffmpeg -f image2 -i fig-%d.png movie.mpeg
onde %d substitui o número da imagem (se o nome das figuras for algo tipo fig-001.png você precisa trocar o %d por %03d).
![]()
Pronto, um arquivo chamado movie.mpeg foi criado com todas as suas figuras. Agora é só abrir o seu player preferido (totem, mplayer, vnc vlc,…) e ver o resultado.
O comando mostrado aqui é o mais simples possível. O ffmpeg apresenta inúmeros recursos, como por exemplo mudar a quantidade de quadros por segundo (fps). Você pode ver isto e muito mais no FAQ do programa.
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
Entries
June 27th, 2007 at 6:55 pm
Simplesmente excelente dica!
June 27th, 2007 at 7:29 pm
Tri! Foi assim que fiz os videozinhos do meu simulador durante o Mestrado. Cada frame eu armazenava em disco e depois juntava com ffmpeg.
June 27th, 2007 at 7:32 pm
Alias, o ideal é renomear os arquivos com zeros antes do número. Para evitar que entre a figura-1 e a figura-2 seja inserida a figura-10.
Se forem esperados uns 9999 arquivos, utilizar:
figura-0001.png
figura-0002.png
figura-0003.png
…
figura-0010.png
…
figura-0100.png
…
figura-1000.png
…
figura-9999.png
June 27th, 2007 at 7:37 pm
Otavio, depois que eu descobri o ffmpeg fez-se a luz. As próximas defesas não serão mais as mesmas hehehe.
E sua dica dos zeros é bastante útli quando tem um número grande de figuras, valeu
June 27th, 2007 at 7:46 pm
Se quiser que o ffmpeg faça arquivos no formato de iPod (h.26/MPEG-4 Part 10) tem que baixar o source do ffmpeg pelo apt-get e compilar com o suporte. Mas nada de tão horrível assim.
June 27th, 2007 at 7:50 pm
[...] Link to Article linux Criando vídeos mpeg a partir de figuras » Posted at Sfair on [...]
June 27th, 2007 at 11:31 pm
No semestre passado precisei gerar um video para uma disciplina, usei a mesma técnica.
Para quem quiser ver o resultado:
http://www.ime.usp.br/~cesargm/video2.avi
Só por curiosidade, para gerar todos os frames tive que esperar umas 7 horas. Tudo bem que foi numa máquina antiga: Athlon XP 2400+. Mas a renderização do vídeo somente levou menos de 1 min
June 27th, 2007 at 11:36 pm
Cesar, imagino que você também tenha usado o gnuplot para gerar seus dados
O que eu fiz aqui é algo bastante parecido, porém o gráfico é bidimensional. E realmente o processo é demorado: para gerar 40000 frames e fazer o vídeo demorou aproximadamente 5 horas.
June 28th, 2007 at 11:12 pm
Pessoal, desculpe se este não é o local ideal para colocar dúvidas, mas se puderem me ajudar fico agradecido…
Segui os passos e o retorno foi o seguinte:
root@ubuntu:/home/ubuntu# ffmpeg -f image2 -i fig-01.png,fig-02.png,fig-03.png,fig-04.png,fig-05.png,fig-06.png,fig-07.png,fig-08.png,fig-09.png,fig-010.png movie.mpeg
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2004 Fabrice Bellard
configuration: –enable-gpl –enable-pp –enable-pthreads –enable-vorbis –enable-libogg –enable-a52 –enable-dts –enable-libgsm –enable-dc1394 –disable-debug –enable-shared –prefix=/usr
libavutil version: 0d.49.0.0
libavcodec version: 0d.51.11.0
libavformat version: 0d.50.5.0
built on Jan 28 2007 22:48:38, gcc: 4.1.2 20070106 (prerelease) (Ubuntu 4.1.1-21ubuntu7)
[image2 @ 0xb7edc2d0]Could not find codec parameters (Video: png)
fig-01.png,fig-02.png,fig-03.png,fig-04.png,fig-05.png,fig-06.png,fig-07.png,fig-08.png,fig-09.png,fig-010.png: could not find codec parameters
June 28th, 2007 at 11:37 pm
Opa Celso
Seguinte, você não precisa colocar o nome de todas as figuras. O comando é simplesmente ffmpeg -f image2 -i fig-%d.png movie.mpeg (exatamente desta forma)
e só uma dúvida: algum motivo para você usar sempre o usuário root? isso pode trazer sérios problemas de segurança.
[ ]’s
June 29th, 2007 at 12:00 am
Oi sfair… eu já tentei de todos os modos e vc viu que ele trás erros…..dá uma olhadinha abaixo…(Obs.: as fotos estão renomeadas assim fig-01.png até fig010.png
ubuntu@ubuntu:~$ ffmpeg -f image2 -i fig-%03d.png movie.mpeg
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2004 Fabrice Bellard
configuration: –enable-gpl –enable-pp –enable-pthreads –enable-vorbis –enable-libogg –enable-a52 –enable-dts –enable-libgsm –enable-dc1394 –disable-debug –enable-shared –prefix=/usr
libavutil version: 0d.49.0.0
libavcodec version: 0d.51.11.0
libavformat version: 0d.50.5.0
built on Jan 28 2007 22:48:38, gcc: 4.1.2 20070106 (prerelease) (Ubuntu 4.1.1-21ubuntu7)
fig-%03d.png: I/O error occured
Usually that means that input file is truncated and/or corrupted.
ubuntu@ubuntu:~$
June 29th, 2007 at 12:04 am
Celso, entao use o seguinte comando:
ffmpeg -f image2 -i fig-%02d.png movie.mpeg
[ ]’s
June 29th, 2007 at 12:38 am
Oi Sfair…
Se vc puder me mandar umas dicas por mail fico muito agradecido, se tiver algum tutorial em Português onde eu possa pesquisar…beleza…
No momento só tenho a agradecer pela sua atenção, pois sou novato no Linux e fiquei um tempo com o Kurumin mas não tive opções com estou tendo com o Ubuntu, pois já estou até mexendo na configuração do programa sem medo…
Abraços,
Sds/Celso…
June 29th, 2007 at 5:13 pm
vlc ?
ótima dica hein,
=]
June 29th, 2007 at 5:17 pm
opa bedi
ta corrigido
valeu
June 29th, 2007 at 11:41 pm
Para Qualquer Leigo e quem não conheçe nada do assunto: Use o Nero VisionExpress… Talvez você tenha esse excelente aplicativo aí no seu computador e nem sabe, e ter que ficar baixando esses programas da internet!
June 30th, 2007 at 3:30 am
ãh?
June 30th, 2007 at 2:45 pm
Aquele ali de cima não tem idéia do que está falando e para quem está falando.
Cada dia que passa eu descubro doenças mais bizarras.
June 30th, 2007 at 5:11 pm
Se você tiver o Nero Instalado Totalmente (Completo) Ele poderá ter o Aplicativo Nero VisionExpress. Clicando nele vai abrir uma janela te dando a opção de fazer um filme apartir de suas fotos. Tem como você colocar menu Animado, som no menu, Transições entre imagens, velocidade nelas, textos, tudo que vc poder imaginar, Eu na primeira vez consegui fazer um excelente trabalho. até que consegui ganhar R$ nele
. Só que assim, não fica em mpeg. Fica em formato de DVD, com aqueles arquivos .VOB. mas aí é só codificar para mpeg.
June 30th, 2007 at 5:22 pm
ahhh, agora sim
mas acho que voce nao entendeu exatamente o espirito da coisa
software livre e ubuntu não dizem nada?
June 30th, 2007 at 7:18 pm
hehehehe Essa foi uma dica sfair… hahhaha. VAI que alguém o Tenha no Linux… Nunca se Sabe, Acho que se eu Tivesse um Linux, Talvez eu Teria um Nero…
July 31st, 2007 at 2:50 pm
Excelente dica. Acredito que o Gwenview, para os clicadores obstinados, faz algo semelhante, provavelmente usando o próprio ffmpeg. Seu blog é ótimo, mas infelizmente temos que ser democratas e aceitar aqui a opinião de alguns indigentes mentais…
July 31st, 2007 at 4:31 pm
Ola Humberto
Depois vou procurar o gwenview, ja ouvi falar sobre ele mas nunca testei.
Obrigado pelo elogio.
[ ]’s