Mudanças entre as edições de "RMU-2015-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 288: Linha 288:
 
</syntaxhighlight>... e observe o tamanho do arquivo de video resultante. Em seguida reproduza-o com '''vlc''' ou '''mplayer'''. Como você o compara com o video gerado no item 2.2 ?
 
</syntaxhighlight>... e observe o tamanho do arquivo de video resultante. Em seguida reproduza-o com '''vlc''' ou '''mplayer'''. Como você o compara com o video gerado no item 2.2 ?
  
3) Copie [http://tele.sj.ifsc.edu.br/~msobral/rmu/videos/wsm-bonus4.avi este video] para seu computador. Visualize-o com '''mplayer''' ou '''vlc''', observando sua qualidade de imagem. Veja também o tamanho desse arquivo de video, que está codificado com [http://en.wikipedia.org/wiki/Motion_JPEG MJPG].
+
3) Copie [http://tele.sj.ifsc.edu.br/~msobral/rmu/videos/sr.mjpg este video] para seu computador. Visualize-o com '''mplayer''' ou '''vlc''', observando sua qualidade de imagem. Veja também o tamanho desse arquivo de video, que está codificado com [http://en.wikipedia.org/wiki/Motion_JPEG MJPG].
  
 
4) Codifique esse video para outros formatos de compressão:
 
4) Codifique esse video para outros formatos de compressão:

Edição das 08h34min de 11 de fevereiro de 2015

Redes Multimidia: Diário de Aula 2015-1

Professor: Marcelo Maia Sobral
Grupo (Facebook): RMU - IFSC
Encontros: 3a feira/7:30, 4a feira/9:40
Atendimento paralelo: 4a feira 13:30-14:30

Bibliografia

  • Livros sobre Redes de Computadores (por ordem de preferência):
    • KUROSE, James F. e ROSS, Keith W. Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição. Editora Addison Wesley SP, 2010.
    • Sérgio Colcher, Antônio Tadeu Azevedo Gomes, e Anderson Oliveira da Silva. VoIP: Voz sobre IP. Campus, 1a edição, 2005.
    • STALLINGS, W. Redes e sistemas de comunicação de dados. Editora Elsevier RJ, 2005.
    • TANENBAUM, Andrew S. Redes de Computadores, tradução da quarta edição. Editora Campus RJ, 2003
    • FOROUZAN, Behrouz. Comunicação de Dados e Redes de Computadores, 3a/4a edicão. Editora Bookman, 2004.

Curiosidades

Listas de exercícios

Avaliações

Obs: D* = não fez a avaliação.

Softwares

04/02: Apresentação

Apresentação da disciplina: conteúdo, bibliografia e avaliação, laboratório.

Redes multimidia

Uso de redes de dados para transmitir conteúdo de diferentes midias:

Mmn example2.png Mmn-intro.png
Videophone.jpg CaseStudy RealTimeTelemedicine Network Image.jpeg


Algumas questões sobre essas aplicações:

  1. Como funcionam esses serviços ? Como os conteúdos são acessados ?
  2. Como os dados são representados ?
  3. Como os dados são transportados através da rede ? Quais os protocolos envolvidos e como os dados são encapsulados em suas PDUs ?
  4. Que requisitos quanto à transmissão pela rede possuem para um bom funcionamento ?

Atividade: compartilhando video pela rede

A turma deve conceber uma forma de distribuir video usando a rede, que possibilite a reprodução de video tanto por computadores quanto dispositivos móveis (smartphones e tablets). Esse serviço precisa ter sua arquitetura devidamente descrita, para que fique claro:

  • como os videos são armazenados
  • como os videos são acessados e transmitidos
  • que requisitos os usuário do serviço devem cumprir para utilizá-lo
  • qual a infraestrutura física necessária

Exemplo 1: video streaming

Video streaming é a transmissão de video por uma rede de dados, com sua visualização ocorrendo à medida que for sendo recebido pelo cliente. Um exemplo muito conhecido de serviço de video streaming é fornecido pelo YouTube. Outros exemplos de video streaming são Netflix, que possibilita assistir filmes via Internet mediante o pagamento de uma assinatura, e a transmissão de jogos de futebol via Internet por algumas emissoras de TV aberta. Apesar de a experiência dos usuários parecer a mesma (ou quase ...) para esses serviços, existem diferenças na forma como são implementados.


Experimente visualizar os videos abaixo. Em todos eles observe quanto tempo demora para iniciar a tocar o video e sua continuidade (se ele interrompe ou degrada a imagem). Experimente também avançar o video, como por exemplo para perto de seu final.

Como é feito o acesso a esses videos, e como eles são transportados pela rede ?

  • Execute o wireshark e repita o acesso aos videos. Enquanto a captura acontece, faça um reposicionamento do video - i.e. avance-o para perto de seu final. Observe as mensagens trocadas entre sua aplicação cliente e o servidor do video.
  • Você conseguiria descrever como funcionam seus acessos e transmissões ?
  • Você pode notar alguma diferença entre as diferentes formas de transmissão do video ?

