Skip to content

aureamcd/VideoBased

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema Cliente/Servidor para Processamento de VĂ­deos Este projeto implementa um sistema cliente/servidor em trĂŞs camadas, projetado para enviar, processar, armazenar e gerenciar vĂ­deos de forma organizada e eficiente.

  1. Descrição do Projeto O sistema permite que um cliente com interface gráfica (GUI) construído em Tkinter envie um arquivo de vídeo para um servidor Flask. No servidor, o vídeo passa por um processo de transformação onde um filtro de imagem selecionado pelo usuário é aplicado (ex: escala de cinza, pixelização, detecção de bordas).

Após o processamento, o servidor armazena o vídeo original, o vídeo processado e uma miniatura (thumbnail) em uma estrutura de pastas organizada por data e um ID único (UUID). Todos os metadados relevantes são salvos em um banco de dados SQLite para consulta futura. O cliente pode visualizar o histórico de envios, abrir os vídeos e apagar registros, o que move os arquivos correspondentes para uma pasta "lixeira" no servidor. O servidor também possui uma galeria web que exibe todos os vídeos processados e se atualiza automaticamente.

  1. Arquitetura O projeto Ă© dividido em trĂŞs camadas principais:
  • Cliente (Tkinter): Uma aplicação desktop em Python que fornece a interface para o usuário selecionar um vĂ­deo, escolher um filtro, enviá-lo ao servidor, visualizar o histĂłrico e apagar vĂ­deos.

  • Servidor (Flask + OpenCV): Uma API REST que recebe os vĂ­deos, aplica os filtros, gerencia o armazenamento dos arquivos em disco, interage com o banco de dados e lida com as solicitações de exclusĂŁo.

  • Banco de Dados (SQLite): Um banco de dados leve que armazena os metadados de cada vĂ­deo processado.

Estrutura de Arquivos em Disco Os vĂ­deos sĂŁo organizados no servidor da seguinte forma:

/media/ ├── trash/ # Vídeos apagados são movidos para cá └── videos/ └── AAAA-MM-DD/ └── {uuid}/ ├── original/video.{ext} ├── processed/video.{ext} └── thumbs/frame_0001.jpg

  1. Tecnologias Utilizadas Linguagem: Python 3

Servidor: Flask

Processamento de VĂ­deo: OpenCV

Cliente GUI: Tkinter

Banco de Dados: SQLite

Comunicação: HTTP (via biblioteca requests)

  1. Instruções de Execução Siga os passos abaixo para configurar e executar o projeto.

Pré-requisitos Python 3.8 ou superior

Pip (gerenciador de pacotes do Python)

Passo 1: Instalação das Dependências Clone este repositório e, na pasta raiz do projeto, instale as bibliotecas Python necessárias:

pip install -r requirements.txt

Passo 2: Executando o Servidor Navegue até a pasta do servidor: cd server

Execute o script para criar o banco de dados pela primeira vez:

python database.py

Inicie o servidor Flask:

python app.py

Anote o endereço IP da máquina do servidor (ex: 192.168.1.10).

Passo 3: Executando o Cliente Abra o arquivo client/client_app.py em um editor de texto.

IMPORTANTE: Na linha SERVER_URL = "http://127.0.0.1:5000", substitua 127.0.0.1 pelo IP do servidor.

Navegue até a pasta do cliente em outro terminal: cd client

Execute a aplicação:

python client_app.py

  1. Demonstração

Tela do Cliente Galeria Web do Servidor(antes de receber vĂ­deos Galeria Web do Servidor(depois de receber vĂ­deos)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors