- Crie uma pasta
processarcom os videos para processar dentro dela - Certifique-se que você possui as credenciais de acesso para o banco de dados no arquivo
.env - Instale as dependências rodando
npm installe em seguida rode o processamentonpm run processarVideos - Aguarde
- Vídeos processados vão estar na pasta
videose serão salvos também no banco de dados
Este arquivo deve ser criado no diretório principal do projeto.
BD_PORTA=27017
BD_ENDERECO=127.0.0.1
BD_DB=videos
- Crie um arquivo chamado
.enve siga o exemplo acima, configurando de acordo com o seu banco de dados MongoDB - Rode
npm installpara instalar as dependências - Rode
node .
Em geral as respostas de uma requisição são um objeto JSON, contendo sempre uma propriedade chamada sucesso (auto-explicativo). Se sucesso for false significa que um erro ocorreu no servidor, neste caso o status será 400 e a propriedade mensagem dirá mais sobre esse erro. Exemplo:
{
"sucesso": false,
"mensagem": "mensagem detalhando o erro aqui blah blah blah"
}Retorna um objeto JSON com uma lista que contém os nomes de todos os vídeos. Exemplo:
GET /videos
{
"sucesso": true,
"videos": [
"60fps.mp4",
"video2.mp4",
"blahblahblah.mp4"
]
}Retorna informações sobre o vídeo. Exemplo:
GET /videos/60fps.mp4
Resposta:
{
"sucesso": true,
"video": {
"nome": "60fps.mp4",
"fps": 59.94,
"duracaoOriginal": 36.535,
"duracao": 0.65065,
"tamanho": 5193577,
"frames": 39
}
}Retorna o arquivo do vídeo, só retorna um objeto JSON em caso de erro (status 400). Exemplo:
GET /videos/60fps.mp4/arquivo
Retorna as marcações associadas ao vídeo. Exemplo:
GET /videos/60fps.mp4/marcacoes
Resposta:
{
"sucesso": true,
"marcacoes": [
{
"frame": 1,
"contemInterprete": true,
"pos1": [10, 10],
"pos2": [15, 15]
},
{
"frame": 200,
"contemInterprete": false
},
{
"frame": 300,
"contemInterprete": true,
"pos1": [10, 10],
"pos2": [100, 100]
}
]
}Serve para criar as marcações de um vídeo. Exemplo:
POST /videos/60fps.mp4/marcacoes
Requisição:
{
"marcacoes": [
{
"frame": 1,
"contemInterprete": true,
"pos1": [10, 10],
"pos2": [15, 15]
},
{
"frame": 200,
"contemInterprete": false
},
{
"frame": 300,
"contemInterprete": true,
"pos1": [10, 10],
"pos2": [100, 100]
}
]
}Resposta:
{
"sucesso": true
}