#4 Streaming via webrtc/webtorrent

Closed
opened 7 years ago by guilmour · 7 comments
guilmour commented 7 years ago

Ficamos dependentes de grandes como Youtube, Vimeo, etc para hospedar os vídeos. Seria interessente um steaming com webtorrent.

https://webtorrent.io/faq

Ficamos dependentes de grandes como Youtube, Vimeo, etc para hospedar os vídeos. Seria interessente um steaming com webtorrent. https://webtorrent.io/faq

Como acabei de conhecer a plataforma, permita-me fazer algumas perguntas idiotas. :-)

Se os vídeos hoje estão no Youtube e Vimeo, mudar para webtorrent significaria também manter um repositório com os vídeos, para garantir que esses estarão sempre disponíveis. Existe algum parceiro para prover esse espaço? Uma universidade talvez?

Lendo o models/Watch.js não identifiquei onde é declarada a origem do vídeo (Youtube, Vimeo, ...). Seria necessário alguma adição especial para o uso do webtorrent?

Faz sentido pensar em disponibilizar N versões do mesmo vídeo via webtorrent com variação de bitrate para melhor se adequar a "banda e espaço (para off-line)" versus "qualidade"? Isso significaria que o model models/Watch.js pode não ser suficiente ou deve receber alguma modificação relevante...

Como acabei de conhecer a plataforma, permita-me fazer algumas perguntas idiotas. :-) Se os vídeos hoje estão no Youtube e Vimeo, mudar para webtorrent significaria também manter um repositório com os vídeos, para garantir que esses estarão sempre disponíveis. Existe algum parceiro para prover esse espaço? Uma universidade talvez? Lendo o `models/Watch.js` não identifiquei onde é declarada a origem do vídeo (Youtube, Vimeo, ...). Seria necessário alguma adição especial para o uso do webtorrent? Faz sentido pensar em disponibilizar N versões do mesmo vídeo via webtorrent com variação de bitrate para melhor se adequar a "banda e espaço (para off-line)" versus "qualidade"? Isso significaria que o model `models/Watch.js` pode não ser suficiente ou deve receber alguma modificação relevante...
guilmour commented 6 years ago
Owner

Olá, @aurium. Obrigado por se juntar a nossa roda de discussões, suas ponderações foram excelentes.

Exatamente, teríamos que ter parcerias mesmo, ou alguns bom seeders voluntários com boa internet (coisa rara por aqui). Aqui em minha cidade, o C3SL tem mirrors de dezenas softwares livre. Acho que eles seriam potenciais parceiros nessa.

Vale lembrar também que a migração para webtorrent não seria total, pois cobriria apenas produções com licenças mais permissivas como CC, Kopimi ou Domínio Público. As produções em que os autores apenas sobem para o Vimeo, YouTube e etc. teriam que ser servidas por eles mesmo. Claro que poderíamos conversar com os criadores do conteúdo para que, quando possível, pudêssemos ter uma cópia para webtorrent também.

No models/Watch.js a origem do video fica somente video mesmo, podemos criar novas para cada tipo, se como yt_url, vimeo_url e o webtorrent_hash.

Tem razão, também tinha pensado nisso. Se usarmos webtorrent teríamos que ter N versões para abrangir usuários mobile ou com menos banda. Dá para fazer um sh e converter as produções em várias dimensões, e fazer no models/Watch.js um para cada. Talvez um 480p, um 720p e um 1080p já estaria bom, não é?

Olá, @aurium. Obrigado por se juntar a nossa roda de discussões, suas ponderações foram excelentes. Exatamente, teríamos que ter parcerias mesmo, ou alguns bom seeders voluntários com boa internet (coisa rara por aqui). Aqui em minha cidade, o [C3SL](https://www.c3sl.ufpr.br/) tem *mirrors* de dezenas softwares livre. Acho que eles seriam potenciais parceiros nessa. Vale lembrar também que a migração para webtorrent não seria total, pois cobriria apenas produções com licenças mais permissivas como CC, Kopimi ou Domínio Público. As produções em que os autores apenas sobem para o Vimeo, YouTube e etc. teriam que ser servidas por eles mesmo. Claro que poderíamos conversar com os criadores do conteúdo para que, quando possível, pudêssemos ter uma cópia para webtorrent também. No ``models/Watch.js`` a origem do video fica somente ``video`` mesmo, podemos criar novas para cada tipo, se como ``yt_url``, ``vimeo_url`` e o ``webtorrent_hash``. Tem razão, também tinha pensado nisso. Se usarmos webtorrent teríamos que ter N versões para abrangir usuários *mobile* ou com menos banda. Dá para fazer um sh e converter as produções em várias dimensões, e fazer no ``models/Watch.js`` um para cada. Talvez um 480p, um 720p e um 1080p já estaria bom, não é?

Valeu pela resposta!

Legal vc ter contato com o C3SL! Se não me engano eles tem um mirror do Debian e estão na RNP, certo? Acho que eles tem a boa vontade e os recursos para serem um bom repositório.

A sua intenção de adicionar novos campos no models/Watch.js me deu uma idéia. Não seria necessário um novo model para as N versões, bastaria adicionar um array de versões. :-)

