Skip to content
/ ziply Public

Ziply is a tool that converts files into video format, supporting various resolutions and offering encryption for secure conversion, ensuring easy restoration and data protection.

Notifications You must be signed in to change notification settings

arpan404/ziply

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ziply

Ziply is a powerful tool designed to convert any file into a video format, allowing for easy restoration later. It supports various resolutions, ensuring that your output meets your desired quality. Additionally, Ziply offers encryption options to secure your files during the conversion process, providing peace of mind for sensitive data.


βš™οΈ Installation and Compilation

Prerequisites

  • CMake
  • C++ Compiler (g++, Visual Studio, or MinGW)
  • ffmpeg
  • Additional Libraries:
    • OpenCV (4.5.0 or later)
    • OpenSSL (1.1.1 or later)
    • LibLZMA (5.2.0 or later)

Library Installation

Linux (Ubuntu/Debian)

sudo apt-get update
sudo apt-get install -y \
    cmake g++ \
    libopencv-dev \
    libssl-dev \
    liblzma-dev

macOS (via Homebrew)

brew install \
    cmake \
    opencv \
    openssl \
    xz

Windows

  1. Manual Library Installation:

    Recommended: Use vcpkg for easier dependency management

    vcpkg install opencv
    vcpkg install openssl
    vcpkg install liblzma

Compilation Steps

Linux (Ubuntu)

  1. Clone the Repository:
git clone https://github.com/your-username/ziply.git
cd ziply
  1. Create a Build Directory:
mkdir build
cd build
  1. Run CMake:
cmake -DCMAKE_PREFIX_PATH="/usr/local/lib;/usr/lib" ..
  1. Compile the Code:
make
  1. Run the Application:
./ziply

macOS (via Homebrew)

  1. Clone the Repository:
git clone https://github.com/your-username/ziply.git
cd ziply
  1. Create a Build Directory:
mkdir build
cd build
  1. Run CMake:
cmake -DCMAKE_PREFIX_PATH="/usr/local/opt/opencv;/usr/local/opt/openssl;/usr/local/opt/xz" ..
  1. Compile the Code:
make
  1. Run the Application:
./ziply

Windows

  1. Clone the Repository:
git clone https://github.com/your-username/ziply.git
cd ziply
  1. Create a Build Directory:
mkdir build
cd build
  1. Run CMake:
    • For Visual Studio (with vcpkg):
      cmake -DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake ..
    • For MinGW:
      cmake -G "MinGW Makefiles" ..
  2. Compile the Code:
    • For Visual Studio: Open the generated .sln file and build the solution
    • For MinGW:
      mingw32-make
  3. Run the Application:
ziply.exe

Optional: System-wide Installation

Linux/macOS

sudo mv ziply /usr/local/bin/

Windows

Add the directory containing ziply.exe to the system PATH environment variable.

Additional Notes

  • Ensure you have the latest versions of CMake and required libraries
  • Check system compatibility before installation
  • Verify library dependencies are correctly linked
  • Report any compilation or dependency issues on the project's GitHub repository

Troubleshooting

  • If CMake cannot find libraries, manually specify library paths using:
    cmake -DCMAKE_PREFIX_PATH="/path/to/libraries" ..
  • Ensure all prerequisite libraries are installed with development headers

πŸš€ Usage

The general syntax for the tool is as follows:

ziply <command> [options]

πŸ“ Commands

Ziply supports the following commands:

1. create

Create a Ziply video file from an input file.

Syntax:

ziply create -f <input_file> [-o <output_file>] [-r <resolution>] [-p <password>]

Options:

  • -f <input_file> : Path or name of the input file to convert (mandatory).
  • -o <output_file> : Path or name of the output file. The extension is ignored if provided (optional).
  • -r <resolution> : Output video resolution. Options: 360p, 480p, 720p, 1080p (default), 1440p, 4k.
  • -p <password> : Set a password for encryption or protection (optional).

Example:

ziply create -f input.mp4 -o output_video -r 1080p -p MySecretKey

2. restore

Restore data from a Ziply video file.

Syntax:

ziply restore -f <input_file> [-o <output_file>] [-p <password>]

Options:

  • -f <input_file> : Path or name of the input Ziply file (mandatory).
  • -o <output_file> : Path or name of the restored output file (optional).
  • -p <password> : Password for restoring the file, if encryption was used (optional).

Example:

ziply restore -f output_video.ziply -o restored_file -p MySecretKey

3. --help

Display help text with all available commands and options.

Syntax:

ziply --help

Example:

ziply --help

❗ Error Handling

Ziply provides detailed error messages to help troubleshoot issues. Examples include:

  • Missing mandatory arguments
  • Invalid commands or options
  • Unsupported resolutions

For example:

ziply create
# Error: "Invalid argument set to create a zipled file..."

To resolve such errors, refer to the help text using ziply --help.


🌟 Examples of Usage

  1. Create a video with default resolution:
ziply create -f input.ext
  1. Create a video with 720p resolution and a password:
ziply create -f input.ext -o my_video -r 720p -p Secret123
  1. Restore a file with a password:
ziply restore -f my_video.mp4 -o restored_file -p Secret123
  1. View the help text:
ziply --help

πŸ› οΈ Support

If you encounter any issues, feel free to open a support ticket or consult the --help documentation for more guidance.


πŸ“„ License

This project is licensed under the MIT License.

License Summary

The MIT License is a permissive free software license that allows you to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of this software, as long as you include the original copyright and permission notice in all copies or substantial portions of the software.

MIT License

Copyright (c) 2024 Arpan Bhandari

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and its associated documentation (the "Software"), to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit others to whom the Software is provided to do so, subject to the following conditions:

  • The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software.

Disclaimer:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

🀝 Contributing to Ziply

We welcome contributions from the community! Here's how you can help:

Ways to Contribute

  1. Reporting Bugs

    • Use GitHub Issues to report any bugs you find
    • Include detailed information about your environment
    • Provide steps to reproduce the issue
  2. Suggesting Enhancements

    • Open an issue to discuss new features
    • Provide clear use cases and potential implementation approaches
  3. Code Contributions

    • Fork the repository
    • Create a new branch for your feature or bugfix
    • Ensure your code follows the project's coding standards
    • Write tests for new functionality
    • Submit a pull request with a clear description of changes

Contribution Guidelines

  • Follow existing code style and formatting
  • Write clear, concise commit messages
  • Update documentation when making changes
  • Ensure to test the program ans format it according to '.clang-format' before submitting a pull request
  • Be respectful and constructive in all communications

Development Setup

  1. Clone the repository
  2. Install all dependencies
  3. Compile and test the setup before commiting changes
cmake . && make

Code of Conduct

  • Be inclusive and respectful
  • Constructive feedback is encouraged
  • No harassment or discriminatory language will be tolerated

Reporting Security Issues

For security vulnerabilities, please contact @arpan404 instead of creating a public issue.


About

Ziply is a tool that converts files into video format, supporting various resolutions and offering encryption for secure conversion, ensuring easy restoration and data protection.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published