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.
- 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)
sudo apt-get update
sudo apt-get install -y \
cmake g++ \
libopencv-dev \
libssl-dev \
liblzma-dev
brew install \
cmake \
opencv \
openssl \
xz
-
Manual Library Installation:
Recommended: Use vcpkg for easier dependency management
vcpkg install opencv vcpkg install openssl vcpkg install liblzma
- Clone the Repository:
git clone https://github.com/your-username/ziply.git
cd ziply
- Create a Build Directory:
mkdir build
cd build
- Run CMake:
cmake -DCMAKE_PREFIX_PATH="/usr/local/lib;/usr/lib" ..
- Compile the Code:
make
- Run the Application:
./ziply
- Clone the Repository:
git clone https://github.com/your-username/ziply.git
cd ziply
- Create a Build Directory:
mkdir build
cd build
- Run CMake:
cmake -DCMAKE_PREFIX_PATH="/usr/local/opt/opencv;/usr/local/opt/openssl;/usr/local/opt/xz" ..
- Compile the Code:
make
- Run the Application:
./ziply
- Clone the Repository:
git clone https://github.com/your-username/ziply.git
cd ziply
- Create a Build Directory:
mkdir build
cd build
- Run CMake:
- For Visual Studio (with vcpkg):
cmake -DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake ..
- For MinGW:
cmake -G "MinGW Makefiles" ..
- For Visual Studio (with vcpkg):
- Compile the Code:
- For Visual Studio: Open the generated
.sln
file and build the solution - For MinGW:
mingw32-make
- For Visual Studio: Open the generated
- Run the Application:
ziply.exe
sudo mv ziply /usr/local/bin/
Add the directory containing ziply.exe
to the system PATH environment variable.
- 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
- 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
The general syntax for the tool is as follows:
ziply <command> [options]
Ziply supports the following commands:
Create a Ziply video file from an input file.
ziply create -f <input_file> [-o <output_file>] [-r <resolution>] [-p <password>]
-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).
ziply create -f input.mp4 -o output_video -r 1080p -p MySecretKey
Restore data from a Ziply video file.
ziply restore -f <input_file> [-o <output_file>] [-p <password>]
-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).
ziply restore -f output_video.ziply -o restored_file -p MySecretKey
Display help text with all available commands and options.
ziply --help
ziply --help
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
.
- Create a video with default resolution:
ziply create -f input.ext
- Create a video with 720p resolution and a password:
ziply create -f input.ext -o my_video -r 720p -p Secret123
- Restore a file with a password:
ziply restore -f my_video.mp4 -o restored_file -p Secret123
- View the help text:
ziply --help
If you encounter any issues, feel free to open a support ticket or
consult the --help
documentation for more guidance.
This project is licensed under the MIT License.
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.
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.
We welcome contributions from the community! Here's how you can help:
-
Reporting Bugs
- Use GitHub Issues to report any bugs you find
- Include detailed information about your environment
- Provide steps to reproduce the issue
-
Suggesting Enhancements
- Open an issue to discuss new features
- Provide clear use cases and potential implementation approaches
-
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
- 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
- Clone the repository
- Install all dependencies
- Compile and test the setup before commiting changes
cmake . && make
- Be inclusive and respectful
- Constructive feedback is encouraged
- No harassment or discriminatory language will be tolerated
For security vulnerabilities, please contact @arpan404 instead of creating a public issue.