Tecnologia do Youtube

Pessoal, nao sei se existe uma tecnologia para disponibilizar um video para muitas conexoes… e se isso vai pesar muito. Por exemplo, se o video é visto por 300 pessoas ao mesmo tempo, existe uma forma de deixa-lo ja pré carregado e amenizar os downloads? nao sei se estou viajando mas nao pesquisei a fundo o assunto por nao saber o nome dessa tecnologia, alguem sabe?
e… tem como fazer em java?? ja existe alguma api?
vlw

pls, alguem por favor…

Denis, não exija pressa de alguém para propor uma solução á você.
E tem outro detalhe importante, analise sua necessidade, acha mesmo que estamos falando em Java Básico? No mínimo, é JEE, pois envolve sistema distribuído e conexões WEB, cache, compatibilidade com browsers e afins. Não se trata de algo fácil e muito menos básico.

Sobre o que comentou, encontrei isso em uma pesquisa bem rápida: API Google for YouTube

Eu diria para você encerrar esse tópico e abrir o mesmo em outra parte do fórum que seja mais adequado.
Já antecipo, comece agora suas pesquisas, pode ter certeza que terá muito o que estudar.

Da pra configurar um servidor com Squid , que ele armazena em cache…

http://pt.wikipedia.org/wiki/Squid

certo certo… mas a minha duvida nem é tal ponto… é o seguinte, Usar tal tecnologia melhora na velocidade dos downloads?? e pq?
Pois oque eu pesquisei é que, eles deixam ja o video pré carregado. Mas no que isso pode ajudar no download??? se voce terá que disponibilizar para outra pessoa, logo é um download que o usuario terá que fazer. Não consigo entender a relação da tecnologia. E qual seria o nome dessa tecnologia para eu começar a pesquisar a fundo.

[quote=denisspitfire]Pessoal, nao sei se existe uma tecnologia para disponibilizar um video para muitas conexoes… e se isso vai pesar muito. Por exemplo, se o video é visto por 300 pessoas ao mesmo tempo, existe uma forma de deixa-lo ja pré carregado e amenizar os downloads? nao sei se estou viajando mas nao pesquisei a fundo o assunto por nao saber o nome dessa tecnologia, alguem sabe?
e… tem como fazer em java?? ja existe alguma api?
vlw[/quote]

Não existe tal tecnologia unica para se dar olução para aplicativos desse porte…
Na verdade, vc precisa projetar uma solução que tenha uma arquitetura tal que some diversas tecnologias, praticas, abordagens, padrões, infra-estrutura compativel para cumprir esses requisitos…não teríamos como descrever aqui, sendo um estudo profundo para um arquiteto com muitos e muitos anos de experiencia. Nenhuma solução desse tipo(YouTube, Facebook, etc…) nasce da noite para dia, ele na verdade vai evoluindo em nivel de escalabilidade de acordo com o tempo…

É possível fazer com java sim, da mesma forma que é possível fazer com outra plataformas tb.

Na revista Java Magazine Edição 97 tem um artigo na pagina 14 que aborda JEE 6 com NoSQL para da solução em aplicações desse nível. Vale lembrar que o uso de NoSQL não é o único recurso “bala de prata” para tais casos…mas o artigo é um bom começo…

essa técnologia se chama: http://minilua.com/velocidade-internet-google/

não só do google, será que o youtube fica no servidor com essa internet…provavelmente não

deve ficar em um com uma internet extremamente mais parruda do que essa acima…

se você quer fazer isso…tem que ter um link extremamente parrudastico…

pra você ter uma idéia 572MBs por segundo… aqui no brasil é somente 10% da internet…

então se você quizesse disponibilidar o youtube na sua casa com a velocidade da internet do google…teria que contratar um link de 572 * 10 = 5.772 MB

a minha internet é de 2mb lol…a taxa de download é de 200kbps e a de upload é de 50kbps

minha internet teria que ser 2860 vezes mais rapida do que é agora…

se eu pago 80 reais por mes: então eu faço: 80 * 2860 = 228 mil por mês…e não é dedicado…didicado pode colocar ai 1 milhãozinho+++

