Notícias:

ZaraRadio 1.6.2 BR funciona no Vista, 7, 8, 8.1 e Windows 10... todos em modo de compatibilidade Windows XP SP3. No linux via Wine :)

Main Menu

Transmissão via internet

Iniciado por Cristiano, Setembro 24, 2021, 10:25:55 AM

tópico anterior - próximo tópico

Cristiano

Citação de: Felix91 online Agosto 02, 2024, 08:28:15 AMNunca pensei que ficaria interessado em ler sobre como ocorre a transmissão pela internet. Obrigado, isso contribuiu para o meu desenvolvimento.
Félix, obrigado pelo seu feedback, até eu li novamente essa postagem de 2009... no funcionamento pouca coisa mudou com relação a transmissão, mas hoje temos outras opções de compartilhamento e tecnologias muito mais desenvolvidas, principalmente depois do "fique em casa" demos um salto de uns 20 anos para o futuro no mundo dos streamings, coisas que naquela época só eram coisas de filmes hoje usamos naturalmente.

Abraço,
Cristiano de Oliveira

Felix91

#2
Nunca pensei que ficaria interessado em ler sobre como ocorre a transmissão pela internet. Obrigado, isso contribuiu para o meu desenvolvimento.

Cristiano

#1
Streaming é a tecnologia que permite o envio de informação multimídia através de pacotes, utilizando redes de computadores, sobretudo a Internet. Quando a ligação de rede é banda larga, a velocidade de transmissão da informação é elevada, dando a sensação de que o áudio e o vídeo são transmitidos em tempo real.

Permite novos negócios na Internet, como por exemplo, o vídeo sob demanda (video on demand). Também já é possível assistir a vídeos em streaming via telefone celular ou na tela de seu computador.

Faz uso da tecnologia Multicast IP para a transmissão dos dados a partir de um único ponto para vários outros pontos de recepção (um para N).

Atualmente, rádios FM e AM e TV's, bem como várias empresas que realizam eventos, utilizam esta tecnologia para interação digital com seus ouvintes e clientes.

A primeira transmissão digital via streaming ocorreu no ano de 1988 utilizando a tecnologia Shoutcast com base no MP3 comprimido à 128kbps (qualidade de CD), porém, como a Internet ainda não era capaz de suportar transmissões de elevada velocidade, o projeto foi engavetado.

Hoje com novas tecnologias como o ADSL (Asymmetric Digital Subscriber Line), a Internet via Cabo, rádio, WiMAX e fibra ótica, possibilita que o streaming volte a ser uma ferramenta interessante no mundo da Internet.

Para esclarecer como uma transmissão ao vivo funciona, dividiremos esse assunto em duas partes. Primeiro daremos uma visão geral da relação entre as transmissões, os servidores e os ouvintes (a chamada topologia dessa rede) e em seguida veremos os protocolos utilizados.

Topologia

A transmissão de áudio pela internet, ou streaming (correnteza), funciona por meio um programa fonte, que envia o áudio para os servidores, que por sua vez enviam a transmissão para os clientes, que são os programas de reprodução de áudio.
Um esquema genérico é reproduzido no diagrama abaixo:


#Figura 1

O programa fonte utiliza como fonte de áudio o sinal presente na entrada placa de som e os arquivos da áudio presentes no computador fonte. A mistura desses sinais - a mixagem do sinal da placa de som com os arquivos de áudio - é então comprimida e codificada no padrão mpeg (o padrão mp3) ogg qu aac.

O sinal comprimido é então enviado para os servidores até o servidor de streaming. Um programa fonte pode mandar esse sinal para vários servidores diferentes.

Caso o audio que se quer transmitir vai ser captado pela entrada da placa de som, ele precisará ser codificado para um formato digital com taxas de amostragem e qualidade definidas e caso o audio venha de um arquivo digital já presente em disco ou de um outro stream, este terá de ser codificado/convertido para as taxas de amostragem e qualidade definidas, logo, utilizaremos neste Manual a nomenclatura "encoder" para se referir ao software que irá prover o audio para o servidor.

