Conversão de vídeos distribuída  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
Leafar
HelloWorld
[Avatar]

Membro desde: 11/03/2009 07:38:27
Mensagens: 11
Offline

Olá pessoal, td bem?

Tô com uma dúvida de arquitetura, será que vcs podem me ajudar?

Tenho um banco de dados onde há vários vídeos cadastrados.

Aí, tenho que pegar cada um desses vídeos e converter usando um programa de conversão (tal como o FFMpeg, VLC, entre outros).

O problema é que esse processo de conversão é bem pesado e chega a consumir quase toda a minha CPU, a qual já está rodando um servidor de aplicação! hehehe

Gostaria de saber, nesse caso, o que vocês recomendam fazer p/ que o conversor não fique consumindo a CPU do meu servidor de aplicação.

O que já pensei (talvez eu tenha viajado um pouco rs):

- Usar um Message Driven Bean em outra máquina que receberia comandos de conversão. Só que não sei como esse MDB iria enxergar os vídeos da outra máquina e convertê-los.

- Usar algum programa de balanceamento de CPU que limite o processamento do conversor de vídeos (achei isso meio ruim, porque teria que ser algo p/ rodar no Linux e no Windows).

Valeeeus!

[]'s

This message was edited 1 time. Last update was at 09/02/2012 16:44:59

entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

O correto (e mais eficiente) é você mandar converter os vídeos em outra(s) máquinas; para que a(s) outra(s) máquinas possam ver os arquivos a serem convertidos, use algum recurso de compartilhamento de diretórios.

Para executar o comando remotamente, use o ssh (no caso do Linux e também do Windows). O SSH é uma forma segura e eficiente de executar comandos remotamente.

Se você não quiser fazer compartilhamento de diretórios, pode copiar os arquivos de/para as máquinas que fazem o processamento usando o scp, que é um comando que usa o ssh para efetuar cópia de arquivos, e que usa criptografia e opcionalmente compressão (embora isso não seja útil no seu caso, que é de conversão de vídeos).

Para compartilhar os diretórios, o jeito mais boboca é usar o recurso de compartilhamento de diretórios do Windows (no caso do Windows) ou o Samba (no caso do Linux), levando em conta que são coisas compatíveis, ou seja, dá até para fazer um "farm" de máquinas Windows e Linux, bastando você fazer as configurações adequadas no seu programa.



entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

Como a compressão leva um certo tempo, pode usar MDB para que ele execute os comandos necessários (scp video.mp4 usuario@servidor:~/video.mp4; ssh ffmpeg bla bla bla etc.; scp usuario@servidor:~/convertido.mp4 convertido.mp4) e espere que ele termine.
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team