{"id":21976940,"url":"https://github.com/faber222/encode-decode-file","last_synced_at":"2026-02-21T02:01:11.274Z","repository":{"id":233734765,"uuid":"787621167","full_name":"faber222/ENCODE-DECODE-FILE","owner":"faber222","description":"Este projeto implementa um método para converter dados binários de arquivos em vídeos utilizando a biblioteca OpenCV. O objetivo principal é explorar a viabilidade do YouTube como um \"Google Drive\" ilimitado, aproveitando que a plataforma permite o upload de vídeos sem restrição de quantidade.","archived":false,"fork":false,"pushed_at":"2025-03-10T03:59:15.000Z","size":78529,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-03T04:22:58.181Z","etag":null,"topics":["c","cpp","encoder-decoder","opencv4"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/faber222.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-16T21:44:50.000Z","updated_at":"2025-03-10T04:14:23.000Z","dependencies_parsed_at":"2025-03-23T00:34:24.604Z","dependency_job_id":null,"html_url":"https://github.com/faber222/ENCODE-DECODE-FILE","commit_stats":null,"previous_names":["faber222/image-copy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/faber222/ENCODE-DECODE-FILE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faber222%2FENCODE-DECODE-FILE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faber222%2FENCODE-DECODE-FILE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faber222%2FENCODE-DECODE-FILE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faber222%2FENCODE-DECODE-FILE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faber222","download_url":"https://codeload.github.com/faber222/ENCODE-DECODE-FILE/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faber222%2FENCODE-DECODE-FILE/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29671513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T00:11:43.526Z","status":"online","status_checked_at":"2026-02-21T02:00:07.432Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cpp","encoder-decoder","opencv4"],"created_at":"2024-11-29T16:12:46.057Z","updated_at":"2026-02-21T02:01:11.268Z","avatar_url":"https://github.com/faber222.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ENCODE-DECODE-FILE\r\n\r\nEste projeto implementa um método para converter dados binários de arquivos em vídeos utilizando a biblioteca OpenCV. O objetivo principal é explorar diferentes tipos de codificação para viabilizar o uso do YouTube como um Storage ilimitado, aproveitando que a plataforma permite o upload de vídeos sem restrição de quantidade.\r\n\r\n## 🔥 Motivação\r\n\r\nA ideia surgiu da possibilidade de armazenar arquivos em vídeos e, posteriormente, recuperá-los. Como o YouTube não permite upload de arquivos diretamente, converter qualquer binário em uma sequência de imagens representando esses dados parece uma solução interessante.\r\n\r\nPorém, durante os testes, a compressão dos vídeos no YouTube tem causado perda de dados, o que compromete a recuperação precisa da informação. O projeto ainda está em desenvolvimento para superar esse obstáculo.\r\n\r\n## 🚀 Tecnologias Utilizadas\r\n\r\n* OpenCV: para manipulação de imagens e geração dos vídeos.\r\n* libbmp: biblioteca em C para manipulação de imagens BMP.\r\n* C++: linguagem principal utilizada no desenvolvimento.\r\n\r\n## 📦 Estrutura do Projeto\r\n\r\nO projeto possui duas formas de codificação das imagens:\r\n1. Usando a biblioteca libbmp: gera imagens BMP manualmente.\r\n2. Usando OpenCV (cv::Mat): manipula diretamente as imagens sem precisar da libbmp.\r\n\r\n## 🛠️ Compilação\r\n\r\n### 📌 Ubuntu\r\n\r\n```bash\r\n# Instale pacotes essenciais\r\nsudo apt update\r\nsudo apt install build-essential cmake unzip pkg-config\r\nsudo apt install libjpeg-dev libpng-dev libtiff-dev ffmpeg\r\nsudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev\r\nsudo apt install libxvidcore-dev libx264-dev\r\nsudo apt install libgtk-3-dev\r\nsudo apt install libatlas-base-dev gfortran\r\n\r\n# Instale OpenCV\r\ngit clone https://github.com/opencv/opencv.git\r\ngit clone https://github.com/opencv/opencv_contrib.git\r\n\r\ncd opencv \u0026\u0026 git checkout 4.11.0 \u0026\u0026 cd ..\r\ncd opencv_contrib \u0026\u0026 git checkout 4.11.0 \u0026\u0026 cd ..\r\n\r\nmkdir -p opencv/build \u0026\u0026 cd opencv/build\r\ncmake -D CMAKE_BUILD_TYPE=RELEASE \\\r\n      -D CMAKE_INSTALL_PREFIX=/usr/local \\\r\n      -D INSTALL_PYTHON_EXAMPLES=OFF \\\r\n      -D INSTALL_C_EXAMPLES=ON \\\r\n      -D OPENCV_ENABLE_NONFREE=ON \\\r\n      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \\\r\n      -D BUILD_EXAMPLES=ON ..\r\n\r\nmake -j$(nproc)\r\nsudo make install\r\n```\r\nA instalação que usei como base e agradeço de coração, está descrita nesse link, e destino todo o crédito do sucesso desta instalação a Carvalho Natalia:\r\n[OPEN_CV](https://medium.com/@carvalho.natalia03/instalando-a-opencv-c-no-linux-98d7fc71e996)\r\n\r\n### 📌 OpenSUSE\r\n```bash\r\n# Busque pela biblioteca OpenCV disponível\r\nsudo zypper se opencv\r\n\r\n# Instale os pacotes necessários\r\nsudo zypper in opencv opencv-devel\r\n```\r\n\r\n## 🏃‍♂️ Execução\r\n\r\n### Clonando o repositório\r\n```bash\r\ngit clone https://github.com/faber222/ENCODE-DECODE-FILE.git\r\ncd ENCODE-DECODE-FILE/src/\r\n```\r\n\r\n### Compilando o projeto\r\n```bash\r\ncmake -S . -B build\r\ncmake --build build\r\n```\r\n\r\n### Executando o programa\r\n```bash\r\n./build/encoderDecoder\r\n```\r\n\r\n## 🔎 Debugando a Geração de Imagens\r\n\r\n#### Se quiser visualizar as imagens sendo geradas para testar a lógica, edite o CMakeLists.txt:\r\n```bash\r\nadd_executable(encoderDecoder mainInMemory.cpp mem.cpp)  # COMENTE ESSA LINHA\r\n# add_executable(encoderDecoder main.cpp function.cpp libs/libbmp.cpp)  # DESCOMENTE ESTA LINHA\r\n```\r\n\r\n### Agora, recompile e execute:\r\n```bash\r\ncmake -S . -B build\r\ncmake --build build\r\n./build/encoderDecoder\r\n\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaber222%2Fencode-decode-file","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaber222%2Fencode-decode-file","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaber222%2Fencode-decode-file/lists"}