No caso do áudio digital que você estiver transmitindo tiver taxa de amostragem e qualidades diferentes dos da sua transmissão, o encoder fará a conversão desses atributos para que o áudio possa ser transmitido. Consulte a seção Referência rápida sobre áudio digital para maiores informações.

Voltando ao diagrama, vemos que um servidor de streaming pode receber várias transmissões provenientes de diferentes fontes ao mesmo tempo.

No outro lado, vemos que um servidor pode enviar transmissões simultaneamente para mais de um cliente. Repare que o cliente 1 pode escolher receber a transmissão do computador 1, do computador 2 ou de qualquer outro que esteja transmitindo. O mesmo acontece para o cliente 2 e para todos os outros clientes que estiverem conectados no servidor.

Existe caso especial do diagrama acima, quando o computador fonte também é o servidor. Esse tipo de configuração não é recomendável.

computador fonte e servidor
__________________________
|___________ __________ | internet
| | | -->-->-->-->--> cliente 1
toca discos ->| programa | | programa | |
cd player ->| --> -->-->-->-->--> cliente 2
toca-fitas ->| fonte | | servidor | | ...
|___________| |__________-->-->-->-->--> cliente n
|__________________________|

Diagrama ^: Modelo com fonte e servidor na mesma máquina

Primeiro, porque cada cliente consome um pouco da conexão do servidor à internet. Normalmente os locais de onde se vai fazer a transmissão não tem acesso à internet rápida o suficiente para distribuir o sinal para muitos clientes. Um servidor com uma conexão de 128kbps, por exemplo, suporta enviar um áudio de 24kbps para no máximo 5 clientes, um número muito baixo.

Mesmo se a sua conexão for muito rápida, ainda assim não é recomendável utilizar um computador simultaneamente como fonte e servidor. Um programa fonte consome muito processamento do computador, às vezes o suficiente para inviabilizar o envio do sinal para muitos clientes. Por outro lado, um computador que apenas é servidor de áudio quase não gasta em termos de processamento, pois tudo que ele tem de fazer é reenviar aos clientes o sinal recebido pelas fontes.

Por esses motivos existem servidores dedicados, com banda suficiente para abrigar muitas fontes e muitos clientes. Resumindo, esse tipo de configuração equilibra os recursos da rede de webrádios, deixando o processamento computacional no lado das fontes e a capacidade de transmissão do lado dos servidores.

Cabe aqui a observação de que existem inúmeras outras formas de se fazer uma rede de webrádio, mas essa configuração é a mais viável onde existem poucos servidores com conexão muito rápida.

Algo que é possível de se fazer é utilizar um esquema cliente e servidor num computador com pouca conexão transmitindo para vários servidores também com conexão não muito rápida  com a internet. Estes então transmitem o áudio para os ouvintes, possibilitando que se faça transmissões pela internet sem precisar de conexão extremamente rápida.

Protocolo

A seguir temos uma rápida discussão sobre os protocolos de comunicação usados na internet que pode parecer um pouco sem sentido no contexto de um guia rápido sobre transmissão de áudio. No entanto ela contém informações de base para o entendimento da própria rede de computadores. A leitura desta seção é recomendada, mas se você estiver com preguiça pode pulá-la tranquilamente ou então só deixar de ler os próximos dois parágrafos.

Protocolos são os métodos pelos quais convencionamos fazer as coisas. No tocante à computação,os protocolos referem-se a como programas ou computadores conversam entre si. A internet fundamenta-se na fusão de protocolos conhecida como TCP/IP (Transfer Control Protocol / Internet Protocol).

O protocolo resultante é utilizado em redes onde vários computadores conversam entre si ao mesmo tempo. Resumidamente, cada computador possui um número único, o número IP. As informações intercambiadas entre os computadores são divididas em pacotes e cada pacote é "jogado" na rede.

Cada computador que recebe verifica se o pacote foi endereçado para si e caso negativo ele passa o pacote para frente, até que este chegue ao seu destinatário. Existe ainda um avançado esquema de controle, checagem de erro e verificação de recebimento de pacotes.

