Pergunta

Alguém tem uma maneira confiável conhecido para criar um vídeo de uma série de arquivos de imagem? Antes de me mod para baixo por não procurar a resposta antes de postar a pergunta, e antes de disparar uma mensagem simples como "uso FFMPEG," ler o resto desta mensagem.

Eu estou tentando criar um vídeo, não importa muito qual o formato enquanto é amplamente apoiada, de uma série de imagens (.jpg, .bmp, etc.). Minha plataforma é o Windows Server 2008, 64-bit. Se eu puder fazer o vídeo de dentro do meu programa C #, isso é ótimo, mas eu não sou avesso a escrever uma série de arquivos de imagem para um diretório e, em seguida, disparando um programa externo para fazer um vídeo a partir dessas imagens.

As únicas restrições são: deve trabalhar no meu sistema Windows Server 2008, e ser programável. Ou seja, há programas gráficos que requerem a intervenção do operador.

Eu encontrei uma série de perguntas semelhantes sobre StackOverflow, e já tentou várias das soluções, todos com diferentes graus de frustração e nenhum com nada parecido com sucesso.

FFMPEG parece um grande programa. Talvez seja, no Linux. As duas janelas constrói eu baixei estão quebrados. Dada esta linha de comando:

  ffmpeg -r 1 -f image2 -i jpeg\*.jpg video.avi

Uma das compilações lê as imagens e, em seguida, cai devido à prevenção de execução de dados. O outro lê o primeiro arquivo e, em seguida, cospe uma mensagem de erro que diz "não pode encontrar codec adequado para arquivo JPEG / image2.jpg". Útil, que. Em qualquer caso, FFMPEG parece um non-starter no Windows.

Uma resposta a uma postagem anterior recomendado Splicer . Parece que o código muito bom. Eu compilei as amostras e tentou correr, mas tem alguma mensagem de erro enigmática sobre um arquivo não foi encontrado. Parece que uma classe COM não está registrado. Acho que eu preciso instalar algo (DirectShow, talvez, embora eu pensei que já foi instalado?). Dependendo do que é necessário, eu poderia ter um tempo difícil justificando a sua instalação em um servidor. ( "O quê? Por que você precisa que em um servidor?")

Outra resposta sugeriu a href="http://www.codeproject.com/KB/audio-video/avifilewrapper.aspx" rel="noreferrer"> avifile biblioteca do projeto de código. Isso parece bastante simples: um invólucro em torno do subsistema Windows avifile. Exceto que os arquivos AVI o pacote cria parecem ter todos os quadros, mas apenas os primeiros shows quadro quando eu jogar o AVI no Windows Media Player. Bem, isso e se você tentar criar um vídeo compactado, o programa gera uma exceção.

Então, eu estou me perguntando se existe uma boa, maneira confiável para fazer o que eu quero: em um sistema Windows, criar um formato de arquivo comum de vídeo AVI ou outro a partir de uma série de imagens, através de uma API .NET ou utilizando um programa externo. Qualquer ajuda?

Foi útil?

Solução

Depois de trabalhar com ele um pouco e dar uma olhada no x264 e VideoLan, eu voltei para o Splicer. Acontece que a mensagem de erro enigmática foi devido a um erro no meu código.

Parece que Splicer vai fazer o que eu quero:. Programaticamente criar vídeos a partir de uma série de imagens

Obrigado a todos que responderam.

Outras dicas

Você pode usar VideoLan e eu recomendo-lo.

Eu tive experiência direta em um aplicativo C # com VideoLan fazer essas duas coisas:

  1. A incorporação de um telespectador VLC no meu aplicativo C # (há 3-4 C # "wrappers" para o veiwer VLC).
  2. Usando vlc.exe em um processo separado, enviando-lhe argumentos de linha de comando.

O fato de que VideoLan tem uma interface de linha de comando é uma grande coisa. E VLC suporta uma opção de linha de comando que desativa qualquer elemento visual; de modo que o VLC GUI não aparecer e nem uma janela de linha de comando. Assim, em uma aplicação C # você pode cultivar o trabalho de vídeo-relacionado com o cliente VLC. C # tem a classe de processo que pode gerenciar suas instâncias vlc.exe para você. Ela acaba sendo uma solução muito arrumado.

Eu usei mplayer 's mencoder para criar AVI (com codecs msmpeg4 / mp3, por legível padrão com o Windows Media player) da TGA arquivos no Linux como esta:

mencoder mf://*.tga -mf fps=25:type=tga \
  -audiofile /tmp/test.mp3 -oac copy \
  -of lavf -ovc lavc \          
  -lavcopts vcodec=msmpeg4v2:mbd=2:mv0:trell:cbp:last_pred=3:vbitrate=3000 \
  -o /tmp/test.avi

Eu sei MPlayer tem uma versão do Windows.

Em vez de apenas passar por todos os problemas, você poderia coppy todas as imagens que deseja ser incluído no seu vídeo para a área de transferência e tê-lo importado para o Windows Live Movie Maker (dinamicamente, é claro!) E tê-lo compilar para você!

Tudo isso pode ser feito através de código, mas desta forma, você não tem que criá-lo. Como você disse que a plataforma era do Windows, e todos comps Windows têm Windows Live Movie Maker instalado, por isso não deve ser um problema para qualquer um usando seu aplicativo a menos

a) Eles desinstalado Windows Live Movie Maker

b) Eles estão usando um computador rodando em uma versão do Windows mais de 8 ou 9 anos de idade ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top