Pessoal, criei pra o meu provedor, um servidor de filmes online, hospedado na intranet e gostaria de mostrá-lo a vocês. Apesar de totalmente funcional, ainda considero ele como projeto, por conta das minúcias legais e também porque estou aberto a críticas e sugestões de melhoria.
Separei ítem a ítem todo o processo, pois acho que segmentando não fica tão cansativo:
1. APRESENTAÇÃO
Começamos então com um catálogo estilo carrocel: simples, prático e funcional, que tenta fazer as vezes de uma prateleira de locadora.
== -- Clique nas imagens para Ampliar -- ==
CLIQUE AQUI ACESSAR O CATÁLOGO DEMONSTRATIVO
2. REPRODUÇÃO
O sistema possui 2 players, assumindo um player em HTML5 caso o navegador identificado seja o Chrome ( por conta do suporte nativo a h.264 ), e um player em Flash caso seja outro navegador. Opcionalmente pode-se forçar o Chrome a rodar em Flash também.
O tocador HTML5 é bem mais avançado, permite avançar e retroceder o filme sem que ele esteja cacheado, diminui automaticamente o consumo da banda quando atinge cache suficiente, e corrige alguns bugs na imagem que o tocador em flash tem dependendo da placa de video. A única vantagem do tocador em flash é que ele é mais leve, se comportando melhor em PCs e Notes mais antinguinhos.
Opcionalmente pode-se utilizar o VLC ou o KM-Player para a reprodução, já tenho código pronto para integração e uma versão modificada do VLC pronta para o uso. O VLC fica recomendado então, somente para PCs e Notes muito antigos, "maiores" de 10 anos.
Até mesmo SmartTVs, HTPC's, e outros dispositivos capaz de lerem arquivos mp4 em AVC são capazes de rodar o filme, bastanto algumas pequenas modificações no código.
3. CONSUMO DE BANDA
Eu utilizo aqui 2.4GHz em metade da minha rede, e com 600k já é possível rodar os filmes em SD 480p 400kbps. Mas é possível rodá-los em SD 480p 1500kbps, exigindo uma conexão de 2MB, ideal para quem usa 5.8GHz em A (até mesmo 2,4GHz em N). Ou ainda HD 720p 3000kpbs, exigindo 4MB, ideal para quem usa 5.8GHz em N.
Com exceção da resolução mais baixa (SD 480p 400kbps), demais resoluções e bitrates podem ser modificados a vontade na hora do encode, porém fica recomendado as configurações aqui mostradas pois elas se baseiam em meus testes e na minha experiência.
4. DEMONSTRAÇÃO
==-- 480p / 400kbs / recomendado para 2,4 em B/G --==
== -- Clique na imagem para Ampliar -- ==
CLIQUE AQUI PARA ASSISTIR
==-- 480p / 1500kbs / recomendado para 2,4 em N ou 5,8 em A --==
== -- Clique na imagem para Ampliar -- ==
CLIQUE AQUI PARA ASSISTIR
==-- 720p / 3000kbs / recomendado para 5,8 em N --==
== -- Clique na imagem para Ampliar -- ==
CLIQUE AQUI PARA ASSISTIR5. CODIFICAÇÃO E FORMATO DO ARQUIVO
Esse ítem guardo com maior segredo, pois é a alma do negócio. Mas obviamente informações que não há como esconder: Codificado em h.264 com audio em AAC "muxado" num container MP4.
6. CONSUMO DE RECURSOS
Este sistema de video sob demanda ( VOD ) nada mais é do que um Webserver.
Pode-se usar qualquer ferramenta de hospedagem, como o Apache ou o Lighttpd. Como o sistema não usa nada de recursos avançados (php/asp/ect) , eu uso e recomendo o Nginx, que vejam só, ocupa 5MB de RAM.
O consumo de recursos do sistema é baixíssimo, em termos de memória, o consumo é de, conforme já relatados, 5MB.
Em termos de processamento, menos de 5%. Quando um cliente está assistindo um filme ou navegando pelos catálogos, a única coisa que está ocorrendo é a leitura de arquivos html e arquivos de video. Logo todo e qualquer consumo de CPU se dá apenas com o processamento gasto em leitura de disco e rede. Que são processos que não requerem atenção direta de CPU, por consequencia, ínfimos.
A única coisa que realmente é consumida, e a banda do HD. Mas ainda assim, é muito baixa.
Tomemos por exemplo um filme com bitrate em 400kbps, "bitrate" nada mais é que: quantos kilobits são lidos por segundo.
Taxas de HD são medidas em Bytes ( Megabytes ), vamos converter: 400kbps = 50KBps = 0,05 MBps . Cada cliente assistindo a um filme consome 0,05 Megabytes . Por exemplo, um HD dos mais bagaceiros, vai conseguir entregar em leitura randômica, no mínimo, uns 15MBps.
Em matemática pura, são 300 clientes simultâneos, logo um HD supriria aí o que, no campo do achômetro uns 3000 clientes.
Claro, precisamos salientar que talvez um braço de leitura não consiga ler 300 pontos diferentes do HD em 1s, eu disse talvez, já entrei em contato com os fabricantes de HD, mas essa informação não me foi passada pois segundo informações da Seagate, ela é sigilosa.
Aqui com meus menos de 200 clientes, com situações de 10 espectadores simultâneos não deu nem "cósca".
Em termos de espaço necessário, este varia de acordo com o bitrate utilizado, mas tomando por base um filme de 2h, podemos aplicar matemática básica também:
400kbps = 0,05MB/s
2h = 7200segundos
7200s * 0,05MB/s = 360MB de armazenamento por filme
Então:
400kbps = ~0,36GB por filme
1500kbps = ~1,35GB por filme
3000kbps = ~2,70GB por filme
7. HARDWARE/SOFTWARE NECESSÁRIOS
Qualquer Celeronzinho com 512MB de RAM e HD de 80GB atenderia tranquilo 50 clientes simultâneos e suportaria 150 filmes ( 200 em teoria, mas convém não encher o HD ).
O sistema pode ser tanto Windows quanto Linux. Aqui eu particularmente uso Windows por que faço ainda outras 3 funções com meu notezinho (uso um note com a tela quebrada que recebi como pagamento de uma dívida ). É um Pentium4 Dual Core 2,27GHz com 2GB de Memo e HD de 320GB. Uso ele para além deste sistema VOD aqui apresentado, um sistema de jogos online dentro do provedor, máquina para encodes ( daí uma vantagem de ser Dual Core, posso jogar o encode para o 2o. núcleo, já que servidores http e de jogos só usam um core ) e também, como essa máquina fica todo tempo ligada, todos os downloads que eu preciso, faço nela.
É preciso falar aqui que o servidor de jogos fecha um par perfeito com o servidor de filmes, pois o que um consome de recursos o outro não usa. Mais adiante, conforme já prometi há alguns membros aqui, vou detalhar o funcionamento deste servidor de jogos.
8. TOPOLOGIA DE REDE
Basicamente se você consegue pingar da casa do cliente, funciona
Ou seja, basta que o servidor esteja acessível, seja em ponte, seja roteado, seja tunelado, seja paralelo ao seu controlador de rede, seja cliente do seu controlador de rede, seja depois ou antes do mesmo, pouco importa. Quanto mais escondido você o colocar, terá que configurar mais dispositivos para rotear. No meu sistema eu uso uma Eth do meu MK Concentrador, onde o VOD fica como cliente, porém com faixa de IP separada, e os clientes chegam nele roteados ( sem NAT entre Clientes do Provedor e VOD ). Isso me permitiu marcar pacotes e controlar a banda em separado, dentro da queue simple de cada cliente. Mas sabemos que pode ser feito de várias outras formas, usando fila PCQ por exemplo, aos moldes como seria um servidor cache. Aliás, o VOD não deixa de ser um servidor Cache, ou seja, um servidor de arquivos da internet(filmes no caso) na intranet.
9. CUSTOS
De infra, depende de suas intenções, quantidade de filmes, clientes atendidos, etc
De implantação, acharia mais elegante tratarmos isso por MP ou pelos contatos disponibilizados abaixo, mas posso adiantar que não se assustem, o sistema está ( por enquanto ) na casa de 2 zeros antes da vírgula.
10. CONTATO
silviola[arroba]gmail[ponto]com (email / msn)
silviola_rs (Skype)
Facebook: https://www.facebook.com/profile.php?id=100004427289013
Telefone: (\0\5\5) \9\6\3\0-\5\2\7\8 / (\0\5\5) \3\2\3\1-\3\2\2\2
Separei ítem a ítem todo o processo, pois acho que segmentando não fica tão cansativo:
1. APRESENTAÇÃO
Começamos então com um catálogo estilo carrocel: simples, prático e funcional, que tenta fazer as vezes de uma prateleira de locadora.
== -- Clique nas imagens para Ampliar -- ==
CLIQUE AQUI ACESSAR O CATÁLOGO DEMONSTRATIVO
2. REPRODUÇÃO
O sistema possui 2 players, assumindo um player em HTML5 caso o navegador identificado seja o Chrome ( por conta do suporte nativo a h.264 ), e um player em Flash caso seja outro navegador. Opcionalmente pode-se forçar o Chrome a rodar em Flash também.
O tocador HTML5 é bem mais avançado, permite avançar e retroceder o filme sem que ele esteja cacheado, diminui automaticamente o consumo da banda quando atinge cache suficiente, e corrige alguns bugs na imagem que o tocador em flash tem dependendo da placa de video. A única vantagem do tocador em flash é que ele é mais leve, se comportando melhor em PCs e Notes mais antinguinhos.
Opcionalmente pode-se utilizar o VLC ou o KM-Player para a reprodução, já tenho código pronto para integração e uma versão modificada do VLC pronta para o uso. O VLC fica recomendado então, somente para PCs e Notes muito antigos, "maiores" de 10 anos.
Até mesmo SmartTVs, HTPC's, e outros dispositivos capaz de lerem arquivos mp4 em AVC são capazes de rodar o filme, bastanto algumas pequenas modificações no código.
3. CONSUMO DE BANDA
Eu utilizo aqui 2.4GHz em metade da minha rede, e com 600k já é possível rodar os filmes em SD 480p 400kbps. Mas é possível rodá-los em SD 480p 1500kbps, exigindo uma conexão de 2MB, ideal para quem usa 5.8GHz em A (até mesmo 2,4GHz em N). Ou ainda HD 720p 3000kpbs, exigindo 4MB, ideal para quem usa 5.8GHz em N.
Com exceção da resolução mais baixa (SD 480p 400kbps), demais resoluções e bitrates podem ser modificados a vontade na hora do encode, porém fica recomendado as configurações aqui mostradas pois elas se baseiam em meus testes e na minha experiência.
4. DEMONSTRAÇÃO
==-- 480p / 400kbs / recomendado para 2,4 em B/G --==
== -- Clique na imagem para Ampliar -- ==
CLIQUE AQUI PARA ASSISTIR
==-- 480p / 1500kbs / recomendado para 2,4 em N ou 5,8 em A --==
== -- Clique na imagem para Ampliar -- ==
CLIQUE AQUI PARA ASSISTIR
==-- 720p / 3000kbs / recomendado para 5,8 em N --==
== -- Clique na imagem para Ampliar -- ==
CLIQUE AQUI PARA ASSISTIR
Esse ítem guardo com maior segredo, pois é a alma do negócio. Mas obviamente informações que não há como esconder: Codificado em h.264 com audio em AAC "muxado" num container MP4.
6. CONSUMO DE RECURSOS
Este sistema de video sob demanda ( VOD ) nada mais é do que um Webserver.
Pode-se usar qualquer ferramenta de hospedagem, como o Apache ou o Lighttpd. Como o sistema não usa nada de recursos avançados (php/asp/ect) , eu uso e recomendo o Nginx, que vejam só, ocupa 5MB de RAM.
O consumo de recursos do sistema é baixíssimo, em termos de memória, o consumo é de, conforme já relatados, 5MB.
Em termos de processamento, menos de 5%. Quando um cliente está assistindo um filme ou navegando pelos catálogos, a única coisa que está ocorrendo é a leitura de arquivos html e arquivos de video. Logo todo e qualquer consumo de CPU se dá apenas com o processamento gasto em leitura de disco e rede. Que são processos que não requerem atenção direta de CPU, por consequencia, ínfimos.
A única coisa que realmente é consumida, e a banda do HD. Mas ainda assim, é muito baixa.
Tomemos por exemplo um filme com bitrate em 400kbps, "bitrate" nada mais é que: quantos kilobits são lidos por segundo.
Taxas de HD são medidas em Bytes ( Megabytes ), vamos converter: 400kbps = 50KBps = 0,05 MBps . Cada cliente assistindo a um filme consome 0,05 Megabytes . Por exemplo, um HD dos mais bagaceiros, vai conseguir entregar em leitura randômica, no mínimo, uns 15MBps.
Em matemática pura, são 300 clientes simultâneos, logo um HD supriria aí o que, no campo do achômetro uns 3000 clientes.
Claro, precisamos salientar que talvez um braço de leitura não consiga ler 300 pontos diferentes do HD em 1s, eu disse talvez, já entrei em contato com os fabricantes de HD, mas essa informação não me foi passada pois segundo informações da Seagate, ela é sigilosa.
Aqui com meus menos de 200 clientes, com situações de 10 espectadores simultâneos não deu nem "cósca".
Em termos de espaço necessário, este varia de acordo com o bitrate utilizado, mas tomando por base um filme de 2h, podemos aplicar matemática básica também:
400kbps = 0,05MB/s
2h = 7200segundos
7200s * 0,05MB/s = 360MB de armazenamento por filme
Então:
400kbps = ~0,36GB por filme
1500kbps = ~1,35GB por filme
3000kbps = ~2,70GB por filme
7. HARDWARE/SOFTWARE NECESSÁRIOS
Qualquer Celeronzinho com 512MB de RAM e HD de 80GB atenderia tranquilo 50 clientes simultâneos e suportaria 150 filmes ( 200 em teoria, mas convém não encher o HD ).
O sistema pode ser tanto Windows quanto Linux. Aqui eu particularmente uso Windows por que faço ainda outras 3 funções com meu notezinho (uso um note com a tela quebrada que recebi como pagamento de uma dívida ). É um Pentium4 Dual Core 2,27GHz com 2GB de Memo e HD de 320GB. Uso ele para além deste sistema VOD aqui apresentado, um sistema de jogos online dentro do provedor, máquina para encodes ( daí uma vantagem de ser Dual Core, posso jogar o encode para o 2o. núcleo, já que servidores http e de jogos só usam um core ) e também, como essa máquina fica todo tempo ligada, todos os downloads que eu preciso, faço nela.
É preciso falar aqui que o servidor de jogos fecha um par perfeito com o servidor de filmes, pois o que um consome de recursos o outro não usa. Mais adiante, conforme já prometi há alguns membros aqui, vou detalhar o funcionamento deste servidor de jogos.
8. TOPOLOGIA DE REDE
Basicamente se você consegue pingar da casa do cliente, funciona
Ou seja, basta que o servidor esteja acessível, seja em ponte, seja roteado, seja tunelado, seja paralelo ao seu controlador de rede, seja cliente do seu controlador de rede, seja depois ou antes do mesmo, pouco importa. Quanto mais escondido você o colocar, terá que configurar mais dispositivos para rotear. No meu sistema eu uso uma Eth do meu MK Concentrador, onde o VOD fica como cliente, porém com faixa de IP separada, e os clientes chegam nele roteados ( sem NAT entre Clientes do Provedor e VOD ). Isso me permitiu marcar pacotes e controlar a banda em separado, dentro da queue simple de cada cliente. Mas sabemos que pode ser feito de várias outras formas, usando fila PCQ por exemplo, aos moldes como seria um servidor cache. Aliás, o VOD não deixa de ser um servidor Cache, ou seja, um servidor de arquivos da internet(filmes no caso) na intranet.
9. CUSTOS
De infra, depende de suas intenções, quantidade de filmes, clientes atendidos, etc
De implantação, acharia mais elegante tratarmos isso por MP ou pelos contatos disponibilizados abaixo, mas posso adiantar que não se assustem, o sistema está ( por enquanto ) na casa de 2 zeros antes da vírgula.
10. CONTATO
silviola[arroba]gmail[ponto]com (email / msn)
silviola_rs (Skype)
Facebook: https://www.facebook.com/profile.php?id=100004427289013
Telefone: (\0\5\5) \9\6\3\0-\5\2\7\8 / (\0\5\5) \3\2\3\1-\3\2\2\2
Última edição por silviola em Sáb 6 Abr - 13:59, editado 5 vez(es) (Motivo da edição : Adição de Contato)