Ou seja, o TCP/IP é apenas um protocolo que cuida para que a informação seja transmitida de um computador para outro até chegar a seu destinatário e informar ao computador emissor se a mensagem chegou ou se houve algum erro. Chamemos esse tipo de protocolo de protocolo de transporte, pois ele só trata da transferência de dados de um computador para outro.

Para que os computadores possam conversar ainda é preciso definir outro protocolo, um "idioma" que seja transmitido via pacotes TCP/IP, que é apenas um protocolo de transporte. Existem vários protocolos deste tipo, como o FTP (File Transfer Protocol ou Protocolo de Transferência de Arquivos), o HTTP (que veremos adiante, o HTTPS (HTTP Seguro) e muitos outros mais.

Chamemos estes de protocolos de conversa ou idioma. O TCP/IP permite que um mesmo computador converse ao mesmo tempo com vários outros computadores em vários desses idiomas ao mesmo tempo. Isso é possível graças aos números conhecidos como portas.

Funciona da seguinte maneira: para cada protocolo de conversa o TCP/IP reserva uma porta, que nada mais é do que um número. Quando um programa de computador de uma máquina deseja conversar com outra em HTTP, esse programa coloca no pacote TCP/IP o número da porta específica a esse protocolo (que por convenção é o número 80 para o HTTP).

A seguir esse pacote de informação "cai" na rede e quando chega ao seu destino ele é enviado ao programa responsável pelo programa que conversa naquele idioma de acordo com o número da porta, que nesse exemplo é a 80 para o HTTP.

A relação entre o número da porta e o respectivo protocolo (ou serviço oferecido) tem uma padronização que é muito útil para a intercomunicação entre computadores.

Por exemplo, se um programa de FTP quiser conversar com outro computador, ele tentará logo de cara a porta 21. Se for HTTP, ele tentará 80. Isso não limita, por exemplo, utilizarmos HTTP em outras portas, como veremos adiante.

O que discutimos até aqui é o funcionamento básico da internet. Numa transmissão de áudio, o sinal é transmitido pela internet através do protocolo HTTP (Hypertext Transfer Protocolo), o mesmo protocolo usado pelos navegadores para transferir arquivos na Web.

Como o próprio nome diz, inicialmente esse protocolo foi criado para a transferência de arquivos de Hipertexto do tipo HTML da forma como você o utiliza quando navega em sites, mas dada a sua simplicidade e eficiência ele seu uso foi estendido para a transferência de qualquer tipo de arquivos e inclusive áudio e vídeo. Na Internet, protocolo HTTP é totalmente dependente do TCP/IP, pois a conversa entre os computadores no "idioma" HTTP é transmitida através de pacotes TCP/IP.

Aqui é suficiente para nós sabermos que no HTTP só existem duas conversas (também chamadas de métodos) possíveis entre dois programas ou dois computadores: o método de receber informações (método GET) e o método de enviar, ou POST. Já o método POST é utilizado quando você preenche um formulário nalgum site. Desta vez, é você que envia informações e o programa do site apenas recebe.

Para o caso de um áudio pela internet, o protocolo pode ser tranquilamente usado: o computador que faz a transmissão utiliza continuamente um método POST e os computadores dos ouvintes continuamente utilizam o método GET para receber a transmissão diretamente do servidor. O HTTP normalmente é usado na porta 80 para a navegação em sites e na faixa de portas que vai de 8000 a 8100 para a transmissão de áudio.

Resumindo o que foi dito até aqui, os computadores comunicam-se por protocolos de conversa que trafegam de um lugar para outro utilizando um protocolo de transporte, ou seja, um protocolo é encapsulado dentro do outro. Na prática, se você quiser acessar um computador na internet, você precisa dizer ao seu computador qual é o número IP do computador alvo e qual protocolo utilizar.

Mas existem milhões de computadores na internet, e consequentemente milhões de números IP, então como saberei o número do computador que quero acessar?

A resposta é que você não precisa ficar sabendo qual é o número do computador que você quer acessar. Normalmente quando você navega pela internet, você contacta outros computadores utilizando nomes, como www.midiaindependente.org.

Ao fazer isso, seu computador consulta um servidor de nomes. Um servidor de nomes é um computador especial que contém uma tabela de nomes de computadores e respectivos números IP. Seu computador pergunta qual é o número IP do computador que possui determinado nome e o servidor de nomes consulta seu banco de dados, enviando de volta a você o IP desejado.

Em seguida, seu computador pode efetuar a conexao com seu destino utilizando apenas o IP e o protocolo, de acordo com o que foi explicado nos parágrafos anteriores. Isso tudo é feito de forma transparente ao usuário. Existem vários servidores de nome espalhados pelo mundo. Normalmente você utiliza o servidor de nomes que está mais próximo do seu computador.

Resta-nos uma observação sobre o esquema de endereços utilizado na Internet, também conhecido com URL (Uniform Resource Locator) ou Localizador Uniforme de Recursos). Quando você quer acessar um site, você costuma digitar algo do tipo http://www.qualquercoisa.seilaoque.org.

