Vous êtes sur la page 1sur 52
UCSAL – UNIVERSIDADE CATÓLICA DO SALVADOR CURSO DE BACHARELADO EM INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA Jailson

UCSAL – UNIVERSIDADE CATÓLICA DO SALVADOR

CURSO DE BACHARELADO EM INFORMÁTICA

DEPARTAMENTO DE INFORMÁTICA

Jailson do Amor Divino Santos da Silva

STITCH 2.0 – UMA FERRAMENTA PARA VISUALIZAÇÃO DE SEGMENTOS DE VÍDEO

Salvador - BA

2009

Jailson do Amor Divino Santos da Silva

STITCH 2.0 – UMA FERRAMENTA PARA VISUALIZAÇÃO DE SEGMENTOS DE VÍDEO

Monografia apresentada por Jailson do Amor Divino Santos da Silva ao Departamento de Informática da Universidade Católica do Salvador como requisito parcial para aprovação na disciplina Projeto Final.

Orientador: Prof. Msc. Edeyson Gomes.

Salvador – BA

2009

UCSAL – UNIVERSIDADE CATÓLICA DO SALVADOR BACHARELADO EM INFORMÁTICA

STITCH 2.0 – UMA FERRAMENTA PARA VISUALIZAÇÃO DE SEGMENTOS DE VÍDEO

Cláudio Neiva Edeyson Andrade Gomes Osvaldo Requião

Salvador - BA

2009

CERTIFICADO

Certifico que a presente memória STITCH 2.0 – UMA FERRAMENTA PARA VISUALIZAÇÃO DE SEGMENTOS DE VÍDEO, foi realizada, sob a minha orientação, por Jailson do Amor Divino Santos da Silva, constituindo o Projeto Final do curso de Bacharelado em Informática da Universidade Católica do Salvador – UCSal.

Salvador, 11 de Julho de 2009.

Orientador:

Edeyson Andrade Gomes

Salvador – BA

2009

AGRADECIMENTOS

Primeiramente, agradeço a Deus por me conceder a vida, por estar sempre do meu

lado me dando saúde e força para lutar, tanto nos momentos de alegria quanto nos de tristeza.

A minha mãe Janete por ser essa pessoa maravilhosa e guerreira que és. Por investir

em mim todos esses anos, por enfrentar tudo e todos para que eu e meus irmãos sejamos sempre pessoais de bem e comprometidas com o futuro e por sempre esta ao meu lado, pois sem a senhora mãe seria bem mais difícil chegar aqui.

A meu irmão Jean Carlos pelo apoio e conselhos nos momentos oportunos e também

por ser um exemplo de perseverança a ser seguido. A minha noiva Jamile pela paciência, carinho, companheirismo e consideração aplicados ao longo desse período de faculdades, pois foi de fundamental importância tal

compreensão. Ao meu “pai astro” Jorge por sempre incentivar a mim e aos meus irmãos a estudar,

nunca desistir de sermos pessoas melhores sempre respeitando o espaço do próximo e por estar sempre presente em minha vida nos momentos mais importantes.

A minha família como um todo, pois acredito e sempre vou acreditar que a família é à

base de tudo em nossa vida.

Aos amigos, colegas de faculdade, colegas de trabalho e todos aqueles que acreditaram em mim, e sempre me incentivaram a não desistir jamais dos meus estudos.

A todos os professores da UCSal pelo profissionalismo e dedicação aplicados nesses

cinco anos. Em especial agradeço ao meu orientador Prof. Msc. Edeyson Gomes pela confiança, profissionalismo, comprometimento e respeito que possui para com os seus alunos de todas as instituições de ensino que faz parte hoje. Muito Obrigado a todos!

“A tecnologia digital

necessidades desnecessárias, que se tornam absolutamente imprescindíveis”

(Joelmir Beting)

criar

é

a

arte

de

RESUMO

O objetivo deste projeto foi promover a evolução do STITCH, uma ferramenta de visualização de vídeo anotado desenvolvida na UCSAL por Melilla Andrade e Daniela Guedes, orientadas pelo professor Edeyson Andrade Gomes. Pretendeu-se melhorar a forma como os usuários interagem com a ferramenta, através do acréscimo de uma tela adicional contendo as anotações do vídeo e foram incluídos links nas anotações dos vídeos viabilizando o acesso direto ao trecho do vídeo desejado para com isso prover ao usuário uma interface mais completa e de fácil manuseio, proporcionando assim uma interação maior dos consulentes com a mesma. Além das alterações anteriormente informadas pretendeu-se criar a opção do idioma inglês, visando disponibilizar uma opção adicional de língua e abranger um número maior de usuários. A ferramenta STITCH foi desenvolvida através da tecnologia HTML+TIME pelo fato da mesma permitir o sincronismo entre texto e vídeo. As alterações visando seu aprimoramento serão feitas utilizando a linguagem PHP pelo fato da mesma atender aos requisitos da aplicação e ser direcionada para o desenvolvimento de aplicações web.

Palavras-chave: Web, vídeo, MPEG-7, XML, anotações, recuperação, HTML+TIME,

PHP.

LISTA DE FIGURAS

Figura 3.1 - Escopo do MPEG-7

21

Figura 3.2 - Principais elementos do MPEG-7

23

Figura 5.1 - Utilização do atributo begin

28

Figura 5.2 - Utilização dos métodos beginElement(), resumeElement() e endElemen()

29

Figura 5.3 – A interação síncrona padrão tradicional de uma aplicação web (superior) em

comparação com o padrão assíncrono de uma aplicação AJAX

31

Figura 5.1 - Estrutura resumida do XML

34

Figura 5.2 - Arquitetura da solução

36

Figura 5.3 - Tela Listagem dos Vídeos

42

Figura 5.4 - Tela de Seleção da Língua

43

Figura 5.5 - Tela Listagem das Marcações

44

Figura 5.6 - Tela de Reprodução do Vídeo

45

Figura 5.7 – Ajuste automático da tela para exibição completa do conteúdo

46

Figura 5.8 - Controles do Vídeo

47

LISTA DE LISTAGENS

Listagem 5.1 – Recuperação de informações do vídeo

37

Listagem 5.2 – Código para exibição das marcações

37

Listagem 5.3 – Código para inclusão da biblioteca Jquery

38

Listagem 5.4 – Código para exibição das marcações

39

Listagem 5.5 – Código para avançar ou voltar o vídeo

39

Listagem 5.6 – Identificação da tecnologia HTML+TIME

40

Listagem 5.7 – Declaração do atributo style

40

Listagem 5.8 – Importação do comportamento time2

40

Listagem 5.9 – Código para chamada das marcações

41

LISTA DE ABREVIATURAS

AJAX - Asynchronous JavaScript and XML

CASE - Computer Aided Sotfware Engineering

CGI - Common Gateway Interface

CSS - Cascading Style Sheets

CSS2 - Cascading Style Sheets - Level 2

D - Descriptors

DDL - Description Definition Language

DOM - Document Object Model

DS - Description Schemes

FI - (Form Interpreter)

HTML - HyperText Markup Language

HTML+TIME - Timed Interactive Multimedia Extensions

MPEG - Moving Picture Experts Group

OLAP - On-line Analitical Processing

PHP - PHP Hypertext Pre-processor

SMIL - (Synchronized Multimedia Integration Language),

URL - Uniform Resource Locator

W3C - World Wide Web Consortium

XML - Extensible Markup Language

SUMÁRIO

1 INTRODUÇÃO

 

13

2 MANIPULAÇÃO DE VÍDEO

15

2.1

ANOTAÇÃO EM VÍDEO

16

2.1.1

A Importância da Anotação

17

2.2

RECUPERAÇÃO DE VÍDEOS

18

3

PADRÕES DE INDEXAÇÃO E FERRAMENTAS

20

3.1

O PADRÃO MPEG-7

20

3.1.1

Estrutura do Padrão MPEG-7

21

3.2 SMIL

 

25

3.3 ANNODEX( Annotation And Indexing)

25

3.4 CONSIDERAÇÕES FINAIS

25

4

TECNOLOGIAS ASSOCIÁVEIS AO MPEG-7

27

4.1 HTML+TIME

 

27

4.2 AJAX

29

5

STITCH

32

5.1 REQUISITOS

 

32

5.2 ARQUITERURA DO STITCH

34

5.3 AMBIENTE DE EXECUÇÃO

37

5.3.1 Jquery

 

38

5.3.2 Utilização do HTML+TIME no STITCH

39

5.3.3 SimpleXML

 

41

5.4

INTERFACE DO STITCH

41

5.4.1 Tela

de

Listagem dos Vídeos

41

5.4.2 Tela de Seleção da Língua

42

5.4.3 Tela

de

Listagem das Marcações

43

5.4.4 Tela de Repodução do Vídeo

44

5.4.4.1 Área de Exibição do Conteúdo das Marcações

45

5.4.4.2 Controle dos Vídeos

47

5.5 LIMITAÇÕES DO STITCH

47

6

CONCLUSÃO

49

REFERÊNCIAS

