Em algumas situações pode ser necessário a instalação do pacote FFMPEG em um container docker, por exemplo, para que o N8N possa combinar videos. Neste tutorial bem rápido eu pretendo te explicar como fazer isso de forma bem fácil.
O que é FFMPEG ?
O FFmpeg é uma poderosa ferramenta de código aberto usada para manipulação de arquivos multimídia. Ele permite converter, editar, gravar, transmitir e processar áudio e vídeo em uma ampla variedade de formatos. Desenvolvido para ser eficiente e versátil, o FFmpeg suporta uma grande quantidade de codecs e é amplamente utilizado em aplicações profissionais e amadoras. Além disso, pode ser operado por linha de comando ou integrado a outros softwares, tornando-o indispensável para desenvolvedores e entusiastas da edição multimídia.
Instalando em um container Docker
Descubra o nome do container ou seu ID com o comando:
sudo docker ps

Guarde esse ID que é o que vamos usar agora. Você não precisa digitá-lo todo, mas pode pegar apenas os 5 primeiros chars, por exemplo, para que identifique. O importante é que não tenha outro container com os mesmos 5 primeiros chars.
Então execute o comando para conectar no container:
docker exec -u 0 -it /bin/sh
Atualize a listagem dos pacotes:
apk update
Instale o pacote do FFMPEG:
apk add --no-cache ffmpeg
Confirme que está tudo ok:
ffmpeg -version

Possíveis erros:
Caso o pacote não seja encontrado ao utilizar o apk add, adicione os seguintes endereços no /etc/apk/repositories:
https://dl-cdn.alpinelinux.org/alpine/v3.20/main
https://dl-cdn.alpinelinux.org/alpine/v3.20/community
E utilize novamente o comando:
apk update
Testando no N8N
Crie um workflow de teste e adicione o node “Execute Command”

Em seguida, no node, utilize o comando:
ffmpeg -version

4 Comentários
Boa noite,
Estou com uma duvida ao executar (sudo docker ps) no meu aparece 3 n8n ( webhook , Editor, Worker)qual deles que eu pegaria o id , estou usando o portainer na hetnez.
Parabens pelo post.
Boa noite Sylvio!
Provavelmente você deve ter instalado como micro serviços e aí divide para escalabilidade e melhor gerenciamento. Isso só se faz necessário quando vc vai fazer muita coisa. Geralmente colocamos tudo em um container só. No seu caso você tem 3 containers : webhook ( vai lidar com as requisições externas), editor (frontend) e o worker (que é o responsável pela execução dos fluxos no back). Se for isso mesmo, você deveria instalar no worker.
Valeu!
Boa tarde Paulo,
Parabéns pelo post, estava procurando esse tema e só encontrei com aqui.
Sobre a instalação, você fez a instalação no mesmo container do n8n.
Para que funcione com automações do n8n, é fundamental que esssa instalação seja feita no mesmo container ?
Abraços, e mais uma vez paravéns pela iniciativa e conteúdo.
Att,Jorge
Fala Jorge, blz?
Obrigado pelo elogio.
Em relação ao container, no caso do tutorial, eu instalei sim no mesmo container que o n8n.
Mas pode variar dependendo da sua necessidade. Exemplo: você quer consumir um serviço que junta os arquivos com o ffmpeg e esse serviço está em outro container. Você vai ter que instalar naquele container.
Em resumo: onde você for executar o ffmpeg é que vc vai ter q instalar.
Abs!