Eu fiz o plugin HTML5_Video do Noosfero. Ele usa o Ffmpeg para converter os videos publicados na plataforma. É de boa!

Valeu pela resposta! Legal vc ter contato com o C3SL! Se não me engano eles tem um mirror do Debian e estão na RNP, certo? Acho que eles tem a boa vontade e os recursos para serem um bom repositório. A sua intenção de adicionar novos campos no `models/Watch.js` me deu uma idéia. Não seria necessário um novo model para as N versões, bastaria adicionar um array de versões. :-) Eu fiz o [plugin `HTML5_Video` do Noosfero](http://noosfero.org/Development/HTML5VideoPlugin). Ele usa o Ffmpeg para converter os videos publicados na plataforma. É de boa!

Imagino que os repositórios devem rodar uma aplicação baseada no WebTorrent via WebRTC. A lib WebTorrent aparentemente faz o serviço, provendo o serviço sem depender de um navegador. O único problema é que o suporte a WebRTC depende Electron, via sua base chromium. O módulo webtorrent-hybrid implementa a solução com headless Electron e pode-se rodar no server com XVFB.

Imagino que os repositórios devem rodar uma aplicação baseada no WebTorrent via WebRTC. A [lib WebTorrent](https://webtorrent.io/docs) aparentemente faz o serviço, provendo o serviço sem depender de um navegador. O único problema é que o suporte a WebRTC depende Electron, via sua base chromium. O módulo [webtorrent-hybrid](https://github.com/webtorrent/webtorrent-hybrid) implementa a solução com headless Electron e pode-se rodar no server com XVFB.

Olá, tudo bem?

Acho essa tecnologia do WebTorrent bem interessante, e quanto a parte de transmitir os vídeos, eu descobri isso: o Zeronet (https://zeronet.io/ - projeto que permite criar e distribuir sites em p2p) criou dois "Youtubes torrent". Eu usei um pouco e percebi que muitos vídeos sofrem com o baixo ou nulo número de seeds depois de pouco tempo, mas se conseguirmos alguma equipe pra ficar de mirror - como o Guilmour falou - esse problema estaria resolvido.

Esse projeto também transmite vídeos em p2p e funciona num navegador normal: https://www.bitchute.com/

Esse projeto - https://xuset.github.io/planktos/ - transforma site estático em p2p e funciona em Chorme e Firefox. Acho que pode ser interessante criar um mirror do Libreflix nesse formato (que pode aliviar a carga do servidor caso muita gente venha a acessar - o Zeronet também funciona mais ou menos assim, pode ser interessante criarmos uma versão do site lá. Ele transmite tanto os links Webtorrent quanto os do Youtube).

Essas são minhas sugestões. Não entendo de programação, mas gosto de tecnologia e da ideia do projeto.

Ps: a própria BitTorrent chegou a desenvolver um navegador do tipo (projeto Maelstrom). Cheguei a usar na época, mas parece que o projeto foi descontinuado.

Olá, tudo bem? Acho essa tecnologia do WebTorrent bem interessante, e quanto a parte de transmitir os vídeos, eu descobri isso: o Zeronet (https://zeronet.io/ - projeto que permite criar e distribuir sites em p2p) criou dois "Youtubes torrent". Eu usei um pouco e percebi que muitos vídeos sofrem com o baixo ou nulo número de seeds depois de pouco tempo, mas se conseguirmos alguma equipe pra ficar de mirror - como o Guilmour falou - esse problema estaria resolvido. Esse projeto também transmite vídeos em p2p e funciona num navegador normal: https://www.bitchute.com/ Esse projeto - https://xuset.github.io/planktos/ - transforma site estático em p2p e funciona em Chorme e Firefox. Acho que pode ser interessante criar um mirror do Libreflix nesse formato (que pode aliviar a carga do servidor caso muita gente venha a acessar - o Zeronet também funciona mais ou menos assim, pode ser interessante criarmos uma versão do site lá. Ele transmite tanto os links Webtorrent quanto os do Youtube). Essas são minhas sugestões. Não entendo de programação, mas gosto de tecnologia e da ideia do projeto. Ps: a própria BitTorrent chegou a desenvolver um navegador do tipo (projeto Maelstrom). Cheguei a usar na época, mas parece que o projeto foi descontinuado.

Desenvolveram esse "Youtube" que faz o streaming de vídeos no WebTorrent: https://www.bitchute.com/faq. Eles estão aceitando uploads do público, então pode ser uma boa plataforma para o Libreflix.

Desenvolveram esse "Youtube" que faz o streaming de vídeos no WebTorrent: https://www.bitchute.com/faq. Eles estão aceitando uploads do público, então pode ser uma boa plataforma para o Libreflix.
guilmour commented 2 months ago
Owner
Entregue no Libreflix em 2022: https://blog.libreflix.org/2019/11/11/libreflix-agora-e-p2p/
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.