Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos

Já pensou em poder monitorar câmeras ONVIF no seu Linux sem precisar instalar aplicativos e deixar o seu sistema limpo e ainda poder gravar as imagens? Atualmente há opções de software que monitoram essas câmeras mas muitos deles são instáveis e não muito amigáveis com o usuário o que me fez buscar uma solução, digamos raiz.

[ Hits: 4.778 ]

Por: Andrigo Pinho em 12/08/2025


Gerar script para acessar e gravar várias câmeras de uma vez



Que tal se fazermos um script com acesso à várias câmeras ao mesmo tempo com possibilidade de gravação?
Vou supor que você tenha três câmeras na sua casa: Garagem, Quintal e Entrada.

Para servir de exemplo, esses são os endereços RTSP com usuário e senha definidos de cada uma das suas câmeras:

Entrada rtsp://admin:1234@192.168.1.10/onvif1
Garagem rtsp://admin:1234@192.168.1.11/onvif1
Quintal rtsp://admin:1234@192.168.1.12/onvif1

Antes de colocarmos a mão na massa, vamos criar um diretório para salvar as suas gravações e os arquivos necessários. Vou chamá-lo de Monitoramento. Você pode escolher o nome que quiser, basta substituir o meu exemplo pelo seu nome.

Crie o diretório onde quiser no seu computador. Após isso, vá ao diretório criado, abra o seu editor de textos e vamos criar o primeiro arquivo. Copie o conteúdo abaixo e salve com o nome cameras.conf
# Formato: Nome_da_Câmera rtsp://usuario:senha@IP/onvif1

Entrada rtsp://admin:1234@192.168.1.10/onvif1
Garagem rtsp://admin:1234@192.168.1.11/onvif1
Quintal rtsp://admin:1234@192.168.1.12/onvif1

No mesmo editor de texto, apague todo o conteúdo e vamos criar o script com o nome menu_cameras.sh com o conteúdo abaixo:

#!/bin/bash

CONFIG_FILE="cameras.conf"
PASTA_GRAVACAO="./gravacoes"
mkdir -p "$PASTA_GRAVACAO"


menu() {
echo
echo "===== MENU DE MONITORAMENTO ====="
echo "1) Ver câmeras (ao vivo)"
echo "2) Gravar uma câmera"
echo "3) Sair"
echo "================================="
echo
read -rp "Escolha uma opção: " opcao
}


carregar_cameras() {
i=1
unset nomes links
while IFS='|' read -r nome rtsp; do
if [[ "$nome" =~ ^#.* || -z "$nome" || -z "$rtsp" ]]; then
continue
fi
nomes[$i]="$nome"
links[$i]="$rtsp"
echo "$i) $nome"
((i++))
done < "$CONFIG_FILE"
}


ver_cameras() {
echo
echo "Abrindo câmeras ao vivo..."
carregar_cameras
for idx in "${!links[@]}"; do
echo "Abrindo ${nomes[$idx]}..."
ffplay -fflags nobuffer -flags low_delay -vf "drawtext=text='${nomes[$idx]}':fontsize=20:fontcolor=white:x=10:y=10" "${links[$idx]}" &
done
wait
}


gravar_camera() {
echo
echo "Escolha a câmera para gravar:"
carregar_cameras
echo
read -rp "Digite o número da câmera: " escolha
nome="${nomes[$escolha]}"
link="${links[$escolha]}"

if [ -z "$link" ]; then
echo "Câmera inválida. Tente novamente."
return
fi

arquivo="$PASTA_GRAVACAO/${nome}_$(date +%Y%m%d_%H%M%S).mp4"
echo "Gravando $nome em: $arquivo"
echo "Pressione CTRL+C para parar a gravação."
ffmpeg -i "$link" -vcodec copy -acodec copy "$arquivo"
}

# Loop principal do menu
while true; do
menu
case "$opcao" in
1) ver_cameras ;;
2) gravar_camera ;;
3) echo "Saindo..."; exit 0 ;;
*) echo "Opção inválida. Tente novamente." ;;
esac
done


Não se esqueça de tornar esse script como executável conforme explicado antes.
Página anterior     Próxima página

Páginas do artigo
   1. O que é ONVIF?
   2. Como é possível visualizar câmeras ONVIF no Linux sem Apps
   3. O que é RTSP
   4. Preparativo para a execução do script
   5. Criando o script para visualizar as imagens
   6. Gravando as imagens
   7. Gerar script para acessar e gravar várias câmeras de uma vez
   8. Como usar o script para várias câmeras
Outros artigos deste autor

Atualizando o Passado: Linux no Lenovo G460 em 2025

Topgrade - Atualize seu sistema Linux inteiro com um único comando

Linux em 2025: Segurança prática para o usuário

Leitura recomendada

SimpleScreenRecorder - Gravar Vídeos do seu Desktop

Computador e Placas Antigas Nvidia em Pleno 2019

Convertendo arquivo de vídeo em áudio via ffmpeg (incluindo metadados)

Como transformar um áudio em vídeo com efeito de forma de onda (wave form)

Como monitorar Câmera IP e/ou USB no Ubuntu utilizando o MontionPlus

  
Comentários
[1] Comentário enviado por morvan em 14/08/2025 - 09:44h

Muito bom saber desse recurso do FFplay. Eu utilizo o vlc, que é um excelente visualizador de RTSP. E para pegar as configurações default, utilizo o Onvif Discovery (ODM). Ele me traz todos os parâmetros das câmeras, inclusive os logins defaults. E para visualização em modo múltiplos, utilizo o Agent DVR (gratuito para uso pessoal). Mas reitero. Muito bom saber de mais recursos.

Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.

[2] Comentário enviado por PinhoTech em 14/08/2025 - 23:47h


[1] Comentário enviado por morvan em 14/08/2025 - 09:44h

Muito bom saber desse recurso do FFplay. Eu utilizo o vlc, que é um excelente visualizador de RTSP. E para pegar as configurações default, utilizo o Onvif Discovery (ODM). Ele me traz todos os parâmetros das câmeras, inclusive os logins defaults. E para visualização em modo múltiplos, utilizo o Agent DVR (gratuito para uso pessoal). Mas reitero. Muito bom saber de mais recursos.

Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.


Obrigado por sua observação. Abraço.

[3] Comentário enviado por lackmann em 02/09/2025 - 10:13h


Pra mim não deu certo!!!
Fiz tudo como está no script, inclusive como no exemplo
# Formato: Nome_da_Câmera rtsp://usuario:senha@IP/onvif1
alterei com o :554 no final, mas pelo jeito não é este o problema.
Não aparece erro nenhum, apenas não executa....

Já usando o anteriori, funciona perfeitamente!!!!
ffplay rtsp://usuário:senha@111.111.111.111:554/onvif1


[4] Comentário enviado por lackmann em 02/09/2025 - 10:32h


Consegui, o formato correto do arquivo cameras.conf seria:

Nome_da_Câmera|rtsp://usuario:senha@IP:porta/onvif1
Estava faltando um pipe e a porta :D


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts