O Reino da Computação

Blog pessoal do Renato Monteiro Batista, Engenheiro de Computação, um espaço para conversas digitais sobre tecnologia, hacking, segurança da informação, inteligência artificial e outros temas do universo da computação.

View on GitHub
10 May 2026

Executando o n8n com ffmpeg usando docker compose

by Renato Monteiro Batista

Executando n8n com FFmpeg usando Docker Compose

O n8n é uma excelente ferramenta de automação, mas a imagem oficial não vem com o FFmpeg instalado. Isso limita bastante quem precisa trabalhar com processamento de vídeo, áudio, conversão de arquivos ou extração de thumbnails dentro dos workflows.

Por isso criei a imagem renatomb/n8n-ffmpeg, que é basicamente a imagem oficial do n8n com o FFmpeg adicionado.

Por que usar n8n com FFmpeg?

Alguns casos de uso comuns:

Se você precisa fazer qualquer uma dessas coisas dentro do n8n, a imagem oficial não resolve. A imagem renatomb/n8n-ffmpeg foi feita exatamente para isso.

Usando com Docker Compose (Recomendado)

A forma mais prática e recomendada de rodar é através do docker-compose. Crie um arquivo docker-compose.yml com o seguinte conteúdo:

services:
  n8n:
    image: renatomb/n8n-ffmpeg:latest
    container_name: n8n-ffmpeg
    restart: unless-stopped
    ports:
      - "5678:5678"
    volumes:
      - n8n_data:/home/node/.n8n
      - ./files:/files      
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=sua_senha_aqui
      - N8N_HOST=localhost
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - WEBHOOK_URL=http://localhost:5678/
volumes:
  n8n_data:

Executando o container

Depois de criar o arquivo, basta rodar:

docker compose up -d

O n8n vai subir normalmente, mas já com o FFmpeg disponível dentro do container.

Usando o FFmpeg dentro do n8n

Depois de subir o container, você pode usar o FFmpeg de duas formas principais:

1. Usando o nó “Execute Command”

Esse é o jeito mais simples. Basta criar um nó Execute Command e rodar comandos do FFmpeg normalmente:

Exemplo de comando para extrair áudio de um vídeo:

ffmpeg -i /files/video.mp4 -vn -acodec libmp3lame /files/audio.mp3

2. Usando o nó “Code”

Você também pode executar comandos via Node.js dentro do nó Code:

const { exec } = require('child_process');

const command = 'ffmpeg -i /files/input.mp4 -vf "scale=320:-1" /files/thumbnail.jpg';

exec(command, (error, stdout, stderr) => {
  if (error) {
    console.error(`Erro: ${error}`);
    return;
  }
  console.log('Thumbnail gerado com sucesso!');
});

Volume para arquivos

No exemplo de docker-compose.yml acima, criei um volume mapeado:

- ./files:/files

Dessa forma, você pode colocar os arquivos que quer processar na pasta files do seu computador que eles ficarão disponíveis dentro do container em /files.

Imagem disponível

A imagem está publicada no Docker Hub:

A tag latest sempre aponta para a versão mais recente baseada na imagem oficial do n8n.

Considerações finais

Se você usa n8n para automações que envolvem mídia (vídeo ou áudio), essa imagem resolve um problema que a versão oficial não cobre. O uso via Docker Compose é a forma mais prática de manter o ambiente organizado e persistente.

Se você já usa n8n e precisa de FFmpeg, recomendo testar. É só trocar a imagem no seu docker-compose.yml atual.

Se tiver alguma sugestão ou encontrar algum problema, pode abrir uma issue no repositório.

tags: docker - compose - n8n - ffmpeg - automacao