Streaming de vídeo em dispositivos móveis Fábio S. Coriolano, Thomas A. Buck 1 Faculdade de Administração e Negócios de Sergipe (FANESE) - 41950-275 Aracaju - SE - Brasil 2 Universidade Salvador (UNIFACS) - 41950-275 Salvador - BA - Brasil f_coriolano@yahoo.com.br, thomas@unifacs.br Abstract. This paper proposes techniques for media streaming transmission, reception, persistence and search for video on mobile platforms. Also it is presented a development of players, which function is the view of the multimedia streaming on cell phones. There were used standard specifications for 3GP and specialized protocols, those define the access control and distribution of multimedia content. Resumo. O presente artigo propõe técnicas para transmissão, recepção, persistência e busca vídeo de media streaming em plataformas móveis. É também apresentado o desenvolvimento de um player, cuja função é visualizar multimídia streaming em aparelhos celulares. Foram utilizados padrões para especificações 3GP e protocolos especializados, que definem o controle de acesso e a distribuição do conteúdo multimídia. 1. Introdução Já se foi a época em que o celular servia apenas para fazer ligações. Há não muito tempo, os celulares eram enormes, pesados e com bateria que possuía um tempo de duração curto. Hoje a realidade é outra. Os aparelhos possuem diversas funcionalidades, como jogos, aplicativos, câmera fotográfica, armazenamento de arquivos multimídia, entre outros tantos recursos [Nokia N95 User Guide] [Sony Ericsson Java ME Platform Docs & Tools]. As taxas de downloads de aplicativos e jogos para Dispositivos Móveis (DM) têm sido altíssimas nos últimos anos, atraindo o investimento crescente em software dessa categoria. Com o advento da TV digital e da tecnologia 3G (geração de sistemas móveis de telecomunicações), o celular tornou-se uma máquina de conexão de internet banda larga, com enormes chances de ser a forma mais popular de navegação, pois permite que o usuário acesse a internet de qualquer lugar, a qualquer momento [Rodrigues 2006] [Elsen e Hartuing e Uwe e Kampmann 2001]. Atualmente, transmissão de vídeo representa uma porção significativa do tráfego de dados na internet, o que explica o empenho de muitos na transmissão multimídia para DM [Elsen e Hartuing e Uwe e Kampmann 2001] [Austerberry 2004]. Como o interesse dos usuários é assistir os vídeos em tempo real, é necessário utilizar técnicas de transmissão com streaming. Os sistemas de transmissão de streaming de conteúdo multimídia devem prever os seguintes componentes básicos na sua arquitetura [Austerberry 2004]:
Protocolos para transmissão e estrutura de distribuição dos dados; O formato da mídia que será transmitida; O software que permite que os usuários reproduzam os arquivos multimídia Player; Servidores para a distribuição do conteúdo para os clientes, utilizando um protocolo definido. Existem formas para exibir e transmitir vídeo em DM: umas mais eficientes que outras, em razão da arquitetura de transmissão e recepção que o projeto foi desenvolvido. No caso de [Goyal 2006], é apresentada a API (Application Programming Interface) opcional do J2ME, MMAPI, e, por fim, desenvolvido um estudo de caso de um sistema móvel para uso de Blog, o qual faz a captura de áudio, vídeo e imagem do DM e envia via HTTP para um servidor web desenvolvido em Java. Já em [Wang e Bouazizi e Misk e Curcio 2007] [Roy e Covell e Ankcorn e Wee e Yoshimura 2003] [Curcio 2005], abordam uma visão geral das principais normas e padrões para serviços multimídia em DM, e confirma a importância do protocolo RTSP (Real Time Transport Protocol) para exibição de vídeo em DM. Em [Vazquez e Vicent 2007] é apresentado um sistema para transmissão de streaming de áudio utilizando dois servidores: o primeiro, um servidor PHP (Hypertext Preprocessor), que serve para fazer conversão dos dados, e o segundo, um servidor RTSP, cuja importância é fazer a transmissão do áudio para os dispositivos móveis. Essa aplicação é que mais se aproxima do tema proposto, contudo o foco deste estudo é o streaming de áudio. O presente artigo tem como objetivos principais: (i) comparar técnicas de implementação para recepção de conteúdo multimídia em DM, destacando as vantagens de se utilizar streaming de vídeo; (ii) apresentar os principais componentes para tal recpção; (iii) contribuir com pesquisa na área, tendo em vista a carência de estudos científicos no campo de streaming de vídeo para DM. O artigo está estruturado em outras quatro seções. A seção 2 faz uma breve descrição sobre o sistema desenvolvido, e seus subtópicos descrevem o sistema proposto. A seção seguinte trata de resultados obtidos no desenvolvimento do projeto. A seção 4 relaciona o tema discutido com trabalhos apresentados na academia. Já a última seção apresenta as conclusões do trabalho. 2. Descrição do Sistema Proposto Para desenvolvimento da aplicação móvel, foi utilizado J2ME (Java 2 Micro Edition), que possui arquitetura especial com uma série de APIs, cujas funções são acessíveis para programação em Java [Goyal 2006] [Muchow 2004] [Topley 2002] [Gosh 2002]. Na construção do player para streaming de vídeo, foi empregada uma API opcional do J2ME, que é a MMAPI(Mobile Midia API). Esta amplia opções de áudio, vídeo e outros recursos multimídia existentes nos aparelhos móveis. Através desse
pacote, os desenvolvedores Java mobile acessam recursos multimídia nos DM [Goyal 2006] [Mobile Media API Sun]. A aplicação servidora visa controlar o acesso, realizar consultas e transmitir os dados multimídia para os clientes móveis [Santos e Tavares. 2007] [Curcio 2005] [Yeo e YEUNG 1997]. O protocolo utilizado para transmissão dos dados multimídia é o RTSP, para o qual a MMAPI tem suporte. O RTSP é baseado no UDP (Datagram Protocol), protocolo mais utilizado para o processo de streaming de dados multimídia [Wang e Bouazizi e Misk e Curcio 2007] [Roy e Covell e Ankcorn e Wee e Yoshimura 2003] [Curcio 2005]. O formato de vídeo utilizado foi o 3GP (3GPP- Third Generation Partnership Project - File Format), que é o padrão mais reconhecido pelos DM's atualmente [Elsen e Hartuing e Uwe e Kampmann 2001] [Wang e Bouazizi e Misk e Curcio 2007]. 2.1. Formato de Vídeo 3GP O 3GP se distingue em duas formas, o 3GPP, que é utilizado em redes GSM (Global System for Mobile Communications) e o 3GPP2, que é empregado em CDMA (Code Division Multiple Access) [Tanenbaum 2003]. O padrão 3GP foi projetado especialmente para o uso em DM e para distribuição de conteúdo multimídia em redes sem fio de alta velocidade [Elsen e Hartuing e Uwe e Kampmann 2001] [Wang e Bouazizi e Misk e Curcio 2007] [Third Generetion Partnership Project]. O referido formato possui uma boa qualidade de áudio e vídeo com taxas baixas de dados, pois é baseado no popular formato MP4 (Mpeg-4 parte 14) [Rodrigues 2006] [Wang e Bouazizi e Misk e Curcio 2007]. Arquivos e streams 3GP podem conter diferentes tipos de mídia, como áudio, vídeo e texto. Isso se deve ao fato de essa especificação suportar vários formatos de mídia, entre os quais: MPEG-4, AMR, JPEG, GIF, H.263. Caso o arquivo 3GP seja codificado utilizando o codec H.263 para vídeo, e AMR para áudio, vai tocar no player do DM sem problema [Elsen e Hartuing e Uwe e Kampmann 2001] [Wang e Bouazizi e Misk e Curcio 2007]. 2.2. Aplicação Servidora Todo conteúdo multimídia está armazenado em uma base de dados relacional, utilizando o SGBD MYSQL, e com o formato 3GP. O acesso à base de dados foi desenvolvido em Java e é feito por meio de web services. Neste serviço web, existem dois métodos principais: o primeiro é responsável pela consulta de vídeo no servidor; o segundo, por sua vez, permite que outros DM s acessem o conteúdo multimídia, mantendo as regras de segurança já estabelecidas. Existem perfis de usuário para um melhor gerenciamento. Um destes perfis é o Público, em que usuários não cadastrados (anônimos) realizarão consultas e prévisualizarão algumas mídias, cujo acesso seja público. Para transmissão de streaming de vídeo entre o servidor e o cliente móvel, foi utilizado o protocolo RTSP, que é um protocolo de aplicação utilizado para controle da entrega de dados em tempo real, e funciona através de troca de mensagens, isto é, requisições e respostas entre cliente e servidor.
A implementação do servidor foi desenvolvida utilizando a linguagem Java, sendo que o servidor só estabelece uma sessão RTSP com o cliente, quando a aplicação J2ME faz uma requisição de uma determinada mídia. 2.3. Cliente J2ME Desenvolver um Player de vídeo utilizando MMAPI não é muito diferente de como implementar utilizando a famosa API JMF, porque a MMAPI permite o acesso a vários protocolos e formatos diferentes [Goyal 2006] [Mobile Media API Sun]. Basta adicionar um serviço RTSP válido e criar uma thread para executar o player, uma vez que acessar serviço web em uma aplicação J2ME exige processamento paralelo. No Player Mobile, há a opção pause, cujo objetivo é carregar todo o vídeo, para então assisti-lo, e a opção de gravação, implementada através de Record Management Store RMS (por ser limitado, a gravação deve ser de poucos minutos), como se pode observar na figura 1. Figura 1. Ilustra o player para dispositivos móveis Foi desenvolvido um módulo de pesquisa de vídeo, que pode ser feito através de RMS ou do servidor Web. Na hipótese do servidor, a pesquisa é feita através de web service, que recebe do DM o nome do vídeo como parâmetro. No RMS, é desenvolvida através de algoritmos de busca, pois o repositório de dados se encontra no próprio dispositivo. Ambos retornam uma lista de vídeo do nome pesquisado, ou, caso o cliente não passe nenhum nome, o sistema retorna todos os vídeos da base, como ilustra a figura 2.
Figura 2. Ilustra uma lista de vídeos pesquisados 3. Resultados Obtidos Além do desenvolvimento do cliente J2ME, com o uso de streaming de vídeo utilizando o protocolo RTSP, foram implementadas e testadas duas formas de uso do protocolo HTTP. Suas respectivas características foram confrontadas na Tabela 1. A primeira diz respeito ao carregamento da mídia pelo MMAPI, para só depois tocar o vídeo. Concluiu-se que: Para pequenos vídeos, o sistema funciona bem, mas, para um conteúdo maior, o DM não tem poder de armazenamento suficiente para gravar os dados antes de exibi-los no player; O sistema demonstra uma lentidão antes de fazer o download da mídia, ocasionando paradas inesperadas na reprodução do conteúdo, dando a impressão de que o aplicativo está com algum erro; Suporta apenas a disponibilização de conteúdos (on demand) previamente gravados; Mesmo particionando a mídia, para que o player MMAPI faça o download do vídeo por etapas (enquanto o player exibe um trecho do vídeo, a aplicação continua armazenando os dados no buffer), o sistema fica lento para carregar os fragmentos de vídeo; O único benefício desse processo é que, como o protocolo utilizado é o HTTP, a perda de pacotes é mínima (dependendo do poder de processamento do DM), tendo em vista que esse protocolo é feito o download do conteúdo multimídia para em seguida exibi-lo. A segunda foi o desenvolvimento de um falso streaming de vídeo, em que se utilizou técnica para extrair um frame e seu áudio específico. A ideia é armazenar um buffer de áudio e outro de vídeo no DM e ir exibindo-o, à medida em que os quadros são acumulados. Abaixo o que se observou a partir dessa técnica:
O conteúdo foi exibido com certa velocidade, porém a perda de informação foi muito alta devido a falhas no algoritmo desenvolvido; Como não foi utilizada a MMAPI, não houve sincronismo entre o áudio e o vídeo, sendo detectada falha no algoritmo, no pseudocódigo 1 pode ser analisado tal afirmação; No que se refere ao cliente J2ME, ilustrado no tópico precedente, cabe ressaltar o seguinte: O sistema teve um eficiente desempenho em emuladores do WTK (Wireless Toolkit), da Sony Ericsson e Nokia, com os vídeos sendo tocados em tempo real e perdendo somente alguns poucos frames; Como a medição nos emuladores não pode servir como parâmetro absoluto, também foi feita uma avaliação no aparelho celular N95 da Nokia, por ser bastante utilizado no mercado e por possuir suporte para o protocolo RTSP. O desempenho não foi o mesmo do emulador executado no PC, mas semelhante, tendo em vista que a mídia foi executada com sucesso e a aplicação não interferiu em nada na compreensão do vídeo. Tabela 1. Apresenta quadro comparativo das três formas de recepção de conteúdo multimídia para DM - RTSP HTTP HTTP Streaming * Espaço em disco Fluxo/ download prévio do conteúdo Perda de pacotes Tamanho do conteúdo Pouco Muito Pouco menos que HTTP À medida em que é feito o download Perde poucos frames Não importa Somente após o download Não perde Apenas pequenos conteúdos À medida em que é feito o download Perde alguns frames Não importa Partição do conteúdo Sincronismo áudio/vídeo Compreensão do vídeo Não Depende Não Sim Sim Não Suficiente Total Comprometida * Com base no algoritmo desenvolvido no projeto.
4. Conclusão Em razão do aumento da capacidade de armazenamento, processamento e poder de banda dos DM, é possível hoje a utilização de streaming de vídeo nos celulares. As operadoras investem cada vez mais em serviços multimídia, fornecendo inúmeras espécies de toques, papéis de parede, vídeos, entre outros. Este artigo apresentou o desenvolvimento de ambientes para recepção de streaming de vídeo em DM. A partir do estudo realizado, o primeiro conceito que pode ser obtido é que, para o streaming de vídeo tocar em um Player mobile de forma eficiente, faz-se necessária a utilização de protocolos e de uma arquitetura cliente - servidora bem arranjada e produzida. Outro conceito que se extrai é a eficiência do protocolo UDP comparado ao HTTP. No RTSP o vídeo é transitado com mais velocidade no cliente móvel, já que o player executa o vídeo conforme ele vai sendo enviado ao DM, diferente do uso de HTTP, em que o cliente é obrigado a fazer o download de parte do vídeo e armazená-lo em uma pasta temporária, para a mediada em que o conteúdo é gravado o vídeo seja exibido pelo player. Ainda no que se refere aos protocolos, pode-se elencar o HTTP streaming. Apesar de ser uma solução impactante, esse tipo de download oferece algumas limitações, quando comparadas à streaming real, que [Cunha 2007]: Permite gestão/otimização da largura de banda. Exemplo: o buffer utilizado recebe a quantidade de informação necessária para acompanhar o ritmo de reprodução; Permite o controle de fluxo do conteúdo. Exemplo: é possível mudar de faixa, sem que se tenha descarregado todo o conteúdo; Permite broadcast de eventos em tempo real; Não demanda muito espaço em disco para armazenar os conteúdos, pois arquivo não é transferido totalmente para o receptor; Diante do que foi exposto, não restam dúvidas de que o streaming de vídeo para DM é uma tecnologia bastante promissora, notadamente no que tange à rapidez e portabilidade na transmissão da informação, haja vista que atende de maneira eficaz as demandas do mundo contemporâneo. 5. Referências Davis,M. Media Streams: An Iconic Visual Language for Video Representation. Readings in Human-Computer Interaction: Toward the Year 2000. Goyal 2006Pro Java ME MMAPI: Mobile Media API for Java Micro Edition. Apress. Montez,C. e Willrich, R e Pistori, J. (2001) BDMm - A Biblioteca Digital Multimídia. III WorkShop RNP2, Florianópolis. Muchow, W.J. (2004) Core J2ME Technology e MIDP. Makron Books. Topley, K. (2002) J2ME in a nutshell A Desktop Quick Reference. O Reilly.
Gosh, S. (2002) J2ME Record Management Store. IBM Developers Works. URL: http://www-128.ibm.com/developerworks/wireless/library/wi-rms/ Nokia N95 User Guide. URL: http://www.nokia.pt/apoio-e-software/apoioprodutos/nokia-n95-8gb/manuais Rodrigues, M. (2006) IPTV Conceitos, Padrões e Soluções. Pontifícia Universidade Católica do Rio de Janeiro - PUC. URL: ftp://ftp.inf.pucrio.br/pub/docs/techreports/06_05_rodrigues.pdf C. A. S. Santos, A. Santos, T. A. Tavares. (2007) Uma Estratégia para a Construção de Ambientes para a Descrição Semântica de Vídeos. In: WEBMEDIA 2007, Gramado- SC. v.1. pp.274--28. Wang, Y. e Bouazizi,I e Misk,M. e Curcio, I.D. (2007) Mobile video applications and Standards. International Multimedia Conference. ACM, New York, 1-6. Roy, S e Covell, M. e Ankcorn, J. e Wee, S. e Yoshimura,T.A. (2003) System Architecture for Managing Mobile Streaming Media Services. Proceedings of the 23rd International Conference on Distributed Computing Systems. In IEEE Computer Society Washington, DC, USA. pp. 408. Curcio, I. (2005) Mobile Streaming Services in WCDMA Networks. Proceedings of the 10th IEEE Symposium on Computers and Communications. IEEE Computer Society Washington, DC, USA. pp. 231 236. Vazquez, M. Vicent, P. (2007) A mobile audio messages streaming system. Proceedings of the 2007 Euro American conference on Telematics and information systems, ACM. Elsen, I. e 0 Hartuing,F. e Uwe, H. e Kampmann,M.( 2001) Streaming Technology in 3G Mobile Communication Systems. IEEE Computer Society Press Los Alamitos, CA, USA. pp 46 52. Cranley, N. e Murphy, L. e Perry, P. (2007) Perceptual quality adaptation (PQA) algorithm for 3GP and multitracked MPEG-4 content over wireless IP networks. 15th IEEE International Symposium, v.3, pp 5-8m. Third Generetion Partnership Project. URL: http://www.3gpp.org Sony Ericsson Java ME Platform Docs & Tools. URL: http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp Yeo,B. e YEUNG, M. (1997) Retrieving and Visualizing Video. Communications of the ACM. V.40. Dec. Sun Java Wireless Toolkit for CLDC. URL: http://java.sun.com/products/sjwtoolkit/ Austerberry, D. (2004) The Technology of Video and Audio Streaming. Focal Press. Cunha, C. (2007) Tecnologias de Streaming em Contextos de Aprendizagem. Dissertação de Mestrado, Universidade Uminho. URI: http://hdl.handle.net/1822/6400 Tanenbaum, A.S. (2003) Redes de computadores. Campus. Mobile Media API Sun. URL: http://java.sun.com/products/mmapi/.