Automação

Enviar vídeos do DVR para Telegram automaticamente (FTP + ffmpeg + Python)

Aprenda como receber vídeos de eventos do DVR no Telegram automaticamente usando FTP, Python, ffmpeg e serviço systemd.

Enviar vídeos do DVR para Telegram automaticamente (FTP + ffmpeg + Python)

📹 Enviar vídeos do DVR para Telegram automaticamente

Este tutorial mostra como configurar um ambiente completo para receber vídeos do DVR via FTP, converter automaticamente para MP4 e enviar como alerta no Telegram.


🎯 Objetivo

Receber arquivos de vídeo do DVR, detectar novos eventos, converter de .dav para .mp4 e enviar diretamente para o Telegram de forma automática.


🔄 Fluxo

DVR → FTP → Servidor Ubuntu → Script Python → ffmpeg → Telegram

⚙️ O que esse projeto faz

  • Monitora a pasta onde o DVR grava os vídeos
  • Espera o arquivo terminar de crescer antes de processar
  • Converte automaticamente de DAV para MP4
  • Envia o vídeo para o Telegram
  • Evita envio duplicado com arquivo de controle
  • Pode remover arquivos após envio
  • Roda 24/7 com systemd

📁 Estrutura usada

/home/dvruser/srv/home/upload
/home/scripts/ftp_dvr_videos.tel.py
/root/srv50env
/etc/systemd/system/dvr-videos-telegram.service

1️⃣ Dependências

apt update
apt install -y vsftpd ffmpeg python3 python3-venv curl

2️⃣ Criar usuário e diretórios

useradd -m -s /bin/bash dvruser

mkdir -p /home/dvruser/srv/home/upload
chown -R dvruser:dvruser /home/dvruser/srv

3️⃣ Configurar FTP

Configuração FTP DVR Intelbras

Configuração do FTP no DVR para envio de vídeos

Edite o arquivo:

/etc/vsftpd.conf

Configuração essencial:

listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/home/dvruser/srv
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100

Depois reinicie e habilite o serviço:

systemctl restart vsftpd
systemctl enable vsftpd

4️⃣ Criar ambiente Python

python3 -m venv /root/srv50env
source /root/srv50env/bin/activate
pip install requests
deactivate

5️⃣ Script de vídeos

O script monitora a pasta de upload, processa apenas arquivos .dav, aguarda estabilização do arquivo, converte com ffmpeg e envia via sendVideo para o Telegram.

/home/scripts/ftp_dvr_videos.tel.py

Configurações importantes no script:

  • SEND_EXISTING_ON_START = False para produção
  • DELETE_DAV_AFTER_SUCCESS = True ou False conforme sua necessidade
  • DELETE_MP4_AFTER_SUCCESS = True

6️⃣ Criar serviço systemd

Crie o arquivo:

/etc/systemd/system/dvr-videos-telegram.service

Conteúdo:

[Unit]
Description=Watcher DVR FTP -> Telegram (VÍDEOS)
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/home/dvruser/srv/home/upload
Environment=PYTHONUNBUFFERED=1
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ExecStart=/root/srv50env/bin/python /home/scripts/ftp_dvr_videos.tel.py
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

7️⃣ Ativar o serviço

systemctl daemon-reload
systemctl enable dvr-videos-telegram
systemctl restart dvr-videos-telegram

Para acompanhar os logs:

journalctl -u dvr-videos-telegram -f

8️⃣ Teste manual

source /root/srv50env/bin/activate
python3 /home/scripts/ftp_dvr_videos.tel.py

Depois gere um vídeo de evento no DVR e acompanhe o envio.


9️⃣ Limpeza automática com cron

Edite o cron:

crontab -e

Adicione:

# Remove vídeos DAV com mais de 7 dias
0 3 * * * find /home/dvruser/srv/home/upload -type f -name "*.dav" -mtime +7 -delete

# Remove MP4 temporários com mais de 1 dia
0 3 * * * find /home/dvruser/srv/home/upload/.tmp_mp4 -type f -name "*.mp4" -mtime +1 -delete

🔟 Fluxo final do processamento

DVR grava .dav
↓
Servidor recebe via FTP
↓
Script detecta novo arquivo
↓
Espera estabilizar
↓
Converte para MP4
↓
Envia para Telegram
↓
Remove arquivos conforme configuração

✅ Observações importantes

  • Use SEND_EXISTING_ON_START=True apenas em teste
  • Em produção, mantenha False
  • O bot precisa estar no grupo do Telegram
  • O CHAT_ID deve ser válido
  • O ffmpeg precisa estar disponível no sistema

📦 Resultado final

🎥 Resultado na prática

Vídeo do DVR recebido no Telegram automaticamente

Vídeo enviado automaticamente do DVR para o Telegram

  • DVR envia vídeos via FTP
  • Servidor recebe automaticamente
  • Script converte DAV para MP4
  • Telegram recebe os vídeos como alerta
  • Serviço inicia automaticamente no boot