Sem resumo de edição |
Sem resumo de edição |
||
| (Uma revisão intermediária pelo mesmo usuário não está sendo mostrada) | |||
| Linha 22: | Linha 22: | ||
*O primeiro desafio que o aluno enfrenta é como gerar video nesse formato para o celular utilizando o ffmpeg, o aluno ainda deverá ficar atento a resolucao do video que o celular suporta. | *O primeiro desafio que o aluno enfrenta é como gerar video nesse formato para o celular utilizando o ffmpeg, o aluno ainda deverá ficar atento a resolucao do video que o celular suporta. | ||
*Com os vídeos sendo criados no formato correto, ainda há mais uma etapa na produção de vídeo. Esta etapa adicional consiste em adicionar informações sobre as | *Com os vídeos sendo criados no formato correto, ainda há mais uma etapa na produção de vídeo. Esta etapa adicional consiste em adicionar informações sobre as faixas de vídeo e áudio para que o servidor de streaming de vídeo saiba separar, de maneira otimizada, o conteúdo em pacotes para o streaming de vídeo. | ||
faixas de vídeo e áudio para que o servidor de streaming de vídeo saiba separar, de maneira otimizada, o conteúdo em pacotes para o streaming de vídeo. | |||
*A rede também é um desafio, e quando falamos de rede incluímos todos os ativos, como gateway (o NAT em questão), os Firewall, o link necessário tanto do lado do servidor quanto do lado do celular, os navegadores, etc. | *A rede também é um desafio, e quando falamos de rede incluímos todos os ativos, como gateway (o NAT em questão), os Firewall, o link necessário tanto do lado do servidor quanto do lado do celular, os navegadores, etc. | ||
Edição atual tal como às 22h13min de 23 de fevereiro de 2012
Introducao
Em uma solução completa de streaming podemos destacar três fases principais. A primeira é a produção do vídeo, a segunda é a sua distribuição e a terceira é seu consumo.
Laboratorio
Para que o vídeo possa ser tocado corretamente no celular este deve estar codificado em um formato que seja reconhecido pelo celular.
O padrão mais reconhecido pelos celulares atualmente é o 3GP (3GPP File Format).
Trata-se de uma variação do container multimídia mp4, ou seja, um formato de arquivo que pode conter diferentes mídias codificadas através de codificadores padronizados.
Definido pelo orgão 3GPP (3rd Generation Partnership Project), este container é uma versão simplificada do MPEG-4 Part 14, onde as seqüências de vídeo podem ser codificadas em MPEG-4 ou H.263 e as seqüências de áudio podem ser codificadas em AMR-NB (Adaptive Multi-Rate - Narrow Band) ou AAC-LC (Advanced Audio Coding – Low Complexity).
Estes codificadores todos estão disponiveis no codigo do ffmpeg, porem devemos habilita-los na compilação, se baixar o ffmpeg.exe da internet vai depender da boa vontade de quem compilou habilitar os codecs, normalmente o codec amr não vem habilitado no ffmpeg.exe (win32)
Desafios
- O primeiro desafio que o aluno enfrenta é como gerar video nesse formato para o celular utilizando o ffmpeg, o aluno ainda deverá ficar atento a resolucao do video que o celular suporta.
- Com os vídeos sendo criados no formato correto, ainda há mais uma etapa na produção de vídeo. Esta etapa adicional consiste em adicionar informações sobre as faixas de vídeo e áudio para que o servidor de streaming de vídeo saiba separar, de maneira otimizada, o conteúdo em pacotes para o streaming de vídeo.
- A rede também é um desafio, e quando falamos de rede incluímos todos os ativos, como gateway (o NAT em questão), os Firewall, o link necessário tanto do lado do servidor quanto do lado do celular, os navegadores, etc.
Explicações
Estas faixas de informação extra, conhecidas como hint tracks, são uma necessidade específica de alguns servidores de streaming de vídeo, como no caso do Darwin Streaming Server, e são usadas apenas para o caso de streaming via RTP.
Sendo assim, outras formas de distribuição, como HTTP, ignoram esta informação. Cada faixa, seja de áudio ou de vídeo, necessita de uma hint track para que possa ser realizado o streaming.
Uma hint track especifica, por exemplo, o escala de tempo do RTP e o tamanho máximo de um pacote (MTU), do inglês Maximum Transmission Unit. É importante ressaltar, que as informações contidas em hint track podem influenciar diretamente o desempenho de serviço de streaming.
A ferramenta livre capaz de fazer a criação de hint tracks para os vídeos é o GPAC que entre seus aplicativos possui o MP4Box, capaz de produzir tais hint tracks. Para utilizar a ferramenta é preciso baixar o MP4Box.exe ou instalar no caso do fedora yum install gpac no caso do ubuntu apt-get install gpac.
A distribuição de vídeo via streaming necessita de um servidor de streaming de vídeo. O servidor de streaming de vídeo escolhido é o Darwin Streaming Server (DSS) da empresa Apple Computers.
O DSS suporta conteúdo 3GP, possui codigo aberto e uma excelente documentação para desenvolvedores.
Para ter o servidor funcionando existem duas opções: baixar o arquivo binário e instalá-lo diretamente ou baixar o código fonte, compilá-lo e instalá-lo.
O Darwin Streaming Server também disponibiliza uma aplicação web de gerenciamento. Através desta interface, é possível iniciar e parar o serviço de streaming de vídeo, e alterar as principais configurações.
Esta aplicação é acessada através da porta 1220.
Depois de iniciado, o servidor passa a escutar na porta 554, referente ao protocolo de aplicação RTSP.
O aluno ainda pode enfrentar problemas com firewall pois o DSS utiliza portas TCP e UDP para funcionar
Com as configurações corretas no servidor de streaming e no firewall, o próximo passo, é então testar em celulares. Desta forma, através do browser do aparelho é possível digitar a URL de um serviço de streaming de vídeo para assistí-lo.
Podem ocorrer ainda problemas com NAT, e banda utilizada tanto pelo servidor quanto pelo celular.
Para entender um pouco melhor sobre o NAT, e a banda necessária, consultar documentação.