Skip to content

JS Expert Week 8.0 - đŸŽ„Pre processing videos before uploading in the browser 😏

Notifications You must be signed in to change notification settings

daihensel/semana-javascript-expert08

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSExpertHub Pre-processing videos on browsers - Semana JS Expert 8.0

Seja bem vindo(a) Ă  oitava Semana Javascript Expert. Este Ă© o cĂłdigo inicial para iniciar nossa jornada.

Marque esse projeto com uma estrela 🌟 e acesse o nosso grupo oficial no WhatsApp

Preview

Pre-reqs

  • Este projeto foi criado usando Node.js v18.17.0
  • O ideal Ă© que vocĂȘ use o projeto em ambiente Unix (Linux). Se vocĂȘ estiver no Windows, Ă© recomendado que use o Windows Subsystem Linux pois nas aulas sĂŁo mostrados comandos Linux que possam nĂŁo existir no Windows.

Importante

  • Todo dia Ă s 18hrs estou subindo o cĂłdigo das aulas do dia corrente em classes. Se vocĂȘ for iniciar o projeto, remova a pasta classes para iniciar do zero!

Running

  • Execute npm ci na pasta que contĂ©m o arquivo package.json para restaurar os pacotes
  • Execute npm start e em seguida vĂĄ para o seu navegador em http:https://localhost:3000 para visualizar a pĂĄgina acima

Checklist Features

  • Video Uploader
    • [] - Deve entender videos em formato MP4 mesmo se nĂŁo estiverem fragmentados
    • [] - Deve processar itens em threads isoladas com Web Workers
    • [] - Deve converter fragmentos de videos em formato 144p
    • [] - Deve renderizar frames em tempo real em elemento canvas
    • [] - Deve gerar arquivos WebM a partir de fragmentos

Desafios

Links mostrados nos aulas:

ConsideraçÔes

  • Tire suas dĂșvidas sobre os desafios em nossa comunidade, o objetivo Ă© vocĂȘ aprender de forma divertida. Surgiu dĂșvidas? Pergunte por lĂĄ!

  • Ao completar qualquer um dos desafios, envie no canal #desafios da comunidade no Discord

FAQ

  • browser-sync estĂĄ lançando erros no Windows e nunca inicializa:
    • Solução: Trocar o browser-sync pelo http-server.
      1. instale o http-server com npm i -D http-server
      2. no package.json apague todo o comando do browser-sync e substitua por npx http-server .
      3. agora o projeto vai estar executando na :8080 entĂŁo vĂĄ no navegador e tente acessar o http:https://localhost:8080/ A unica coisa, Ă© que o projeto nĂŁo vai reiniciar quando voce alterar algum cĂłdigo, vai precisar dar um F5 na pĂĄgina toda vez que alterar algo

Processo do projeto

  • Web Streams - conceito mais importante da aula
  • Stream - processamento sob demanda

Resumo:

  • Baixa um arquivo MP4 sob demanda, que pode ser gigante
  • Demultiplexa com o MP4box, para obter informaçÔes do arquivo e quebrĂĄ-lo em fragmentos
  • Encoda cada fragmento com o Videoencoder, pra transformar esse fragmento de alta resolução para baixa resolução
  • Multiplexa cada fragmento, para gerar pequenos vĂ­deos do WEBM
  • Faz o upload dos fragmentos em WEBM, para o servidor receber esses arquivos e pode fazer esse pĂłs processamento para juntar os fragmentos em um sĂł
  • Decoda cada fragmento com o Videodecoder para renderizar o vĂ­deo transformando em um elemento html conforme ele for sendo processado

Cool stuff

https://transform.tools/json-to-jsdoc

About

JS Expert Week 8.0 - đŸŽ„Pre processing videos before uploading in the browser 😏

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 47.6%
  • HTML 27.7%
  • CSS 24.7%