Skip to content

ricardomaricato/ms-encoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Microsserviço de encoder de vídeo

Configurando ambiente

Para rodar em modo de desenvolvimento, siga os seguintes passos:

  • Execute o docker-compose up -d
  • Acesse a administração do rabbitmq e crie uma exchange do tipo fannout. Ela será uma Dead Letter Exchange para receber as mensagens que não forem processadas.
  • Crie uma Dead Letter Queue e faça o binding da mesma na Dead Letter Exchange que acaba de ser criada. Não há necessidade de routing_key.
  • No arquivo .env informe o nome da Dead Letter Exchange no parâmetro: RABBITMQ_DLX
  • Crie uma conta de serviço no GCP que tenha permissão para gravar no google cloud storage. Baixe o arquivo json com as credenciais e salve-o na raiz do projeto exatamente com o nome: bucket-credential.json

Executando

Para executar o encoder rode o comando make server diretamente no container. Exemplo:

docker exec encoder-new2_app_1 make server

Sendo que ms-enconder_app_1 é o nome nome do container gerado pelo docker-compose.

Padrão de envio de mensagem para o encoder

Para que uma mensagem possa ser parseada pelo sistema de encoder, ela deverá chegar no seguinte formato em json:

{
  "resource_id": "my-resource-id-can-be-a-uuid-type",
  "file_path": "convite.mp4"
}
  • resource_id: Representa o ID do vídeo que você deseja converter. Ele é do tipo string.
  • file_path: É o caminho completo do vídeo mp4 dentro do bucket.

Padrão de retorno de mensagem pelo encoder

Sucesso no processamento

Para cada vídeo processado, o encoder enviará para uma exchange (a ser configurada no .env) o resultado do processamento.

Caso o processamento tenha sido concluído com sucesso, o padrão de retorno em json será:

{
    "id":"bbbdd123-ad05-4dc8-a74c-d63a0a2423d5",
    "output_bucket_path":"codeeducationtest",
    "status":"COMPLETED",
    "video":{
        "encoded_video_folder":"b3f2d41e-2c0a-4830-bd65-68227e97764f",
        "resource_id":"aadc5ff9-0b0d-13ab-4a40-a11b2eaa148c",
        "file_path":"convite.mp4"
    },
    "Error":"",
    "created_at":"2020-05-27T19:43:34.850479-04:00",
    "updated_at":"2020-05-27T19:43:38.081754-04:00"
}

Sendo que encoded_video_folder é a pasta que possui o vídeo convertido.

Erro no processamento

Caso o processamento tenha encontrado algum erro, o padrão de retorno em json será:

{
    "message": {
        "resource_id": "aadc5ff9-010d-a3ab-4a40-a11b2eaa148c",
        "file_path": "convite.mp4"
    },
    "error":"Motivo do erro"
}

Além disso, o encoder enviará para uma dead letter exchange a mensagem original que houve problema durante o processamento. Basta configurar a DLX desejada no arquivo .env no parâmetro: RABBITMQ_DLX

About

Video Encoder Microservice

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published