Exemplo 2: Internet radio

Atualmente muitas estações de rádio transmitem suas programações também pela Internet. Existem inclusive muitas estações cujas transmissões são feitas somente pela rede - i.e. a rigor, não fazem transmissão por rádio. Com isso, pessoas conseguem escutar a programação de uma estação de rádio de outro país. Um atrativo dessas estações via Internet é informarem o gênero de música transmitida, além de apresentarem uma boa qualidade sonora. Esse tipo de serviço se popularizou tanto que existem diretórios de estações, que podem ser acessados por aplicativos e assim possibilitar que os usuários escolham que tipo de música desejam escutar.

Um aplicativo do Linux que oferece fácil acesso a Internet radio é o Rhytmbox. Ele pode ser executado no menu Aplicativos->Som e video. Execute o Rhytmbox em seu computador, e escolha uma estação de radio. Observe quanto tempo demora para que a música comece a tocar, a qualidade do som, e sua continuidade.

Como é feito o acesso às estações de rádio, e como as músicas são transportadas pela rede ?

  • Execute o wireshark e repita o acesso à estação. Enquanto a captura acontece, observe os protocolos envolvidos e as mensagens que fluem entre seu computador e o servidor da estação. Observe também onde a estação se localiza (país/cidade).
  • Você conseguiria descrever como funcionam seus acessos e transmissões ?

TAREFA: leitura da semana

Leiam os seguintes artigos:

... sintetizem suas ideias e comparem-nas com a situação da Internet brasileira. Preparem-se para apresentar suas conclusões na próxima aula (09/02). A apresentação deverá durar de 5 a 10 minutos e deve ser composta de:

  • Um resumo sobre os conceitos-chaves contidos no texto
  • Alguns slides (não mais que 5) para auxiliar a explicação desses conceitos chaves.
    • Não carregue os slides de texto ! Priorize o uso de figuras, diagramas e frases curtas para enunciar cada ideia apresentada.

Durante a apresentação qualquer aluno ou o professor poderão fazer apartes. Em particular, o professor pode pedir a outro aluno para explicar o que entendeu sobre determinada informação apresentada.

Um aluno será sorteado para fazer sua apresentação. Caso não a tenha preparado, receberá um conceito negativo que influenciará seu conceito final (isso vale também para alunos sorteados que tiverem faltado). O sorteio será realizado até que um aluno faça a apresentação.

10/02: Apresentação do Projeto 1


O projeto 1 trata da implantação e demonstração de um sistema de compartilhamento de video semelhante ao Youtube (conhecido como CMS - Content Management System). Tal serviço deve possibilitar:

  • A visualização de videos via web
    • Os videos podem estar armazenados ou serem ao vivo (ex: fornecidos por uma câmera IP)
  • A publicação de videos por usuários cadastrados
  • A reprodução de músicas via web (opcional)
  • A publicação de músicas por usuários cadastrados (opcional)


A implantação do serviço deve ser feita em um servidor do câmpus. Há um servidor disponibilizado para cada equipe. Pode ser usado qualquer software para CMS, ficando ao gosto de cada equipe. Algumas opções são:


Estes outros não são CMS baseados em web, porém demonstram outras formas (e tecnologias) para compartilhamento e streaming:

Equipe Alunos Servidor URL
Equipe 1 equipe1.rmu.sj.ifsc.edu.br http://equipe1.rmu.sj.ifsc.edu.br/
Equipe 2 equipe2.rmu.sj.ifsc.edu.br http://equipe2.rmu.sj.ifsc.edu.br/
Equipe 3 equipe3.rmu.sj.ifsc.edu.br http://equipe3.rmu.sj.ifsc.edu.br/
Equipe 4 equipe4.rmu.sj.ifsc.edu.br http://equipe4.rmu.sj.ifsc.edu.br/


Produto a entregar: até 10/03

  • Cada equipe deve demonstrar o funcionamento do seu servidor de video. Isso inclui fornecer uma conta ao professor para ele publicar videos de teste.
  • Deve ser entregue um relatório descrevendo:
    • Como instalar o serviço de video.
    • Os requisitos (outros softwares) para que o serviço seja instalado.
    • Os formatos de video suportados (codecs e containers) tanto para importação quanto reprodução
    • Uma breve descrição de como funciona a transmissão do video: protocolos usados, tipo de reprodutor de video, funcionalidades suportadas (avançar, retroceder, pausa, seleção de qualidade de video, videos online ou armazenados, ...).

Atividade

Usando a máquina virtual de RMU, investigue os softwares sugeridos e escolha um deles para sua implantação.

11/02: Início do projeto 1; transmissão de video

