mirror of
https://github.com/tkmxqrdxddd/davinci-video-converter
synced 2025-11-08 18:45:05 +01:00
small changes
This commit is contained in:
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@@ -23,4 +23,4 @@ jobs:
|
|||||||
- name: Run
|
- name: Run
|
||||||
run: |
|
run: |
|
||||||
echo "Running the Video Converter..."
|
echo "Running the Video Converter..."
|
||||||
./output/VideoConverter
|
./output/davinci-convert
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -33,3 +33,4 @@
|
|||||||
/output
|
/output
|
||||||
/.qtcreator
|
/.qtcreator
|
||||||
/.docker
|
/.docker
|
||||||
|
PKGBUILD
|
||||||
7
Makefile
7
Makefile
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# 'make' build executable file 'VideoConverter'
|
# 'make' build executable file 'davinci-convert'
|
||||||
# 'make clean' removes all .o and executable files
|
# 'make clean' removes all .o and executable files
|
||||||
#
|
#
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ OUTPUT = output
|
|||||||
SRC = src
|
SRC = src
|
||||||
|
|
||||||
# define the main executable name
|
# define the main executable name
|
||||||
MAIN = VideoConverter
|
MAIN = davinci-convert
|
||||||
|
|
||||||
# define the C source files
|
# define the C source files
|
||||||
SOURCES = $(wildcard $(SRC)/*.cpp)
|
SOURCES = $(wildcard $(SRC)/*.cpp)
|
||||||
@@ -47,3 +47,6 @@ run: all
|
|||||||
@echo "Running executable: $(OUTPUTMAIN)"
|
@echo "Running executable: $(OUTPUTMAIN)"
|
||||||
./$(OUTPUTMAIN)
|
./$(OUTPUTMAIN)
|
||||||
@echo Executing 'run: all' complete!
|
@echo Executing 'run: all' complete!
|
||||||
|
|
||||||
|
install: all
|
||||||
|
install -Dm755 $(OUTPUTMAIN) /usr/bin/davinci-convert
|
||||||
|
|||||||
106
README.md
106
README.md
@@ -1 +1,105 @@
|
|||||||
# This is a simple tool that will convert your .mp4 videos into format that davinci resolve on linux uses
|
# Davinci Video Converter
|
||||||
|
|
||||||
|
This is a simple tool that converts your `.mp4` videos into a format that DaVinci Resolve uses on Linux. The application utilizes `ffmpeg` for video conversion.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Convert `.mp4` videos to DNxHD format.
|
||||||
|
- Simple command-line interface for user input.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
Before building and running the application, ensure you have the following installed:
|
||||||
|
|
||||||
|
- `g++` (GNU C++ Compiler)
|
||||||
|
- `make` (Build automation tool)
|
||||||
|
- `ffmpeg` (Multimedia framework for handling video, audio, and other multimedia files)
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Using the Build Script
|
||||||
|
|
||||||
|
1. Clone the repository:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/yourusername/DavinciVideoConverter.git
|
||||||
|
cd DavinciVideoConverter
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Run the build script to install dependencies and build the project:
|
||||||
|
```bash
|
||||||
|
./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
This script will automatically install the required dependencies based on your Linux distribution and build the project. It will also install the application to `/usr/bin`, making it accessible from anywhere.
|
||||||
|
|
||||||
|
### Manual Installation
|
||||||
|
|
||||||
|
If you prefer to install manually, follow these steps:
|
||||||
|
|
||||||
|
1. Install the required dependencies (if not already installed):
|
||||||
|
- For Debian-based systems:
|
||||||
|
```bash
|
||||||
|
sudo apt-get install -y build-essential ffmpeg
|
||||||
|
```
|
||||||
|
- For Red Hat-based systems:
|
||||||
|
```bash
|
||||||
|
sudo dnf install -y gcc-c++ ffmpeg make
|
||||||
|
```
|
||||||
|
- For Arch Linux:
|
||||||
|
```bash
|
||||||
|
sudo pacman -Syu --noconfirm base-devel ffmpeg
|
||||||
|
```
|
||||||
|
- For openSUSE:
|
||||||
|
```bash
|
||||||
|
sudo zypper install -y gcc-c++ ffmpeg make
|
||||||
|
```
|
||||||
|
- For Alpine Linux:
|
||||||
|
```bash
|
||||||
|
sudo apk add --no-cache g++ ffmpeg make
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Build the project using `make`:
|
||||||
|
```bash
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
This will create an executable named `davinci-convert` in the `output` directory.
|
||||||
|
|
||||||
|
3. Install the application:
|
||||||
|
```bash
|
||||||
|
sudo make install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running the Program
|
||||||
|
|
||||||
|
To run the program, use the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./output/davinci-convert
|
||||||
|
```
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
1. When prompted, enter the input file path of the `.mp4` video you want to convert.
|
||||||
|
2. Enter the desired output file path (including the filename and extension) for the converted video.
|
||||||
|
3. The program will start the conversion process. You will see messages indicating the progress.
|
||||||
|
4. Once the conversion is complete, you will receive a success message.
|
||||||
|
|
||||||
|
### Cleaning Up
|
||||||
|
|
||||||
|
To clean up the generated files (object files and the executable), run:
|
||||||
|
```bash
|
||||||
|
make clean
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
If you would like to contribute to this project, please fork the repository and submit a pull request. Any contributions, bug reports, or feature requests are welcome!
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
|
||||||
|
|
||||||
|
## Acknowledgments
|
||||||
|
|
||||||
|
- This project uses `ffmpeg` for video conversion. For more information, visit the [FFmpeg website](https://ffmpeg.org/).
|
||||||
|
|||||||
96
build.sh
Normal file
96
build.sh
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e # Exit immediately if a command exits with a non-zero status
|
||||||
|
set -u # Treat unset variables as an error when substituting
|
||||||
|
set -o pipefail # Prevent errors in a pipeline from being masked
|
||||||
|
|
||||||
|
# Function to install dependencies for Debian-based systems
|
||||||
|
install_debian_dependencies() {
|
||||||
|
echo "Installing dependencies for Debian-based systems..."
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y build-essential ffmpeg || {
|
||||||
|
echo "Failed to install dependencies for Debian-based systems."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to install dependencies for Red Hat-based systems
|
||||||
|
install_redhat_dependencies() {
|
||||||
|
echo "Installing dependencies for Red Hat-based systems..."
|
||||||
|
sudo dnf install -y gcc-c++ ffmpeg make || {
|
||||||
|
echo "Failed to install dependencies for Red Hat-based systems."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to install dependencies for Arch Linux
|
||||||
|
install_arch_dependencies() {
|
||||||
|
echo "Installing dependencies for Arch Linux..."
|
||||||
|
sudo pacman -Syu --noconfirm base-devel ffmpeg || {
|
||||||
|
echo "Failed to install dependencies for Arch Linux."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to install dependencies for openSUSE
|
||||||
|
install_opensuse_dependencies() {
|
||||||
|
echo "Installing dependencies for openSUSE..."
|
||||||
|
sudo zypper install -y gcc-c++ ffmpeg make || {
|
||||||
|
echo "Failed to install dependencies for openSUSE."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to install dependencies for Alpine Linux
|
||||||
|
install_alpine_dependencies() {
|
||||||
|
echo "Installing dependencies for Alpine Linux..."
|
||||||
|
sudo apk add --no-cache g++ ffmpeg make || {
|
||||||
|
echo "Failed to install dependencies for Alpine Linux."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check the package manager and install dependencies accordingly
|
||||||
|
if [ -f /etc/debian_version ]; then
|
||||||
|
install_debian_dependencies
|
||||||
|
elif [ -f /etc/redhat-release ]; then
|
||||||
|
install_redhat_dependencies
|
||||||
|
elif [ -f /etc/arch-release ]; then
|
||||||
|
install_arch_dependencies
|
||||||
|
elif [ -f /etc/os-release ]; then
|
||||||
|
. /etc/os-release
|
||||||
|
case "$ID" in
|
||||||
|
opensuse*)
|
||||||
|
install_opensuse_dependencies
|
||||||
|
;;
|
||||||
|
alpine)
|
||||||
|
install_alpine_dependencies
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported distribution: $ID. Please install the required packages manually."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "Unsupported distribution. Please install the required packages manually."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build the project
|
||||||
|
echo "Building the project..."
|
||||||
|
make
|
||||||
|
|
||||||
|
# Check if the build was successful
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "Build completed successfully."
|
||||||
|
else
|
||||||
|
echo "Build failed. Please check the output for errors."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install the application
|
||||||
|
echo "Installing the application..."
|
||||||
|
sudo make install
|
||||||
|
|
||||||
|
# Inform the user about the executable
|
||||||
|
echo "You can run the application using davinci-convert"
|
||||||
Reference in New Issue
Block a user