O.O entendi… era isso que eu queria saber… tipo, tem como fazer eu sei que tem… que da trabalho e levaria um tempo para a arquitetura também, mas nao sabia que iria acarretar tanto na internet. Até entao que eu tinha achado estranho que isso resolveria o problema da velocidade…
agora uma duvida… se eu dividir em 3 - 4 hospedagens… e identificar pelo ip do cara e reencaminhar ou usar de 1 a 4 hospedagens para que quando uma ja estiver cheia usar a segunda e assim por diante… tem como?

Procure por Akamai: é uma empresa especializada em trafego de dados. Este tipo de solução envolve muito mais infra-estrurra de redes do que o da sua aplicação.

Ah! Procure também por referencias de como o Netflix funciona… :slight_smile:

[quote=denisspitfire]O.O entendi… era isso que eu queria saber… tipo, tem como fazer eu sei que tem… que da trabalho e levaria um tempo para a arquitetura também, mas nao sabia que iria acarretar tanto na internet. Até entao que eu tinha achado estranho que isso resolveria o problema da velocidade…
agora uma duvida… se eu dividir em 3 - 4 hospedagens… e identificar pelo ip do cara e reencaminhar ou usar de 1 a 4 hospedagens para que quando uma ja estiver cheia usar a segunda e assim por diante… tem como? [/quote]

tipo, a sua idéia seria criar um servidor de Videos estilo youtube, a unica solução que vejo é um cluster de vários servidores bem barrudos, fibra ótica por todos os lados, servidores apenas de HDs/Backups hehe, e também o servidor principal onde o sistema ficaria.

generalizando, tirando a parte dos milhões de dolares, você teria que criar um sistema com arquitetura distribuida como o FernandoFranzini disse…e sistema de cache também…,

vamos dizer que todas as áreas de TI que você conhece teriam que trabalhar em um projeto desses…é muita coisa para explicar, e eu também nao sei te explicar quase nada hehe…puro achismo…rs

Caras Fodões em: Infraestrutura-Pesada, Cabeamento pesado, Mainframes, Clusters, nego fera em linux, virtualização, monitoramento de trafego geral, equipe especialista em backup/restore e armazenamento de dados…quem sabe até um sub-backbone…,

você acaba criando uma infra tão pesada, que não vale a pena guardar apenas videos, e sim todo tipo de arquivo/trafego e processamento…

é um Quartel General

um cara que tinha toda essa estrutura era o Kim “Dotcom” Schmitz dono do megaupload…

hummm no caso seria para videos institucionais… porém nao acho que precise do mesmo porte do youtube… quantos usuarios estao online agora no youtube? no maximo aqui daria 3000 acessos por dia. Entende?

Acho que para streaming de video, o requisito tem que ser quantos usuários simultâneos voce espera suportar: 3000? Outro dado importante: tamanho dos vídeos. Aí é questão de matemática: banda e carga no servidor suporta tamanho dos vídeos x usuários. Se o servidor/link não suportar, aí você tem que partir para soluções de distribuição de trafego/carga. Dependedo vai sair mais em conta você contratar o serviço de algum site/data center para fazer isto pois daí eles fazem esta conta para você… :slight_smile:

quantos acessos baixando simultaneamente? uns 50 ?

o acesso aos videos é via internet mesmo né ? então teriamos que calcular

supondo que cada usuário tivesse internet de 1mb…você poderia limitar o upload por conexão…

então teriamos ai 50mb de internet…o equivalente a 5mbps, você teria que ter um link dedicado que fosse capaz de te oferecer velocidade de 5mbps de upload e uns 15mbps de download…o equivalente a uma internet de 150mbps dedicado aqui no brasil…

mas…por sorte, existem servidores dedicados no exterior você teria que conseguir um desses…com bastante armazenamento e de preferencia banda ilimitada…tem que pesquisar…

dependendo da quantidade de videos, um servidor web com banco de dados nesse mesmo servidor ja funciona bem…, mais como eu disse: tem que achar um com 5mbps de upload

No caso específico do YouTube os dados são vídeos. Eles tem a característica extremamente conveniente de ser read-only.
Portanto, é bastante fácil você distribuir vários servidores de cache, e fazer cópias dos vídeos a medida que forem assistidos.

Já para redes sociais gigantes, o negócio fica bem mais tenso.