Eu tenho uma câmera de segurança rodando Linux (busybox 1.32.0) que posso configurar para gravar vídeo continuamente em pedaços (configuráveis) de 30 segundos em uma estrutura de pastas:
recording/2022/04/26/15/2022-04-26-15-30-00.mp4
Em outra pasta, as imagens estáticas são gravadas somente quando o movimento é detectado:
stills/2022/04/26/15/2022-04-26-15-30-05.jpg
Esta é uma solução que inventei para obter vídeos antes mesmo de um movimento ser detectado.
Como o espaço disponível é limitado, gostaria de excluir qualquer vídeo iniciado mais de 60 segundos antes do movimento e 120 segundos após o movimento, para que eu mantenha alguns pré e pós-vídeo para cada imagem estática.
As imagens estáticas podem ser tão frequentes quanto a cada 5 segundos, pois são baseadas em disparos por movimento e não em um intervalo predefinido.
Claro, com uma única imagem é uma questão de executar "find" com as opções apropriadas , mas e o meu caso de uso mais complexo?
Eu pensei em algumas maneiras possíveis, mas não tenho certeza de como proceder.
Pensei em executar um script todos os dias que listasse os elementos (gravações e fotos) do dia anterior, convertesse de nome de arquivo em carimbo de data e hora de cada um deles e comparasse iterativamente os carimbos de data e hora com os carimbos de data e hora das imagens estáticas.
Isso envolveria 4 listas (nomes de arquivos, carimbos de data/hora, para gravações e fotos) e me parece bastante envolvido (talvez porque não esteja familiarizado com scripts de shell), então existe uma maneira mais fácil de fazer isso?
Soluções envolvendo python ou perl exigiriam a compilação para a plataforma, e podem impor uma carga muito alta na CPU, sem contar que o espaço livre no dispositivo já é limitado e um executável samba 4.x já não caberia.
As ferramentas disponíveis são aquelas disponíveis como parte do busybox mais os binários listados no site do projeto .