Analisando propostas

Customizar Flash Player do Video.js

Publicado em 17 de Janeiro de 2017 dias na TI e Programação

Sobre este projeto

Aberto

Nós fornecemos soluções para empresas de ônibus monitorarem seus veículos. Para tal, desenvolvemos um sistema que permite cada analista assistir os vídeos gravados em nossos equipamentos embarcados. Assim, toda vez que um analista encontra algo errado, ele pode gerar uma ocorrência e registrar aquele evento.


Nós usamos um DVR (construído por terceiros) para gravar tudo o que acontece no interior dos ônibus (e as vezes fora também). Esse dvr grava todos os vídeos em um avi malformado, ou seja, que executa apenas no player do fornecedor. Cada dia gravado contém, em média, 96 pacotes com 1h cada (24h/dia * 4 câmeras por veículo), embora esse número possa crescer/diminuir dependendo da quantidade de câmeras em cada ônibus.


O problema é que esse player não atende nossos requisitos e, como o suporte do fornecedor não nos atende, decidimos desenvolver o nosso próprio.

Iniciamos o desenvolvimento de um player chamado "multiplayer", já que ele precisa reproduzir de 1 a 8 vídeos simultaneamente (dependendo de quantas câmeras o veículo possui em seu interior). Para tal, usamos de 1 a 8 instâncias do video.js para reproduzir todos os vídeos simultaneamente em um mosaico. Até agora, nós desenvolvemos as seguintes funcionalidades:

1) Play / Pause;
2) Stop;
3) Frame a frame;
4) Playlist;
5) Velocidade de reprodução (1x a 16x, dependendo do navegador utilizado);
6) Snapshot (será implementada em breve);
7) Geração de ocorrência;
8) Busca (o usuário pode inserir um tempo específico e buscar por ele dentro do vídeo);
9) Habilitar / desabilitar a visualização de câmeras;
10) Baixar o vídeo;
11) Tela cheia.


Todas essas funcionalidades foram implementadas utilizando a API do Video.js (na maioria das vezes apenas repassamos um clique na nossa barra de controle para as barras de controles dos players no mosaico - que estão ocultas). Por conta disso, nós precisamos customizar o player Flash do Video.js para mantermos o código já escrito, uma vez que as funções da API são as mesmas, não importa qual player está sendo utilizado, HTML5 ou Flash. Em outras palavras:

Ambos os players devem executar todas as funcionalidades da mesma forma (exatamente o que acontece na implementação padrão do Video.js).
Assim, o trabalho consiste em refatorar o player flash do Video.js para decodificar nosso arquivo AVI enquanto mantém todas as funções nativas funcionando. Além disso, também é necessário extrair alguns metadados de GPS embutidos em cada frame para que possamos plotar em um mapa a posição do veículo no momento da gravação.

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Alteração média
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho especificações
Disponibilidade requerida Conforme necessário
Experiência nesse tipo de projeto Sim (Eu já gerenciei esse tipo de projeto)
Integrações de API Outros (Outras APIs)
Funções necessárias Desenvolvedor

Prazo de Entrega: Não estabelecido

Habilidades necessárias