Esse http avisa o seu navegador para se conectar ao www.qualquercoisa.seilaoque.org usando o protocolo HTTP. Quando isso acontece, o navegador conversa com o programa do site www.qualquercoisa.seilaoque.org e pede para receber o arquivo index.html.

Enquanto o navegador recebe esse arquivo ele vai desenhando-o na tela. Se existe um link para o http://www.qualquercoisa.seilaoque.org/links.html, o navegador pede ao programa do site para receber o arquivo link.html.

E assim você navega pela internet! É bom lembrar que os caracteres :// podem ser entendidos como os separadores do endereço. O que vem antes desses caracteres é o protocolo e o que vem depois é o endereço.

Existe ainda a possibilidade de especificar a porta que será usada pela conexão.

Veja o esquema completo:

.--------------------------------> protocolo
/ .-----------------------> endereço do site
| / .-------------> porta
| | / .------> nome de arquivo ou diretório
| | | /
prot://nome-do-site:porta/nome

O que foi passado nessa seção já é suficiente para compreender o princípio de como não só as transmissões de áudio mas todas as transmissões de dados pela Internet são feitas.

Buffer

As transmissões de áudio em tempo real tem a séria desvantagem de serem suscetíveis ao congestionamento da rede, já que o ouvinte precisa receber dados da transmissão o tempo todo. Para contornar esse problema, os softwares de transmissão e recepção adotaram um sistema de buffer, um armazentamento que funciona como uma memória contra congestionamento da rede, onde o tocador de áudio recebe alguns segundos da transmissão antes de começar a tocar. Dessa forma ele sempre terá armazenado alguns segundos e caso a transmissão interrompa temporariamente a música não precisa parar.

Listagem de diretório

Uma vez que uma transmissão de webradio começa, as informações sobre ela podem ser enviadas para um serviço de Páginas Amarelas (Yellow Pages), sites que funcionam como uma listagem de diretório que exibem informações sobre cada rádio e ainda um link para escutá-las, possibilitando que sua transmissão seja automaticamente divulgada num local específico.

Exemplos de páginas amarelas são os mantidos pelos projetos Icecast, Oddsock e SHOUTcast.Para que um streaming seja listado nas páginas amarelas, é preciso que o servidor esteja configurado para isso.

Envio dos metadados

Além dos metadados dos arquivos de áudio que são tocados, uma transmissão pode ainda ter seus próprios metadados, como nome da rádio, estilo, qualidade, quantos ouvintes estão recebendo a transmissão, etc. Estes dados são exibidos nas páginas amarelas e alguns deles também são recebidos por quem está escutando a rádio.

Resumindo...

Agora vamos resumir, numa linguagem mais técnica, o que vimos até agora: quando falamos em "Streaming de audio" estamos nos referindo a uma transmissão de audio utilizando umarede TCP/IP através do protocolo HTTP.

Na técnica de streaming abordada aqui são utilizadastrês instâncias de software para termos o streaming realizado: um programa cliente que iráprover o audio a ser transmitido, o servidor que irá servir o(s) stream(s) e um player para poder reproduzir o stream.


Sidney (sidneyeditor)
fontes: Wikipedia, UFPR, UTP, Pro Radios

Postagem de 21/01/2009

SMF spam blocked by CleanTalk