Alguem ja trabalhou com JMF para fazer streaming de video? Caso positivo, gostaria de trocar umas ideias…
Streaming JMF
7 Respostas
Já trabalhei com JMF…Fiz um servidor de vídeos multithreaded em uma rede local…Vários clientes podiam conectar-se ao servidor para assistir vídeos em tempo real…Realizava stream de vídeo e de áudio…
Podemos entrar em contato para eu poder tirar umas duvidas e obter algumas dicas de implementacao?
Agradeco antecipadamente.
Pq nao fazer isso aqui no GUJ mesmo? Assim, mais gente pode aproveitar das dicas/conclusoes/duvidas e etc 
De qualquer forma, eu tou soh sendo chato. Eh pra isso que tem botoezinhos com e-mail, icq, aim, msn, y!m e private message em todos os posts 
Nao queria comentar no topico porque talvez eu tivesse que fazer muitos comentarios de implementacao que nao diz respeito a Java. Mas, de toda forma, fica como experiencia para aqueles que possivelmente tenham a mesma duvida.
La vai entao…
Estou desenvolvendo uma biblioteca digital de video para a web que possui basicamente os seguintes requisitos:
- o usuario entre com consultas do tipo: “Quero ver todos os trechos de video em que Ronaldinho esteja tomando pepsi”
- Digamos que exista um video que atenda essa consulta, com duracao total de 4 min, mas o trecho desejado pelo usuario corresponde ao intervalo de tempo compreendido entre 1:20 e 1:50 (eu tenho esse intervalo armazenado).
- Meu desejo eh que apenas esse trecho seja enviado para o browser do usuario.
A principio, minha aplicacao nao esta “presa” a algum formato de midia em particular (pode ser AVI, MOV, WMF, MPEG1, MPEG2, MPEG4,…). Mas acontece que possuem tecnologias que so trabalham com MPEG. Se for o caso, eu só trabalharei com o formato de video suportado.
Vou comentar apenas a parte relativa a Java.
Minha pergunta: Estou utilizando TomCat como servidor de aplicacoes.
As descricoes de video estao no formato XML, onde eu faco consultas utilizando XQuery. Meus videos estao localizados, por exemplo, em webapps/myapplication/videos
PERGUNTA: Como eu posso utilizar JMF para receber um arquivo de video e enviar, como streaming (ou outra forma conveniente), apenas a parte correspondente a minha consulta. Algo do tipo: Se meu video tem 1:00 minuto, quando minha business logic for requisitada, ela deve enviar apenas o conjunto de frames relacionado ao instante 20 seg até 40 seg.
Eu andei acessando a pagina da JMF Solutions e baixei um .java que “recortava” um video, passando o instante inicial e final. Bem… De certa forma até que atendia minha necessidade, pois como resultado, ele gerava um arquivo de saida com a sequencia de frames correspondente. Mas… podemos ver que nao é uma saída legal… Minha aplicação teria que ler o video, fazer todo o processamento, gerar o arquivo de saída (em disco) e no final, enviar esse arquivo para o usuário. É um processamento pesado! Sem falar que só dava certo para o primeiro acesso (Não me perguntem o motivo! Ja enviei esse problema para o Forum e ninguem respondeu!). Desta forma, se eu pudesse fazer streaming, a parte processada poderia ser enviada diretamente para o cliente.
Abracos,
Alguém conseguiu resolver este problema?
Estou implementando uma aplicação semelhante e estou enfrnetando o mesmo problema…
Obrigado, desde já…
tenho um projeto opensource que faz isso.
https://jconference.dev.java.net/
Atualmente tem video/audio/chat e slides.
mas tem uma pancada de gargalos, ajudantes são bem vindos.
Acho que a melhor alternativa pra streaming free hoje é usar um servidor chamado Red 5
O Red 5 é uma engenharia reversa do FMS.
vale dar uma olhada
Até consegui fazer um Streaming hoje…Mas só consegui transmitir vídeo em MPEG-1. Sem contar que, na experiência, meu cliente (a thread consumidora) não estava usando buffer, então não conseguia receber o vídeo inteiro…
Ou seja, estou com dois problemas:
1-Como fazer streaming de arquivos de vídeo em outros formatos (MPEG-2, AVI, …)?
2-Como eu poderia implementar um buffer que pudesse ser lido depois? No caso, implementar o buffer não é problema. Posso ir armazenando arrays de bytes em uma estrutura dinâmica (como um ArrayList, por exemplo), o problema é: Como ler essa estrutura dinâmica de arrays de bytes e transformar em um vídeo?