13

1

INTRODUÇÃO

Atualmente a área de informática ainda se depara com alguns desafios a serem ultrapassados, como, por exemplo, a grande quantidade de dados multimídia disponíveis e sua recuperação de forma eficiente e eficaz. A ausência de semântica associada ao conteúdo multimídia é um dos fatores que dificulta a recuperação de forma precisa.

Segundo Konrath (2005), a utilização de vídeos ganhou importantes recursos com a utilização de padrões, como MPEG-7, que auxiliam a descrevê-los de forma padronizada, possibilitando a busca de vídeo ou parte dele. O processo de recuperação de informação consiste em identificar, no conjunto de documentos de um determinado sistema, quais satisfazem as reais necessidades do usuário, ou seja, o usuário está interessado em recuperar informações sobre determinado contexto e não simplesmente em recuperar dados ou documentos que atendem sua expressão de busca (FERNEDA, 2003). Com a necessidade de recuperar segmentos de um vídeo (ao invés de todo o vídeo) utilizou-se a anotação, que tem como principal objetivo descrever a informação multimídia. Segundo Neto (2005), as anotações textuais são utilizadas para permitir uma descrição eficaz do seu conteúdo, pois elas adicionam muito mais conhecimento e semântica ao conteúdo de um vídeo do que poderia ser obtido através das técnicas atuais de visão computacional e de reconhecimento de padrões de imagem e áudio.

O objetivo principal do presente projeto foi aprimorar a forma como os segmentos de vídeo são exibidos juntamente com suas anotações no sistema STITCH, visando tornar mais simples a busca cena desejada. Hoje os mesmos são mostrados em uma tela única contendo o bloco de exibição, controle e marcações do vídeo, o que acarreta a utilização de barra de rolagem no bloco das marcações quando existe mais de um comentário no mesmo instante. Para isso propõe-se criar uma tela adicional contendo as marcações do vídeo selecionado e nestas incluir links que levam direto ao referido trecho do vídeo. Além disso, pretendeu-se disponibilizar ao usuário a opção de visualizar marcações em inglês.

No capítulo dois apresentam-se as dificuldades enfrentadas hoje para a manipulação de vídeos na web, bem como o conceito de anotações em vídeo, seus tipos

14

e sua importância. No capítulo três descreve-se a especificação do padrão de indexação MPEG-7, suas características, objetivos e estrutura, além dos padrões SMIL e ANNODEX.

No capítulo quatro detalhamos os conceitos, características e objetos das tecnologias associadas ao MPEG-7, que no caso do presente projeto são: HTML+TIME e AJAX.

No capítulo cinco são mostradas as modificações propostas neste projeto. Concluindo o trabalho, o capítulo seis apresenta sugestões para trabalhos futuros visando aprimorar ainda mais a solução tratada neste projeto.

15

2 MANIPULAÇÃO DE VÍDEO

Devido a pouca ou nenhuma descrição semântica dos vídeos que são colocados na WEB, a recuperação precisa das informações é dificultada.

Uma solução para os problemas de captura de conhecimento em vídeo é a associação de metadados aos seus conteúdos. É de fundamental importância o desenvolvimento de abordagens que organizem e estruturem de maneira eficiente e particular o dado multimídia. Através do uso de informações de alto nível contidas nos metadados isso é possível. Hoje, a grande parte das soluções para organização, identificação, segurança, descrição, localização e indexação de informações digitais são implementadas a partir de metadados (REHEM, 2004).

Metadado é uma abstração do dado capaz de indicar se uma determinada base de dados existe, quais são os atributos de uma tabela e suas características, tais como:

tamanho e/ou formato (CERQUEIRA, 2004). Os metadados são constituídos de informações genérica (descrevem o vídeo como um todo) e de informações específicas (descrevem o conteúdo do vídeo) (DEL BIMBO, 1999).

Com base nas informações fornecidas pelo o usuário, os metadados podem ser criados através de texto livre, sem nenhum tipo de limitação, ou podem ser voltados para um domínio que deve ser formalizado e conhecido através de uma ontologia (SAIBEL, 2007). Segundo Freitas (2003) ontologia é uma forma estruturada do conhecimento, dentro de uma determinada área de domínio que possui algumas vantagens como:

Reuso da informação;

A portabilidade;

Padronização Objetivada de Termos;

Formalização dos Conceitos.

16

Tais

vantagens

caracterizam

uma

gerenciamento da informação.

descrição

2.1 ANOTAÇÃO EM VÍDEO

adequada

que

facilita

o

O surgimento do vídeo veio agregar maior riqueza de informações, o que vem despertando interesses de comunidades de busca e indexação de dados, pois é muito relevante o caráter dinâmico que os vídeos apresentam. A área da informática já se deparou com muitos desafios. A modelagem de um vídeo para permitir uma indexação em seu conteúdo e para propiciar aos usuários uma efetiva interface de acesso para busca e navegação neste mesmo conteúdo é um desses desafios, mas uma vez que a extração automática da semântica de um vídeo (ou parte dele) ainda é um problema a ser resolvido, as anotações textuais em vídeos são utilizadas para permitir uma descrição eficaz do seu conteúdo. A descrição desse conteúdo deve ser realizada a partir da necessidade e compreensão do consulente que esta manipulando o vídeo (MELO,

2007).

Saibel (2007) afirma que as anotações podem ser classificadas das seguintes maneiras:

Anotações para enriquecimento de conteúdo: Permite a inserção de outros objetos visuais no vídeo original, de maneira que as informações possam ser compartilhadas, de modo a facilitar a compreensão de outro usuário que esteja buscando a mesma informação. Esses aspectos facilitam o entendimento do conteúdo, pois os trechos que são relevantes ao usuário são salientados, o que torna este tipo de anotação facilmente adaptável para vídeos de fins educacionais.

Anotações para descrição de conteúdo: São utilizados metadados associados ao conteúdo do vídeo com a finalidade de enriquecê-lo e complementá-lo, através de um desenvolvimento de abordagens bem definidas e organizadas. Nesse conteúdo pode ter informações genéricas (utilizadas para descrever o vídeo como um todo) como exemplo nome do

17

autor, formato, etc. ou específicas (descreve o conteúdo presente nos vídeos).

Uma observação importante a ser feita é que um arquivo de vídeo quando separado do arquivo de conteúdo precisa de ferramentas de gerenciamento de conteúdo para que a ligação e sincronização entre eles seja estabelecida.

Neto (2005) afirma que funcionalidades de ferramentas deste tipo que podem ser implementadas são:

Associação do vídeo com suas anotações levando em conta o tempo (segundos ou milissegundos), ou quadros (frame);

Atributos que identifiquem o real momento em que a anotação foi associada ao vídeo;

Permissão de alteração consulta e inserção da anotação pelo usuário;

Navegação pelo conteúdo anotado para fácil visualização de todo o conteúdo existente para determinado vídeo.

Estas funcionalidades tornam o gerenciamento do vídeo mais fácil, pois possibilitam a visualização direta, não precisando assim percorrer o conteúdo inteiro até chegar ao ponto de interesse (VIEIRA, 2005).

2.1.1 A Importância da Anotação

É percebível a grande importância que as anotações em vídeo têm não só na área da informática, mas também em áreas como educação, saúde, segurança, etc. Anotações essas que ajudam a compreender melhor as informações, o que por sua vez facilita bastante a utilização dessas informações digitais em vídeo, pois a partir das anotações é possível selecionar as partes mais importantes de um vídeo de acordo com a necessidade de cada usuário.

A utilização de vídeos educacionais no processo de ensino e aprendizagem ganhou importantes recursos com o surgimento de padrões, como o MPEG-7, que

18

auxiliam descrevê-los de forma padronizada, possibilitando a busca e seleção de vídeos ou partes dele. A utilização das descrições MPEG-7, escritas em XML e integradas a um repositório de materiais audiovisuais, possibilitarão aos professores de forma simples e rápida, localizar vídeos educacionais adequados para o apoio em sala de aula. Adicionalmente servirá como ferramenta para que o aluno navegue, de forma

hipertextual, nos diversos vídeos armazenados neste repositório”. (Novas Tecnologias

na Educação, CINTED-UFRGS, 2005)

Podemos perceber o quanto a informática pode ser útil nas diversas áreas existente, e como foi citado acima também na área de educação. Sendo assim, o usuário deixa de apenas assistir o vídeo, e sim selecionar as partes do vídeo que lhe convém, deixando assim de ser um agente passivo e se tornando um agente ativo, facilitando assim os processos de construção do conhecimento decorrente da efetiva participação do aluno (TIMM, 2003).

2.2 RECUPERAÇÃO DE VÍDEOS

Para falarmos de recuperação de vídeos é necessário que entendamos o conceito de recuperação de informações, pois a maioria dos sistemas de recuperação de vídeos parte do princípio da recuperação de informação. Calvin Mooers nos dá a seguinte definição:

“A recuperação de informação trata dos aspectos intelectuais da descrição da informação e sua especificação para busca e também de qualquer sistema, técnicas ou máquinas que são empregadas para realizar esta operação” (MOOERS, 1951, p.25).

A recuperação de informação é de extrema importância na utilização de um vídeo, pois é através dela que as informações são obtidas de maneira eficazes e eficientes de forma que sejam passadas para o usuário apenas aquelas potencialmente relevantes às suas necessidades, tornando as informações digitais mais claras e objetivas e de fácil entendimento. Mas, para que a recuperação de informação consiga atingir melhores resultados é necessário que os dados pré-analisados estejam subordinados a um tratamento como catalogação, indexação e classificação. São componentes como visualização, descrição e indexação, que influenciam diretamente na distribuição da informação e na sua recuperação (TAVARES, 2007).

19

Com isso, a utilização de padrões que possibilitam a criação de descrições textuais em diferentes níveis de abstração para conteúdo multimídia (em especial o vídeo) surge para facilitar sua compreensão, pois estes disponibilizam meios para acesso de tal forma que sua consulta, recuperação e seu gerenciamento sejam eficientes e satisfatórios.

A ausência de uma formalização para descrever vídeos e para classificá-los torna seu processo de recuperação menos preciso e mais complexo, fazendo com que este possa retornar resultados sem nenhuma ou pouca relevância. Diante disto é de extrema importância padronizar as informações utilizadas para descrever o conteúdo do vídeo (GUEDES, 2008; ANDRADE, 2008).

Baeza-Yates e Ribeiro Neto (1999) afirmam que um sistema de recuperação de informação lida com as tarefas de representação, armazenamento, organização e acesso a itens de informação. É através da recuperação de informações que as várias formas de expressões digitais podem ser aproveitadas para obter resultados positivos com maior precisão e que facilitem a comunicação na internet.

20

3 PADRÕES DE INDEXAÇÃO E FERRAMENTAS

Atualmente um grande volume de informações multimídia na forma de arquivos digitais de áudio, vídeos e imagens são criados e estão disponíveis na Internet.

A crescente utilização de vídeos digitalizados ganhou importantes recursos com

o surgimento de padrões (MEPG-7, SMILL e ANNODEX), que permitem descrevê-los

e indexá-los de forma padronizada. São ferramentas que possibilitam a busca e seleção de vídeos ou partes deles.

3.1 O PADRÃO MPEG-7

Formalmente chamado de Interface de Descrição de Conteúdo Multimídia, o padrão MPEG-7 foi desenvolvido em meados de 1996 pelo grupo MPEG (Moving Picture Experts Group), um grupo de trabalho da ISO / IEC criado em 1988, encarregado pelo desenvolvimento de padrões para representação codificada de áudio e vídeo digitais. Grupo este também responsável pelo desenvolvimento dos padrões MPEG-1, MPEG-2 e MPEG-4 (MARTINEZ, 2004).

Segundo Hunter (2000), o padrão MPEG-7 tem o objetivo de fornecer um rico conjunto de instrumentos padronizados para descrever o conteúdo multimídia. Trata-se de um padrão único que fornece um simples, flexível e interoperável solução para os problemas de indexação, pesquisa e recuperação dos recursos multimídia.

Martinez (2004) afirma que o MPEG-7 não é destinado a uma aplicação em particular, mas sim que os elementos que o MPEG-7 possui padronizam um apoio amplo a um leque de aplicações possíveis.

O MPEG-7 descreve as características de conteúdos multimídia para que os

usuários possam pesquisar e recuperar estes conteúdos de forma similar ao que ocorre

nos mecanismos de busca no WWW (World Wide Web). Para a criação destas descrições, o MPEG-7 disponibiliza um conjunto de elementos de metadados descritos em XML. Além das descrições textuais em arquivos XML, muitas vezes extensas, o MPEG-7 especifica descrições em formato binário, o BiM, permitindo o streaming e a compressão em até 98% das descrições (TAROUCO, 2005).

21

Guedes e Andrade (2008) afirmam que o MPEG-7 padroniza a sintaxe e a semântica das informações contidas nas descrições de conteúdo audiovisual. Para o padrão o que importa é como as informações estão descritas e não como foram extraídas. O modo como as descrições serão obtidas não têm restrição, podem ser criadas de forma automática ou manual.

Podemos visualizar na figura 3.1 um diagrama de bloco onde é possível observar o fluxo básico de processamento do MPEG-7. Nele é incluída a análise do conteúdo (extração das características), a descrição propriamente dita e as operações de pesquisa (Andrade;Guedes, 2008). Martinez (2004) afirmar que se as ferramentas de extrações automáticas estivessem mais avançadas, as possibilidades do padrão poderiam ser muito melhor aproveitadas.

