Criação de Vídeos a partir de uma sequencia de imagens
12 respostas
Z
zerocall
Pessoal, estou desenvolvendo um projeto em que criarei um video 3D side by Side a partir de uma sequencia de imagens capturadas de uma camera firewire. Nenhum processamento precisa ser feito em real time. Eu preciso pegar essa sequencia de imagens e montar um video com elas. Minha necessidade é trabalhar com imagens no formato mais cru possível (bmp, tiff, pgm, etc).
Queria montar um video com 30 frames por segundo. Alguém sabe como fazer??? Se possivel num formato de saida sem compressão.
É sim zerocall! o código abaixo faz isso, lembrando que você deve utilizar o conversor ffmpeg.exe, o código abaixo recebe imagens no formato “image1.png, image2.png…” e transforma em um vídeo .flv com uma taxa de frames de 30fps
packageconverter;importjava.io.File;publicclassConverterImagensEmVideo{publicstaticvoidmain(String[]args){// recebe imagens no formato "image1.png, image2.png..." e transforma em um vídeo .flv com uma taxa de frames de 30fpsStringcommand="ffmpeg -f image2 -i midia/image%d.png -r 30 video.flv";System.out.println("Conversor.main() "+command);Processp=null;try{System.out.println(command);p=Runtime.getRuntime().exec(command);}catch(Exceptione){System.out.println("Conversor.main() erro "+p);System.out.println(e);}//System.out.println("Conversor.main() terminei " + i);}}
M
mausexdd
Como eu consigo executar o ffmpeg antes de emitir o comando?
E Como gerencio as pastas que onde devem ser criados e lidos os arquivos?
Vlw
E
entanglement
Dica: em vez de usar um programa Java para iniciar o ffmpeg, é melhor você aprender a usar os parâmetros do ffmpeg e criar uma batch ou script para fazer as coisas exatamente do jeito que você quer. A parte de gerenciamento de pastas, por exemplo, é um dos parâmetros do ffmpeg.
Ache a documentação dos parâmetros de linha de comando na Internet.
E
entanglement
Além disso, se aprender a usar direitinho o ffmpeg, pode usar um outro formato que não flv (por exemplo, pode gerar um mp4).
M
mausexdd
Mais esse script eu iria desenvolver em que?
Eu quero executar as funções de conversão e gerenciamento destes arquivos em um servidor web.Tem como desenvolver um script para executar essas bibliotecas que rode em um servidor?
Eu estou vendo algumas funções na documentação e percebi que realmente é só passar os parametros para o ffmpeg que ele executa o que queremos.
M
mausexdd
Você acha mais viável criar um script ou um bath?
M
mausexdd
Outra coisa entanglement, quando a imagem não sofrer nenhuma alteração significativa em um tempo x será enviado uma unica imagem com um log.txt informando o tempo que a imagem devera permanecer sendo exibida, tem como ler e trabalhar com log através de scripts ou bath?
M
mausexdd
Você sabe como eu consigo o código em C da função que recebe estes paramentro
Quando executo este código ele não está criando o arquivo .flv porém se eu copio o mesmo comando para o cmd no diretório D:\Convert\ ele funciona normalmente. Alguma dica do que pode ser?
Vou tentar utilizar o framework OpenCV esse ffmpeg não ta rolando a integração
M
mausexdd
Eu estou executando o código abaixo e não funciona mais também não da erro.
publicclassConvertImageToVideo{publicstaticvoidmain(String[]args){// recebe imagens no formato "image1.png, image2.png..." e transforma em um vídeo .flv Stringdir="c:\\Convert\\";Stringcomando="ffmpeg.exe -f image2 -i image%d.jpg videoCriadoComJar.flv";Processp=null;try{System.out.println("Comando executado:"+comando);p=Runtime.getRuntime().exec(dir+comando);JOptionPane.showMessageDialog(null,"Conversão realizada com Sucesso.\n Verifique o diretório C:/Convert");}catch(Exceptione){System.out.println("Conversor.main() erro "+p);System.out.println(e);}
Porém se eu executo o mesmo código no CMD funciona. Alguma idéia porque???