Existem diversos mecanismos de transmissão de video por uma rede de computadores. Para conhecer alguns deles, pesquise como videos são transmitidos por estes sistemas:

O resultado dessa pesquisa deve ser usado para construir a seguinte tabela:

Mecanismo Protocolos de aplicação Protocolos de transporte Multicast Qualidade adaptativa Formatos de video Reprodutor de video Software servidor

Formatos de video

Videos digitais podem ser representados em diferentes formatos. Isso é uma combinação da codificação de video (codec) e a forma com que o video é armazenado (container). Basicamente um codec define como a sequência de quadros de um video é representada digitalmente, e o container define como os bits de um video codificado são encapsulados de forma conveniente, seja em um arquivo ou mesmo on-the-fly. Para investigar alguns tipos de container e codecs existentes, analise os seguintes videos:

Video Container Características de armazenamento Codec Características de codificação
Video 1
Video 2
Video 3
Video 4
Video 5
Video 6
Video 7
Video 8


Estes textos explicam o que contém cada container, e quais suas estruturas de armazenamento:


Já a codificação de video é muito mais complexa ...

Compressão de video

Técnicas usadas para compressão de video:

  • Remoção de redundância espacial - codificação intraquadros (ex: MJPEG)
  • Remoção de redundância espacial e temporal - codificação intraquadros e interquadros (H.264, MPEG)


Remoção de redundância temporal: iniciando com um intraquadro (quadro I), quadros sucessivos contém atualizações relativas a quadros anteriores (quadros P) ou a quadros anteriores e posteriores (quadros B). O conjunto de quadros entre quadros I se chama GOP (Group of Pictures):


Gop.png


Exemplos de codecs de video

  • MPEG-2
  • H-264
  • XVID
  • Theora

Exemplos de formatos de video usados em MPEG2 (i.e. em DVD): Mpeg2-video-formats.png


Atividade

1) Copie esta imagem para seu computador, e recorte uma parte com dimensões 128x128 pixels (use o gimp).

1.1) Qual o tamanho dessa imagem no formato BMP com 24 bpp ?

1.2) Qual o tamanho dessa imagem no formato PNG ? E no formato JPG ?

1.3) Crie uma nova imagem com dimensões 128x128 pixels e que seja toda preta, e determina seu tamanho nos formatos BMP com 24 bpp, PNG e JPG.

1.4) O que se pode concluir quanto à representação digital das imagens ?

2) Copie este arquivo compactado para seu computador, e em seguida descompacte-o. Note que ele contém um certo número de arquivos de imagem em formato JPG (experimente visualizar alguns deles).

2.1) Crie um video a partir dessas imagens. Esse video estará no formato MPJG (Motion JPG), que nada mais é que as imagens sequencializadas.

cd figs
mencoder mf://\*.jpg -fps 10 -ovc copy -o video.avi

2.2) Veja o tamanho do arquivo de video, e compare-o com o tamanho total das imagens. Em seguida, reproduza-o com vlc ou mplayer.

2.3) Recodifique o seu arquivo de video usando o codec XVID:

mencoder -o video2.avi -ovc xvid -xvidencopts bitrate=1024 -oac copy video.avi

... e observe o tamanho do arquivo de video resultante. Em seguida reproduza-o com vlc ou mplayer. Como você o compara com o video gerado no item 2.2 ?

3) Copie este video para seu computador. Visualize-o com mplayer ou vlc, observando sua qualidade de imagem. Veja também o tamanho desse arquivo de video, que está codificado com MJPG.

4) Codifique esse video para outros formatos de compressão:

  • MPEG-2: mencoder -o wsm-bonus4.mpg -of mpeg -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=250 -oac copy wsm-bonus4.avi
  • XVID: mencoder -o wsm-bonus4_xvid.avi -ovc xvid -xvidencopts bitrate=250 -oac copy wsm-bonus4.avi
  • H-264:
    mencoder -o wsm-bonus4_h264.mp4 -ovc x264 -x264encopts pass=1:turbo -oac mp3lame wsm-bonus4.avi
    mencoder -o sr-h264.mp4 -ovc x264 -x264encopts bitrate=250:pass=2 -oac mp3lame wsm-bonus4.avi
  • Theora:
    mencoder -o wsm-bonus4_theora.mp4 -of mpeg -ovc lavc -lavcopts vcodec=libtheora:vpass=1:turbo -oac mp3lame wsm-bonus4.avi
    mencoder -o sr-theora.mp4 -of mpeg -ovc lavc -lavcopts vcodec=libtheora:vpass=2 -oac mp3lame wsm-bonus4.avi

5) Compare os tamanhos dos arquivos de video resultantes das codificações. Toque-os e veja se há diferença de qualidade de imagem entre eles.

6) Um software de processamento de video disponível para Linux se chama gopchop. Abaixo segue um texto explicativo sobre esse programa:

Gopchop.png

Interprete as informações contidas no texto acima, e experimente usar o gopchop.