do padrão poderiam ser muito melhor aproveitadas . Figura 3.1 - Escopo do MPEG-7. Fonte: (Martínez,

Figura 3.1 - Escopo do MPEG-7. Fonte: (Martínez, 2004).

Com isso, como mostra a figura 3.1, todas as ferramentas de busca, filtros e aplicações que possam fazer uso das descrições não estão no padrão do escopo, o que permite que tal sistema seja aperfeiçoado.

3.1.1 Estrutura do Padrão MPEG-7

O padrão MPEG-7 dispõe de um conjunto de ferramentas de descrição (Description Tools), representados por componentes com metadados, e suas estruturas e relacionamentos, definidos na forma de descritores (Descriptors) e esquemas de descrição (Description Schemes) para criar descrições que serão utilizadas por ferramentas com funções para pesquisar, filtrar e navegar de forma eficiente em conteúdos multimídia (CHELLA, 2003). As descrições anotadas são associadas com cada parte de vídeo e armazenadas como uma descrição MPEG-7 em um arquivo XML.

22

Segundo Chella (2003), o propósito do padrão MPEG-7 é determinar um conjunto de métodos e ferramentas que viabilizem o acesso pelas mais variadas aplicações nos mais diversos ambientes, desta forma tem-se a necessidade de se utilizar um modelo flexível e com possibilidades de extensões. A tecnologia que possui este requisito é o XML que foi utilizado como linguagem para representação textual da descrição de conteúdo. O XML Schema é a base para o DDL (Description Definition Language - DDL), usada para a definição sintática das ferramentas de descrição (Descriptions Tools).

Os componentes mais importantes da norma MPEG-7 são os (Descritores – D), (Esquemas de Descrição – DS), (Linguagem de Definição de Descrição – DDL) e Ferramentas de Sistema (Zibreira, 2004).

Descritores representam uma característica. Define a sintaxe e a semântica da representação da característica. Os descritores foram desenvolvidos para descrever características de baixo nível, como cor, textura, localização e tempo, que podem ser extraídas automaticamente por aplicações.

O Esquema de Descrição descreve características audiovisuais de alto nível, como regiões, segmentos e objetos, que devem ser extraídas com a ajuda de ferramentas auxiliares. Os DSs são compostos por vários Descritores e outros Esquemas de Descrição. Define a estrutura e semânticas dos relacionamentos entre seus componentes.

A Linguagem de Definição de Descrição é uma linguagem que permite a criação de novos DSs e Ds e a extensão e modificação dos Esquemas de Descrição e Descritores existentes. No padrão MPEG-7 isso pode ser visto no formato XML onde são armazenadas as descrições.

As Ferramentas de Sistema servem para dar suporte a multiplexação de descrições, sincronização das descrições com o conteúdo, mecanismos de entrega, e representações codificadas para armazenamento e transmissão eficientes e gerencia e proteção de propriedade intelectual.

23

A seguir temos a figura 3.2 que ilustra a relação entre os diferentes elementos já descritos.

a relação entre os diferentes elementos já descritos. Figura 3.2 - Principais elementos do MPEG-7. Fonte:

Figura 3.2 - Principais elementos do MPEG-7. Fonte: (Martínez, 2004).

O padrão MPEG-7 é composto de diversas partes, que podem ser utilizadas separadamente conforme o objetivo principal da aplicação (MARTINEZ, 2004).

MPEG-7 Systems – Descreve o sistema de ferramentas para preparar as Descrições MPEG-7 para transporte e armazenamentos eficientes para viabilizara sincronização entre conteúdo e descrições. O padrão MPEG-7 utiliza dois formatos para armazenar as descrições. Um formato binário chamado de BiM e um formato textual, chamado de TeM. O ultimo formato armazena as informações em arquivos XML. Enquanto que o formato binário é mais compacto e rápido, o formato textual em XML pode ser facilmente lido por uma pessoa e é padronizado e bastante difundido;

Linguagem de Definição de Descrição MPEG-7 (DDL) – Proporciona a criação de novos Descritores e Esquemas de Descrição e estender os existentes. A DDL adiciona extensões ao XML para atender requerimentos do MPEG-7, como suporte a vetores e matrizes;

24

MPEG-7 Visual – Refere-se às ferramentas para descrições somente visuais, como cor, textura, forma, movimento, localização e reconhecimento de faces;

MPEG-7 Áudio – Refere-se às ferramentas para descrições somente de áudio, como reconhecimento de som, timbre instrumental, falas, assinaturas de áudio e melodias;

Esquemas de Descrições Multimídia MPEG-7 - Diz respeito aos Descritores e Esquemas de Descrição que não são específicos para áudio e vídeo, como vetores, tempo e descrição textual. São especificadas ainda as ferramentas avançadas como as de descrição, gerenciamento, organização, navegação, acesso e uso de conteúdo.

Software de referencia MPEG-7 (MPEG-7 XM) - Implementação das partes listadas do padrão MPEG-7. O Software de referencia MPEG-7 é normativo com respeito ao padrão de decodificação. Isto significa que todas as implementações compatíveis devem produzir os mesmos resultados decodificados que o software de referência. O software de referencia pode ser utilizado livremente para o desenvolvimento de aplicações MPEG-7, respeitando os direitos autorais.

As descrições de conteúdo do MPEG-7 devem incluir, segundo Martinez (2004) as seguintes in formações:

Informações sobre o vídeo como identificação do autor, diretor, título;

Descrição da forma de armazenamento do conteúdo (Ex: binário, textual);

Informações relacionadas com a utilização do conteúdo, ou seja, identificar segmentações do vídeo, cenas;

Interação com o usuário, entre outros.

Estas descrições devem ser utilizadas com a finalidade de agilizar a busca, captura e filtro das informações desejadas.

25

3.2 SMIL

O SMIL (Synchronized Multimedia Integration Language) possibilita a criação

de apresentações audiovisuais interativas. O SMIL é tipicamente utilizado para apresentações multimídia do tipo “rich media”, que são a união de áudio e vídeo streaming, texto ou qualquer outro tipo de arquivo. O SMIL é uma linguagem baseada no XML, trabalhando com tags semelhantes ao HTML (HyperText Markup Language), que pode ser editado por qualquer editor de texto comum, pois os elementos multimídia não são inseridos, somente referenciados. Com o SMIL é possível gerenciar a transmissão de arquivos multimídia por streaming, sincronizando estes arquivos com

animações flash, páginas HTML, figuras, etc (DUTRA, 2004).

3.3 ANNODEX – Annotation and Indexing

O padrão Annodex possibilita a manipulação de arquivos de tempo-contínuo

(áudio e vídeo) na Web. O formato Annodex, junto com o CMML (Continuous Media Markup Language), o Temporal URI Reference, servem de base para viabilizar a busca e navegação através de arquivos de tempo – contínuo. Permite a especificação de âncoras em bitstreams de tempo-contínuo, juntos com anotações textuais no formato de hiperlinks URI. Estas âncoras são anexadas sincronizadamente com os arquivos de tempo-contínuo, quando desenvolvidas no formato Annodex. Este formato permite ainda a encapsulação de qualquer arquivo do tipo streaming, independente dos formatos. Adicionalmente, as tags XML escolhidas pelo Annodex são semelhantes ao do XHTML, facilitando assim a vida dos desenvolvedores de conteúdos. O principal objetivo do Annodex é permitir a integração de arquivos de tempo-contínuo dentro das funcionalidades de procura e navegação existente na Web (DUTRA, 2004).

3.4 CONSIDERAÇÕES FINAIS

Os padrões anteriormente descritos não são os únicos, nem os últimos voltados para a recuperação e descrição de informações digitais, porém com base neles consegue-se ter um conjunto básico de opções. Segundo Tarouco (2005), o padrão MPEG-7 se destaca entre estes e os demais, por ser desenvolvido pela ISO e por ter sido criado especialmente com a finalidade de descrever e indexar vídeo, e que seu diferencial é sua abrangência, pois é possível através deste fazer descrições que nos

26

permitem indexar não apenas palavras-chaves em determinados intervalos do vídeo, mas também viabiliza a indexação por padrões de imagem, som e outros tipos de descrição.

Como se pode perceber o padrão MPEG-7 se diferencia de outros padrões como SMIL e ANNODEX por suportar inúmeros níveis de abstração, de caracteres de baixo nível até informação semântica de alto nível. Sott (2005) afirma que o MPEG-7 padroniza a sintaxe e a semântica das informações contidas nas descrições de conteúdo audiovisual.

O padrão MPEG-7 sugere ainda sistemas de extração automática de características audiovisuais e sistemas de busca e armazenamento de mídia, porém não é obrigatória a utilização dos mesmos para estar de acordo com o padrão, pois para que ocorra a leitura das informações o que importa é como estão descritas e não como foram extraídas. Com isso o padrão MPEG-7 possibilita que a concorrência entre as empresas possa melhorar os sistemas de busca e extração de informações (SOTT, 2005).

27

4 TECNOLIGIAS WEB ASSOCIAVEIS AO MPEG-7

Nesta parte do presente trabalho serão descritas as tecnologias HTML+TIME e Ajax, juntamente com seus conceitos, objetivos e características, pelo fato destas, além de formarem a base do projeto STITCH, serem os principais alicerces à visualização de vídeo segmentado na Web.

4.1 HTML+TIME

Timed Interactive Multimedia Extensions (HTML+TIME) foi implementada por uma equipe de colaboradores das empresas Microsoft, Macromedia e Compaq / Digital, integrantes da comissão de desenvolvimento do SMIL (Synchronized Multimedia Integration Language), e é um padrão de sincronização multimídia. Trata-se de uma proposta submetida ao W3C (World Wide Web Consortium) com a finalidade de unir interatividade e temporização à linguagem HTML ao adicionar novos atributos e componentes (W3C, 1998).

HTML+TIME tem como base a utilização da linguagem HTML (HTML, 1998) e de CSS2 (Cascading Style Sheets - Level 2) (CSS2, 1998) para exposição e modelagem dos componentes, da linguagem XML (XML, 1998) para soma de dados estruturados e da linguagem SMIL (SMIL, 1998) para determinar comportamentos temporais e interativos em um determinado documento.

O HTML+TIME proporciona inúmeras vantagens aos desenvolvedores HTML, pois não é necessário que estes mudem a forma como desenvolvem atualmente para descrever estrutura e temporização em seus documentos, basta acrescentar novos atributos para os elementos HTML, o qual ficará mais dinâmico e interativo.

O objetivo principal do HTML+TIME é integrar vídeo, imagem, áudio, e/ou texto numa única aplicação, definindo quando e por quanto tempo devem permanecer válidas cada uma destas mídias (MICROSOFT, 2002).

Com a utilização desta tecnologia os documentos terão seu comportamento temporal definido através de atributos que indicam o início, o fim e a duração dos elementos a serem exibidos como também o número de vezes que deve ser repetido em seqüência.

28

Os atributos e propriedades se diferenciam pela forma como são utilizados, pois os atributos são aplicados junto com as tags HTML e as propriedades são usadas através de scripts.

Seguem alguns atributos:

begin – Define em segundos quando um elemento deverá ser exibido;

dur – Define por quanto tempo o elemento ficará ativo;

end – Especifica o prazo final do elemento. A duração normal de todos os elementos HTML é indefinida;

repeatDur – Determina que um elemento permanecerá ativo dentro da duração especificada, sendo esta duração indeterminada o elemento só será interrompido por outro evento.

Por exemplo:

só será interrompido por outro evento. Por exemplo: Figura 4.1 Utilização do atributo begin A figura

Figura 4.1 Utilização do atributo begin

A figura 4.1 nos mostra a utilização do atributo begin. Conforme o presente exemplo, a ativação do objeto se dará a partir da interação do consulente, pois o valor do atributo begin é indefinido. Caso o valor do atributo tivesse definido o mesmo seria iniciado após determinado valor em segundos.

Alguns métodos da linguagem controlam a exibição dos elementos, por exemplo: beginElement(), resumeElement() e endElement(), para determinar o início da exibição de um elemento, a continuidade e o seu término respectivamente.

29

29 Figura 4.2 Utilização dos métodos beginElement (), resumeElement () e endElement (). A figura 4.2

Figura 4.2 Utilização dos métodos beginElement(), resumeElement() e endElement().

A figura 4.2 nos mostra a utilização desses três métodos. Na linha 3, caso exista um evento do tipo Play, é verificado se na linha 4 um evento do tipo Avançar está habilitado, se tiver, o método beginElement() é ativado na linha 5 e o elemento será exibido, senão, o método resumeElement() será acionado na linha 7 e o elemento continuará de onde parou. Na linha 17, caso exista um evento do tipo Stop, o método endElement() será ativado na linha 24 marcando o fim do elemento.

4.2 AJAX

Segundo Silveira (2005), oficialmente o Ajax significa Asynchronous JavaScript and XML, podendo ser melhor definido como uma metodologia de desenvolvimento que utiliza diversas tecnologias disponíveis nos browsers atuais para melhorar a interface de aplicações Web. Para que essa melhora da interface ocorra é necessário que alguns elementos e tecnologias se unam, pois segundo o pessoal da Adaptive Path, empresa que desenvolveu o AJAX, o mesmo não é uma tecnologia e sim uma forma de criar sites utilizando diversas tecnologias. São elas:

Web standards e CSS: Sites desenvolvidos conforme os padrões da W3C (World Wide Web Consortium) e utilizando a tecnologia CSS, que separa o que é programação, o que é conteúdo e o que é estilo visual.

30

DOM (Document Object Model): É um padrão de estrutura do HTML para que a programação encontre o que é necessário dentro de uma página sem problemas.

XML (Extensible Markup Language): Um padrão de linguagem que torna mais fácil a transferência de dados entre um banco de dados e outra interface qualquer.

XML Http Request: Conjunto de ferramentas que possibilitam que os dados perpassem de forma assíncrona.

JavaScript: Responsável pela união dos elementos e tecnologias citadas anteriormente.

Uma aplicação AJAX elimina a forma natural de interação hoje na Web, na qual a cada interação do usuário a página é totalmente carregada, através da introdução de um elemento intermediário - um “motor” Ajax - entre o usuário e o servidor.

Ao invés de carregar uma página da Web, no início da sessão, o navegador carrega um “motor” Ajax escrito em Javascript e, geralmente, adicionado em uma moldura oculta. Este “motor” é responsável tanto por tornar a interface do usuário mais amigável quanto se comunicar com o servidor. O “motor” Ajax permite que a interação do usuário com a aplicação ocorra assincronamente, ou seja, independente da comunicação com o servidor. (GARRETT, 2005)

31

31 Figura 4.3 - A interação síncrona padrão tradicional de uma aplicação web (superior) em comparação

Figura 4.3 - A interação síncrona padrão tradicional de uma aplicação web (superior) em comparação com o padrão assíncrono de uma aplicação Ajax (parte inferior). Fonte: (GARRETT, 2005).

Conforme figura 4.3, uma ação do usuário que, geralmente, levaria a uma solicitação HTTP tem a forma de uma chamada ao "motor" Ajax – Javascript 1 . Desta maneira qualquer resposta a uma ação do usuário que não requer uma consulta ao servidor - como uma simples validação de dados, edição de dados na memória, etc. - o "motor" traz por conta própria. Caso o "motor" necessite de algo que dependa do servidor para disponibilizar uma resposta, o mesmo realiza as consultas assincronamente, normalmente usando XML, sem aguardar uma interação do usuário com o browser.

1 Linguagem de ambiente Web executada na máquina do cliente, de processamento local e compatível com os navegadores mais conhecidos (Internet Explorer, Mozilla Firefox, entre outros).

32

5

STITCH

Segundo Andrade e Guedes (2008), o STITCH tem como objetivo mostrar uma solução para visualização de vídeos descritos no padrão MPEG-7 através de uma interface Web, assim como facilitar o processo de recuperação a partir da navegação entre suas marcações. Tal navegação permite que a cena desejada seja visualizada ao mesmo tempo em que é mostrada sua descrição semântica, ou seja, sua marcação ou suas marcações. O projeto STITCH utiliza a biblioteca Jquery, que faz parte do conjunto de bibliotecas do Javascript e que chama a atenção dos programadores por ser leve e de fácil manuseio.

No presente capítulo serão abordadas a arquitetura e as modificações realizadas no STITCH.

5.1 REQUISITOS

O presente projeto tem o objetivo de viabilizar a visualização completa do vídeo descrito no padrão MPEG-7, permitindo assim o acesso direto aos trechos do vídeo de interesse do usuário. O acesso direto ao trecho desejado será possível a partir da seleção de uma marcação na lista de marcações, que será exibida ao lado do vídeo em reprodução numa tela adicional que foi incluída na tela de reprodução do vídeo. Além disso, à medida que o vídeo é reproduzido a marcação referente ao trecho em reprodução é selecionada automaticamente sinalizando ao usuário a qual marcação se refere tal parte do vídeo. Tal ferramenta deve possibilitar também que o usuário tenha a opção de assistir as anotações do vídeo em inglês. Para isso foi criada a tela de seleção da língua, a qual é exibida após a seleção do vídeo desejado. A presente solução deve permitir que o vídeo e sua respectiva anotação sejam exibidos de forma sincronizada e que o usuário possa interagir com o mesmo ao selecionar quais partes deseja assistir. Hoje a interface da tela de reprodução do vídeo do Stitch é composta apenas por três blocos, que são os de reprodução, controle e marcações do vídeo e não disponibiliza ao usuário a opção de língua, mostrando apenas as marcações em português.

33

Assim como no projeto de Andrade e Guedes (2008), não faz parte do escopo do presente projeto o desenvolvimento de uma ferramenta para descrever semanticamente um vídeo e associá-lo a uma ou mais anotações levando em conta o tempo. Com isso, será utilizada a ferramenta desenvolvida pelo aluno Alexsandro de Olinda Nascimento, da UCSAL, em seu projeto de conclusão de curso, orientado pelo professor Edeyson Gomes. Esta ferramenta gera um arquivo XML, com base no MPEG-7, contendo dados referentes ao vídeo como título, autor, data, gênero bem como informações sobre suas anotações como início e duração marcados em segundos, entre outros.

O presente projeto tomará como base este arquivo XML a fim de recuperar as descrições do vídeo, podendo ser feitas através do uso de uma ontologia ou texto livre.

Os requisitos funcionais permaneceram os mesmos identificados na versão original do STITCH, os quais se encontram abaixo listados, onde dentre eles foi acrescentado o requisito 2 – Escolha do perfil para visualizar as marcações –, pois os demais já existiam e dois deles foram complementados, são eles: Visualização dos trechos do vídeo e Visualização de múltiplas marcações.

1. Visualização das marcações: permite que o usuário tenha um conhecimento antecipado das marcações, antes mesmo de acessar o vídeo, podendo ele assistir o vídeo ou não.

2. Escolha do perfil para visualizar as marcações: permite ao usuário escolher em qual língua deseja visualizar as marcações do vídeo escolhido, se em inglês ou português.

3. Navegação entre as marcações do vídeo: possibilita que o usuário percorra entre as marcações do vídeo e escolha qual parte do mesmo quer assistir.

4. Visualização completa do vídeo: possibilita que o vídeo (por completo) e suas anotações sejam exibidos ao mesmo tempo.

5. Visualização dos trechos do vídeo: o usuário pode escolher qual trecho do vídeo deseja visualizar, podendo fazer essa escolha com o vídeo em execução ou em pausa. Isso pode ser feito com base em uma ou mais marcações listadas, pois cada marcação possui um link no qual permiti que o usuário acesse direto o trecho do vídeo correspondente.

34

6. Visualização de múltiplas marcações: existindo mais de uma marcação por segundo, o usuário poderá visualizá-las de uma só vez. O campo de visualização será ajustado automaticamente, ou seja, não será necessário mais a utilização da barra de rolagem.

Os requisitos não funcionais são:

1. Escalabilidade: Devido ao grande volume de acessos ao mesmo tempo (tratando-se de uma aplicação da internet), os recursos devem ser utilizados sem com isso perder sua qualidade.

2. Usabilidade: permitir que os usuários utilizem os recursos disponíveis, sem a necessidade de, para isso, possuir um conhecimento prévio do padrão MPEG-7, garantindo assim uma interface mais simples.

3. Portabilidade: permitir que a ferramenta seja utilizada nas mais variadas plataformas.

4. Desempenho: possibilita maior agilidade da ferramenta em relação as respostas as requisições, ou seja, não será necessário que a página seja carregada por completo.

5. Sincronização do vídeo e suas marcações: o vídeo escolhido pelo usuário deve ser exibido simultaneamente com suas anotações de forma que os mesmos estejam sincronizados.

5.2 ARQUITETURA DO STITCH

Da mesma maneira que a versão anterior, o STITCH 2.0 faz uso do modelo de arquitetura adotado pelo padrão MPEG-7 para extração das informações sobre o conteúdo dos vídeos armazenadas em arquivos XML. Conforme descrito no Capítulo 2, Seção 2, essas informações influenciarão diretamente na recuperação do vídeo.

Conforme Andrade e Guedes (2008) os principais elementos de anotação textuais utilizados são: O CreationInformation, TextAnnotation, TemporalDecomposition e

35

VideoSegment. A seguir temos a ilustração, através da figura 5.1, da estrutura resumida do arquivo XML no padrão MPEG-7, a qual foi mantida no presente trabalho.

no padrão MPEG-7, a qual foi mantida no presente trabalho. Figura 5.1 - Estrutura resumida do

Figura 5.1 - Estrutura resumida do XML.

CreationInformation: possui informações com relação ao conteúdo do vídeo como título e gênero. O título é informado em title e o gênero em genre.

TextAnnotation: componente que guarda as anotações textuais sobre o vídeo ou associadas a algum segmento do mesmo.

TemporalDecomposition: contém informações dos segmentos que foram determinados pelo usuário através de uma ferramenta de anotação. Tais anotações são feitas fundamentadas em uma ontologia ou em texto.

VideoSegment: possui informações dos segmentos do vídeo tais como:

comentário, quem foi o autor da ação, quando foi executada, o tempo inicial da ação e a sua duração; essas duas últimas definidas pelo MediaTimePoint e MediaDuration respectivamente.

Na versão atual, com base no padrão MPEG-7, a arquitetura do STITCH permite a visualização da lista de vídeos disponíveis, escolhendo-se qual se deseja assistir, da mesma forma que ocorre na versão anterior, logo em seguida o usuário escolhe o perfil no qual deseja ver as anotações, ou seja, em inglês ou português. Esta opção o consulente não dispõe na versão anterior. Após essa escolha tem-se o conhecimento das anotações existentes do mesmo no perfil escolhido e assim é iniciada a exibição

36

propriamente dita do vídeo, conforme ocorri na versão inicial da ferramenta. Esta pode

ser realizada com a intervenção do usuário através dos controles como parar, avançar,

voltar, selecionando uma anotação especifica do vídeo, através dos links acrescentados

na nova versão, ou sem sua intervenção, visualizando o vídeo por completo. A figura

5.2 ilustra essa arquitetura.

vídeo por completo. A figura 5.2 ilustra essa arquitetura. Figura - 5.2 Arquitetura da solução A

Figura - 5.2 Arquitetura da solução

A lista de vídeo continua sendo criada automaticamente pela aplicação. A

mesma é formulada com base nos arquivos de vídeo que estão na pasta nomeada de

Vídeos. Os vídeos possuem um arquivo XML associados a estes, onde serão

recuperadas informações de titulo e gênero. A listagem 5.1 detalha como essas

informações são recuperadas.

1.$video = "./XML/".$vetor[$x].".mp7.xml"; 2.$xml = simplexml_load_file($video);

3.

4

.$titulo = $xml->Description->MultimediaContent-

5.>Video->CreationInformation[0]->Creation->Title;

6.

7.>Video->CreationInformation[0]->Classification->Genre;

$genero = $xml->Description->MultimediaContent-

Listagem 5.1 – Recuperação de informações do vídeo

37

A linha 1 coloca em uma variável o caminho do XML (como por exemplo:

“./XML/video2.mpg.port.mp7.xml”) pertencente ao vídeo sob analise . Na linha 2 o

XML é carregado através da API SimpleXML, após isso nas linhas 4 e 5 o título é

recuperado através do acesso a tag Title e o gênero nas linhas 6 e 7 através da tag

Genre.

Após a exibição da lista de vídeos disponíveis, o usuário deve decidir entre estes

qual deseja assistir. Depois de escolher um dos vídeos o usuário terá a opção de

selecionar em qual língua deseja visualizar as marcações do mesmo. Após o processo de

escolha do vídeo e da língua desejada, são exibidas as marcações deste para o usuário.

Tais informações são descrições feitas pela ferramenta de anotação que estão alocadas

em um arquivo XML. A listagem 5.2 detalha como ocorre esse processo.

1. function exibirMarcacoes($video,$lingua){

2.

3.

$xml = simplexml_load_file(' /xml/'.$video.'.'.$lingua.'.mp7.xml');

4.

$total = $total = count($xml->Description->MultimediaContent->Video-

5.>TemporalDecomposition->VideoSegment);

6.

7.

for($i=0;$i<$total;$i++){

8.

$comentario = trim($xml->Description->MultimediaContent-

9.>Video->TemporalDecomposition->VideoSegment[$i]->TextAnnotation-

10.>FreeTextAnnotation);

11.

12.color=\"#ffffff\">".$comentario."</font></center></div>";

13.

echo "<div><center><font face=\"Verdana\" size=\"1\"

}

Listagem 5.2 - Código para exibição das marcações

Diferente da versão anterior, na linha 1 a função exibirMarcacoes recebe agora

dois parâmetros o nome do vídeo selecionado e a língua escolhida (como por exemplo:

“video2.mpeg”,”port”) e não apenas o nome do vídeo. Daqui em diante o fluxo é o

mesmo da versão anterior. Na linha 4 é realizada a contagem das marcações que o vídeo

possui. Após a contagem das marcações é feita uma iteração tomando como base o total

de marcações da linha 7 a 13. As linhas 8, 9 e 10 recuperam do XML essas marcações e

38

5.3 AMBIENTE DE EXECUÇÃO

A plataforma de desenvolvimento da ferramenta permanece o PHP 5.2.3 (PHP

Hypertext Pre-processor), pois esta além de atender aos requisitos da solução é uma

linguagem simples e direcionada para aplicações Web (ANDRADE E GUEDES, 2008).

Para implementar as modificações propostas foi utilizado o Notepad++ 5.3.1

juntamente com o servidor EasyPHP 3.0 que executa código PHP. A seguir as

principais tecnologias utilizadas: Jquery, HTML+TIME e SimpleXML.

5.3.1

Jquery

Para que fosse possível a exibição das marcações no STITCH 2.0, da mesma

maneira que a versão anterior foi utilizado a Jquery – biblioteca Javascript – muito

adotada pelos desenvolvedores web, pois facilita a implementação pelo fato de utilizar

o AJAX. As vantagens de se utilizar a Jquery são muitas, tais como:

Seu peso é bastante leve ficando em torno de 20kb (compressed);

Otimização de código, evitando programar linhas e linhas de código;

Compatibilidade com qualquer navegador;

Acesso a qualquer elemento ou combinações de elementos;

No caso da presente solução não há necessidade que a página inteira de

exibição do vídeo seja carregada, apenas as marcações são atualizadas.

Pelo fato de ser uma biblioteca, existe a necessidade que seja feita a importação

da Jquery para que seus comandos possam ser utilizados.

1.<script language="javascript" 2.src=" /jquery/jquery1.2.3.js"></script>

Listagem 5.3 – Código para inclusão da biblioteca Jquery.

Na linha 1 da listagem 5.3 é exibido como é feita a inclusão da Jquery dentro da

página responsável por mostrar o vídeo. A listagem 5.4 mostra a função em JavaScript

que exibe as marcações utilizando a biblioteca Jquery.

39

1. function ChamaMarcacoes(tempo,video,lingua){

2. $.post("busca.php", {tempo: ""+tempo+"",video:

3.""+video+"",lingua: ""+lingua+""},

4.function(data){

5.

if(data.length >0) {

6.

$('#rolagem').html(data);

7.

}

8.

});

9.

}

Listagem 5.4 – Código para exibição das marcações.

Vemos na linha 1, que a função ChamaMarcacoes recebe agora três parâmetros

devido a inclusão da opção de língua, são eles: o tempo corrente, o vídeo em questão e a

língua escolhida. Por meio do post na linha 2 e 3 é chamada a página busca.php

passando esses três parâmetros. Os resultados gerados em busca.php ficam na linha 4, e

na linha 6 esses resultados serão mostrados em uma tag HTML div denominada

rolagem. Além de exibir as marcações, a presente função passou a ser responsável pela

seleção (destaque) das mesmas, a qual possível utilizando javascript para atribuir a cor

de fundo e de fonte através do StyleSheet. A Listagem 5.5 representa como avançar e

voltar trechos do vídeo.

1. function avancarVoltar(tempo,video2,tipo,lingua){

2. $.post("avancarVoltar.php", {tempo: ""+tempo+"",video:

3.""+video2+"",tipo: ""+tipo+"",lingua: ""+lingua+""},

4.

function(response){

5.

if (response != 0){

6.

ChamaMarcacoes(tempo,video2,lingua);

7.

video.seekTo(1, response);

8.

}

9.

});

Listagem 5.5 – Código para avançar ou voltar o vídeo

Conforme linha 1 a função avancarVoltar recebe agora por parâmetro quatro

informações, também devido a inclusão da opção de língua, são elas: o tempo corrente,

o vídeo, o tipo de operação, ou seja, avançar ou voltar e a língua selecionada. Já nas

linhas 2 e 3, avancarVoltar.php será requisitado via post passando esses quatro

parâmetros. A linha 4 vai conter o tempo que o vídeo deverá reiniciar, na linha 6 a

função ChamaMarcacoes é executada para atualizar a posição da seleção (destaque) nas

40

marcações, conforme informado anteriormente e por fim na linha 7 o vídeo será

reproduzido a partir do tempo selecionado.

5.3.2 Utilização do HTML+TIME no STITCH

Conforme afirmação de Andrade e Guedes (2008), a tecnologia HTML+TIME

esta presente no STITCH, a qual foi mantida na versão atual, com o objetivo de

assegurar a sincronização entre o vídeo e suas marcações.

A identificação e utilização dos elementos do HTML+TIME dentro de um

código HTML só é possível a partir da declaração do XMLNS (XML nomespace)

dentro da tag HTML (MICROSOFT, 2002), conforme a listagem 5.6.

1. <HTML XMLNS:t ="urn:schemas-microsoft-com:time">

Listagem 5.6 – Identificação da tecnologia HTML+TIME

A garantia da vinculação do tempo ao vídeo, segundo a Microsoft (2002), é

assegurada com o acréscimo do atributo style ao HTML incluindo a declaração da

classe time. Para exemplificarmos essa situação temos a seguir a listagem 5.7, que

mostra a utilização do atributo.

1.<STYLE>

2. .time

3.</STYLE>

{behavior: url(#default#time2);}

Listagem 5.7 – Declaração do atributo style

Por meio de um CSS gerado a partir da tag style vista na linha 1 o atributo class

time é vinculado a um comportamento time2, conforma exposto na linha 2.

Depois de criado o style, precisamos importar o comportamento time2, conforme

afirma a Microsoft (2002). Tal comando é mostrado na listagem 5.8.

1. <?IMPORT namespace="t" implementation="#default#time2">

Listagem 5.8 – Importação do comportamento time2

41

Na listagem 5.9 temos os conceitos do evento onrepeat, o qual é responsável

pela repetição dos elementos tantas vezes quanto necessário, determinada pela

propriedade repeatCount, a qual possui como critério de parada todos os outros tipos de

eventos, por exemplo, a interrupção do tempo associado ao vídeo.

1.<SPAN id="Timer" class="time" dur="1" repeatCount="indefinite"

2.onrepeat="parseInt(ChamaMarcacoes(video.currTimeState.activeTime,

3. '<?php echo $_GET['nome']; ?>'));"></SPAN>

Listagem 5.9 – Código para chamada das marcações

Temos na linha 1 a determinação da existência de um tempo vinculado a tag

SPAN e que tudo que venha a ocorrer na mesma será em função deste tempo, ou seja,

class="time". Segundo Andrade e Guedes (2008), tal tempo passará de um em um

segundo determinado pelo atributo dur e por meio do repeatCount, as marcações vão

ser chamadas de forma indeterminada, por quanto que o onrepeat na linha 2 executará

tal chamada indefinidamente conforme descrito no parágrafo anterior e o

currTimeState.activeTime possui informações do tempo corrente do objeto vídeo.

5.3.3 SimpleXML

API nativa do PHP 5, que viabiliza o acesso aos arquivos de descrição na

extensão MPEG-7. A SimpleXML disponibiliza um conjunto de ferramentas muito

simples e fáceis de serem utilizadas para conversão de XML em objeto, que passam a

ser processados como vetores e arrays.

5.4 INTERFACE DO STITCH 2.0

A interface da presente solução passou a ser composta por cinco telas, pois foi

incluída a Tela de Seleção da Língua, as outras quatro telas são: Tela de Listagem dos

Vídeos, Tela de Listagem das Marcações e Tela de Reprodução do Vídeo. Estas telas

vão viabilizar o acesso do usuário aos vídeos disponíveis e suas marcações. A partir

disso o consulente poderá manipular tais vídeos e suas descrições semânticas.

42

5.4.1 Tela de Listagem dos Vídeos

Trata-se da primeira tela que o usuário terá contato. É através da Tela de Listagem dos Vídeos que o usuário vai conhecer dos vídeos disponíveis naquele momento no diretório www do servidor EasyPHP. Neste diretório existe uma pasta intitulada de Vídeos que contem os arquivos de vídeo na extensão mpeg. Vale ressaltar que esta tela não sofreu alterações. A seguir temos a figura 5.3 que nos mostra uma lista gerada pela ferramenta.

figura 5.3 que nos mostra uma lista gerada pela ferramenta. Figura 5.3 – Tela Listagem dos

Figura 5.3 – Tela Listagem dos Vídeos

Depois de escolher o vídeo desejado o usuário terá acesso a nova tela do STITCH 2.0, a Tela de Seleção da Língua, para selecionar a língua deseja.

43

A Tela de Seleção da Língua foi desenvolvida com o objetivo de disponibilizar ao usuário mais uma opção de idioma, neste caso o inglês. Com a adição desta tela a presente solução passa a apresentar as marcações do vídeo selecionado, através da lista de vídeo, na língua que o usuário escolher, ou seja, português ou inglês. A figura 5.4 mostra a tela para seleção da língua.

A figura 5.4 mostra a tela para seleção da língua. Figura 5.4 - Tela de Seleção

Figura 5.4 - Tela de Seleção da Língua

Para que a presente tela seja apresentada foi realizada uma alteração no destino da página /índex.php para quando o vídeo desejado fosse selecionado, na lista de vídeos disponibilizada, o mesmo passasse para a Tela de Seleção da Língua ao invés de exibir direto a Tela de Listagem das Marcações, como na versão anterior da ferramenta.

Definido a língua desejada serão exibidas as marcações do vídeo escolhido pelo usuário na Tela de Listagem das Marcações conforme sua escolha.

44

A Tela de Listagem das Marcações tem como finalidade exibir uma lista

contendo as marcações do vídeo selecionado pelo usuário. Conforme detalhado no Capítulo 6, Seção 2 estas informações são coletadas do arquivo XML que fica na pasta nomeado de XML no diretório WWW do servidor EasyPHP. A figura 5.5 ilustra uma

lista de marcações formulada pela presente solução.

uma lista de marcações formulada pela presente solução. Figura 5.5 – Tela Listagem das Marcações O

Figura 5.5 – Tela Listagem das Marcações

O principal objetivo da presente tela é disponibilizar ao usuário informações

precisas sobre o conteúdo do vídeo selecionado para que a partir disso o mesmo confirme sua escolha através do botão assistir ou retorne a Tela de Listagem dos Vídeos através do botão voltar, ambos disponíveis na tela em questão. A partir da seleção do botão assistir o usuário terá acesso a Tela de Reprodução do Vídeo.

5.4.4 Tela de Reprodução do Vídeo

A Tela de Reprodução do Vídeo como o próprio nome já defini tem o objetivo de viabilizar a reprodução do vídeo escolhido pelo usuário juntamente com seus comentários. Foi acrescentada ao lado da tela principal de reprodução do vídeo uma

45

segunda tela contendo a lista das marcações do vídeo selecionado. Esta ação tem por objetivo tornar mais rápido o acesso do usuário as informações que este considere mais relevantes. A figuração 5.6 mostra a tela de reprodução do vídeo.

A figuração 5.6 mostra a tela de reprodução do vídeo. Figura 5.6 – Tela de Reprodução

Figura 5.6 – Tela de Reprodução do Vídeo

Além de selecionar dinamicamente cada marcação a medida que o vídeo é reproduzido a ferramenta disponibiliza ao usuário a opção de assistir ao trecho do vídeo, referente a determinada marcação, quando desejar. Para isso foram incluídos links as marcações, ou seja, basta que o usuário click em uma marcação para que o trecho de vídeo correspondente seja reproduzido. A inclusão dos links visa facilitar ainda mais a interação do usuário com o STITCH 2.0

5.4.4.1 Área de Exibição do Conteúdo das Marcações

A área de exibição do conteúdo das marcações também foi reformulada para dinamizar a apresentação do mesmo, ou seja, caso existam três comentários no mesmo segundo e estes ultrapassem o limite da área o usuário não terá mais que utilizar a barra de rolagem como anteriormente, pois a área de exibição será extendida para atender a

46

necessidade do conteúdo. Para isso foi alterado o arquivo Rolagem.css, que possui o código do Stylesheet da div Rolagem, onde foi deixado o atributo Height sem especificação, desta forma a div Rolagem tem a sua altura variável se adequando ao conteúdo. O arquivo rolagem.css encontra-se na pasta Telas no diretório WWW do servidor Easyphp. A figura 5.7 ilustra a ferramenta no momento da exposição de mais de um comentário.

no momento da exposição de mais de um comentário. Figura 5.7 - Ajuste automático da tela

Figura 5.7 - Ajuste automático da tela para exibição completa do conteúdo.

Vale ressaltar que devido à área de exibição do conteúdo das marcações ter sido reformulada a tela só é extendida com a ocorrência de três comentários no mesmo momento, conforme mostrado na figura 5.7. As informações que compõem as marcações são: Tempo, Titulo, Autor, Data e Comentário. Essas informações, exceto o

47

tempo, são extraídas do arquivo XML. A exibição dessas informações é importante para garantir uma maior riqueza na exibição do vídeo e ao mesmo tempo valorizar o autor.

5.4.4.2 Controles do Vídeo

Da mesma forma que na versão inicial do STITCH o controle do vídeo se da por meio dos botões de controle. Estes são cinco: Play, Pause, Stop, Avançar e Voltar. A funcionalidade desses componentes permanece a mesma em relação à primeira versão da fermenta. A figura 5.8 exibe os controles utilizados na presente solução. A seguir temos função de cada controle. A figura 6.8 exibe os controles utilizados na presente solução.

6.8 exibe os controles utilizados na presente solução. Figura 5.8 – Controles do Vídeo Play –

Figura 5.8 – Controles do Vídeo

Play – Inicia a reprodução do vídeo e a reinicia quando a mesmo esta em pause ou tenha sido acionada o botão Stop;

Pause – Para a reprodução do vídeo momentaneamente, sendo possível continuar a reprodução do mesmo ponto acionando o botão Play;

Stop – Interrompe definitivamente a execução do vídeo, logo o mesmo retorna ao seu inicio e o tempo é zerado;

Avançar – Adianta o vídeo para a marcação seguinte;

Voltar – Retorna o vídeo para a ultima marcação reproduzida.

5.5 LIMITAÇÕES DO STITCH

O STITCH 2.0 também apresenta limitações quanto ao navegador utilizado, pois conforme afirmação de Andrade e Guedes (2008), pelo fato de ter sido utilizada para a

48

sua implementação a tecnologia HTML+TIME, a qual foi desenvolvida pela Microsoft 2 a presente ferramenta apresenta incompatibilidade com outros browsers, como por exemplo, o Mozila Firifox, funcionando corretamente apenas no Internet Explorer.

2 Microsoft Corporation, mais informações vide: www.microsoft.com.

49

6

CONCLUSÃO

Conforme proposto a ferramenta STITCH 2.0 foi aprimorada, visando uma interação maior do usuário com a mesma e tornando mais simples a busca das informações desejadas. A tela de reprodução do vídeo foi reformulada, sendo acrescentada a mesma uma nova tela com a lista das anotações do vídeo selecionado pelo usuário, onde foram incluídos links a essas marcações, visando reduzir o tempo de busca dos trechos de vídeo desejados, bem como a seleção de cada marcação do vídeo a medida que este é reproduzido para que o usuário saiba em que momento do vídeo esta, melhorando assim a interação do usuário com a aplicação.

Na tela de reprodução do vídeo foi eliminada a barra de rolagem, fazendo com que o ajuste, no caso do conteúdo a ser apresentado ultrapasse a área destinada ao mesmo, ocorra de forma automática, não sendo mais necessário que o usuário tenha que pausar o vídeo para ter acesso a tal conteúdo. Com o objetivo de tornar a aplicação mais acessível aos usuários de outros países, acrescentamos a ferramenta a opção de visualização das marcações e seus comentários em inglês. Atualmente apos a seleção do vídeo desejado o usuário terá que escolher na tela seguinte em qual língua deseja ter acesso as marcações do vídeo, se português ou inglês.

Apesar das alterações realizadas, visando o aprimoramento da presente solução, existem algumas sugestões para a sua melhoria, como por exemplo, o acréscimo de outras opções de idioma, como por exemplo, o espanhol valorizando ainda mais a ferramenta bem como promovendo o acesso à ferramenta de um número ainda maior de usuários.

Outra sugestão é tornar o STITCH 2.0 acessível através de outros navegadores e não apenas pelo Internet Explorer, pois com isso tal ferramenta será utilizada por um número maior de usuários, visto que o número de informações multimídia indexadas pelo padrão MPEG-7 esta crescendo a cada dia.

Existem também as sugestões disponibilizadas por Andrade e Guedes (2008) e que até então não implementadas, como implantação de outros modelos de acesso ao conteúdo, tornando a área de exibição das marcações interativa, permitindo que o usuário escolha a sua posição na tela bem como o seu tamanho.

50

REFERÊNCIAS

ANDRADE, Melilla C.; GUEDES, Daniela S. STITCH – Uma ferramenta para visualização de segmentos de vídeo baseada em HTML + TIME. Salvador, 2008. 67p. Monografia de conclusão de curso de graduação – Departamento de Informática, Universidade Católica de Salvador – UCSAL.

BAEZA-YATES, R.; RIBEIRO NETO, B. Modem Information Retrieval. NewYork:

ACM Press, 1999. 511p.

CEPSRM. Página Dinamica para Aprendizado do Sensoriamento Remoto. Dispnivel na internet. 2006. http://www6.ufrgs.br/engcart/PDASR/linguagens.html. Acessado em 30 de Maio de 2009.

CERQUEIRA, Andréa. Introdução a Metadados. 2004. Disponível na Internet.

http://www.linhadecodigo.com.br/Artigo.aspx?id=298. Acessado em 15 de maio de

2009.

CHELLA, Marco T. Sistema para Classificação e Recuperação de conteúdo multimídia Baseado no Padrão MPEG-7. 2003. Dsiponivel na Internet. http://www.nied.unicamp.br/~siros/doc/2232.pdf. Acessado em 23 de Maio de 2009.

CSS2, Cascading Style Sheets, level 2 Specification. W3C Recommendation, Maio

1998. Disponível em: http://www.w3.org/TR/RECCSS2. Acessado em 27 de junho de

2009.

DEL BIMBO, A. Visual Information Retrieval, Morgan Kaufmann, 1999.

DUTRA, Renato L. S.; Tarouco, Liane R. M.; Dallacosta, Adriana. A Utilização da Indexação de Vídeos com MPEG-7 e sua Aplicação na Educação. 2004. Disponível na Internet. http://www.cinted.ufrgs.br/renote/mar2004/artigos/35-autilizacao.pdf. Acessado em: 15 de maio de 2009.

FERNEDA, E. (2003). Recuperação de Informação: Análise sobre a contribuição da Ciência da Computação para a Ciência da Informação. Ciência da Informação e Documentação. São Paulo, USP Universidade de São Paulo. Doutor: 147.

FREITAS, FREDERICO L. G. Ontologias e a Web Semântica. 2003, 52f. Programa de Pós-Graduação em Informática. Universidade Católica dos Santos, São Paulo.

GARRET, J. Ajax: a New Approach to Web Applications. fev. 2005. Disponível em:

http://www.adaptivepath.com/publications/essays/archives/000385.php. Acessado em:

28 de junho de 2009

HUNTER, JANE. MPEG-7 - Behind the Scenes. 1999. Disponivel na Internet. http://www.dlib.org/dlib/september99/hunter/09hunter.html. Acessado em 31 de maio de 2009.

JUNIOR,

http://webinsider.uol.com.br/index.php/2005/11/01/ajax-nao-e-uma-tecnologia-e-um-

é

Gilberto

A.

AJAX

não

uma

tecnologia,

é

um

jeito.

2005.

jeito. Acessado em 28 de junho de 2009.

51

MARTÍNEZ, José M. MPEG-7 Overview. Version 10, 2004. Disponível na Internet. http://www.chiariglione.org/mpeg/standards/mpeg-7/mpeg-7.htm. Acessado em 24 de Maio de 2009.

MICROSOFT. Introduction to HTML+TIME, http://msdn.microsoft.com/library/default.asp?url=/workshop/author/behaviors/time.asp, 2002. Acessado em 27 de junho de 2009.

MOOERS, C. (1951). Zatocoding applied to mechanical organization of knowledge. American Documentation, v.2, n. 1, p.25.

NETO, Almerindo N. R. Coyote Annotation: Um framework para anotações de videos digitais. Salvador, 2005. 98p. Dissertação (Mestrado em Redes de Computadores) – Universidade Salvador - UNIFACS.

SAIBEL Santos, Celso A. Uma Estratégia para a Construção de Ambientes para a Descrição Semântica de Vídeos. 2007. WEBMEDIA. XIII Simpósio Brasileiro de Sistemas Multimídia e Web. Porto Alegre: Sociedade Brasileira de Computação.

SILVEIRA, Ricardo W. R. AJAX - Aumentando a Interatividade

 

em aplicações

Acessado em

28 de junho de 2009

SOTT, Juliano; Cantarelli, Elisa M. P. Indexação e Representação de Informações

Digitais para Vídeo

Internet.http://200.169.53.89/download/CD%20congressos/2006/Sulcomp/pdf/21944.P

DF. Acessado em 23 de Maio de 2009.

Usando MPEG-7. 2005. Disponivel na

TAROUCO, Liane M. R.; Dutra, Renato L. S.; Konrath, MAry L. P. SACCA - Sistema Automático de Catalogação de conteúdo Audiovisual.2005. Disponível na Internet. http://www.cinted.ufrgs.br/renote/nov2004/artigos/a18_sacca.pdf. Acessado em 15 de Maio de 2009.

TAVARES, Tatiana; Santos, Alexandre; Santos, Celso S. Uma Estratégia para a Construção de Ambientes para a Descrição Semântica de Vídeos, 2007. Universidade Salvador. Salvador.

TIMM, Maria Isabel; Schnaid, Fernando; Zaro, Milton; Ferreira Filho, Raymundo C.

M.;

Cabral Jr., Paulo Augusto de Freitas; Rosa, Ana Maria. Jesus, Marcelo Azevedo e

S.

de. Tecnologia educacional: mídias e suas linguagens. Disponível em

www.cinted.ufrgs.br/renote/fev2003/artigos/marai_tecnologia.pdf. Acessado em 23 de

VIEIRA, Luiz C. M. Interface WEB para Acesso Orientado ao Conteúdo Digital. Salvador, 2005. 44p. Monografia (Graduação em Ciência da Computação) – Universidade Salvador - UNIFACS.

W3C. Especificação de Synchronized Multimedia Integration Language 1.0 (SMIL),

http://www.utad.pt/~leonelm/w3ctranslations/smil/, 1998. Acessado em 27 de Junho de

2009.

52

XML, Extensible Markup Language 1.0. W3C Recommendation, Fevereiro 1998. Disponível em: http://www.w3.org/TR/REC-xml. Acessado em 27 de junho de 2009.

ZIBREIRA, C. (2004) MPEG-7, tese de doutorado.