- Crie uma pasta
processar
com 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 install
e em seguida rode o processamentonpm run processarVideos
- Aguarde
- Vídeos processados vão estar na pasta
videos
e 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
.env
e siga o exemplo acima, configurando de acordo com o seu banco de dados MongoDB - Rode
npm install
para 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
}