diff --git a/README.md b/README.md index def0dcd..d0f4864 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,14 @@ [![Maintainability](https://api.codeclimate.com/v1/badges/5f6cd3f7c20bccee2065/maintainability)](https://codeclimate.com/github/videomorph-dev/videomorph/maintainability) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/videomorph-dev/videomorph/pulls) -**VideoMorph** is a **video converter** based on [ffmpeg](http://ffmpeg.org), and written with [Python](https://python.org) 3, and [PyQt5](https://www.riverbankcomputing.com/static/Docs/PyQt5/introduction.html). With VideoMorph you can convert your favorite videos to the currently more popular video formats, like **MPG**, **MP4**, **AVI**, **WEBM**, **DVD**, **VCD**, **FLV**, **MOV**, **OGV**, **WMV**, **MKV** and also extract the audio to a file with **MP3** or **OGA** formats. +**VideoMorph** is a **video converter** based on [ffmpeg](http://ffmpeg.org). It's written with [Python](https://python.org) 3 and [PyQt5](https://www.riverbankcomputing.com/static/Docs/PyQt5/introduction.html). With VideoMorph, you can convert your favorite videos to the currently more popular video formats, such as **MPG**, **MP4**, **AVI**, **WEBM**, **DVD**, **VCD**, **FLV**, **MOV**, **OGV**, **WMV**, **MKV**. You can also extract the audio to a file with **MP3** or **OGA** formats. -VideoMorph is a video converter, just that. Consists on a GUI wrapper for [Ffmpeg](http://ffmpeg.org), based on general ideas from [python-video-converter](https://github.com/senko/python-video-converter), and presets idea from [QWinFF](http://qwinff.github.io). If you're looking for a video editor, we're sorry but VideoMorph isn't for you. +VideoMorph is a video converter, just that. It consists on a GUI wrapper for [Ffmpeg](http://ffmpeg.org), based on general ideas from [python-video-converter](https://github.com/senko/python-video-converter), and presets idea from [QWinFF](http://qwinff.github.io). If you're looking for a video editor, then VideoMorph isn't for you. - [VideoMorph](#videomorph) - [GUI Screenshot](#gui-screenshot) - [Requirements](#requirements) - - [Installation](#installation) + - [Installing VideoMorph](#installing-videomorph) - [Installing From the Binary Packages](#installing-from-the-binary-packages) - [On GNU/Linux](#on-gnulinux) - [On Windows](#on-windows) @@ -20,13 +20,13 @@ VideoMorph is a video converter, just that. Consists on a GUI wrapper for [Ffmpe - [On GNU/Linux](#on-gnulinux-1) - [On Windows](#on-windows-1) - [Using Portable Editions (if available)](#using-portable-editions-if-available) - - [How to Contribute to the Source](#how-to-contribute-to-the-source) - - [Setting up the Development Environment](#setting-up-the-development-environment) - - [Commits](#commits) + - [Contributing to the Source](#contributing-to-the-source) + - [Setting Up the Development Environment](#setting-up-the-development-environment) + - [Commiting Changes](#commiting-changes) - [Internal Contributions Procedure](#internal-contributions-procedure) - [External Contributions Procedure](#external-contributions-procedure) - [Branch Naming Conventions](#branch-naming-conventions) - - [Coding, and Docstrings Style](#coding-and-docstrings-style) + - [Coding and Docstrings Style](#coding-and-docstrings-style) - [Commit Messaging Style](#commit-messaging-style) - [Licensing](#licensing) - [Authors and Contributors](#authors-and-contributors) @@ -38,11 +38,11 @@ VideoMorph is a video converter, just that. Consists on a GUI wrapper for [Ffmpe ## Requirements -VideoMorph uses the following libraries and programs: +VideoMorph uses the following external libraries and programs: -- [PyQt5](https://www.riverbankcomputing.com/static/Docs/PyQt5/introduction.html) +- [PyQt5](https://www.riverbankcomputing.com/static/Docs/PyQt5/introduction.html) >= 5.15.2 - [FFmpeg](http://ffmpeg.org) -- [Python](https://python.org) > 3.4 +- [Python](https://python.org) >= 3.7 You need to install these programs and libraries for VideoMorph to work properly. @@ -50,13 +50,17 @@ On Windows systems, you also need: - [setuptools](https://pypi.python.org/pypi/setuptools) -## Installation +## Installing VideoMorph -You can install and use VideoMorph on GNU/Linux and Windows systems. There are several ways you can use to install the application. Let's take a look at them. We haven't tried properly **yet** on MacO :-| +You can install and use VideoMorph on GNU/Linux and Windows systems. There are several ways to install the application. Let's take a look at them. + +``` +Note: We haven't made VideoMorph run on macOS, yet :-| +``` ### Installing From the Binary Packages -If you're using GNU/Linux or Windows, then you can install VideoMorph by using the appropriate binary package for your system. +On GNU/Linux and Windows, you can install VideoMorph using the appropriate binary package. #### On GNU/Linux @@ -65,57 +69,53 @@ You can install VideoMorph on Debian/Ubuntu and derivatives by running the follo 1. Download the `.deb` package 2. Open a terminal, and run the following commands as **root** or using **sudo**: -```bash +```sh $ apt install ffmpeg python3 python3-pyqt5 + ... $ cd $ dpkg -i videomorph_x.x_all.deb + ... ``` -That should be enough to get VideoMorph (and its dependencies) installed on your system. - -You can also install VideoMorph's `.deb` package, by using GDebi, which is a GUI Packages Installer that will manage the dependencies for you. +That's enough to get VideoMorph (and its dependencies) installed on your system. You can also install VideoMorph's `.deb` package using GDebi, which is a GUI Package Installer that manages the dependencies for you. #### On Windows -To install VideoMorph on your Windows system, you can: +To install VideoMorph on Windows systems, you need to: -1. Download the installer that corresponds to your architecture +1. Download the installer that matches your architecture 2. Run the installer as an `administrator` -3. Follow on-screen instructions +3. Follow the on-screen instructions ### Installing Form the Source Packages -You can install VideoMorph from the source packages. Let's take a look at how to do this. +You can install VideoMorph from the source packages. Let's take a look at how to do it. #### On GNU/Linux To install the application from the source package on a GNU/Linux system, do the following: 1. Download the `.tar.gz` package -2. Open a terminal, and run the following commands as **root** or using **sudo **when specified (as in step 3 and 5): +2. Run the following commands: ```bash $ tar -xvf videomorph-x.x.tar.gz + ... $ cd videomorph-x.x $ sudo pip3 install -r requirements.txt + ... $ python3 setup.py build + ... $ sudo python3 setup.py install ``` -The preceding commands will install VideoMorph, and part of its dependencies into your system. To complete the installation, you need to manually install Ffmpeg or use the Ffmpeg's packages from your distro's current repository. - -**Note:** If you install Ffmpeg from its sources, then you need to make sure that the commands `ffmpeg`, and `ffprobe` are in your system's PATH. To verify this, just run the following commands: +The preceding commands build and install VideoMorph and part of its dependencies on your system. To complete the installation, you need to install Ffmpeg form your distro's software repository. -```bash -$ which ffmpeg -/usr/bin/ffmpeg -$ which ffprobe -/usr/bin/ffprobe +``` +Note: If you install Ffmpeg from its sources, then you need to make sure that the commands `ffmpeg`, and `ffprobe` are in your system's PATH. ``` -If you don't get a similar output, then you need to check your Ffmpeg installation. - -On Debian/Ubuntu derivatives, you can also install VideoMorph by using the `install.sh` script provided in the source package as **root** or using **sudo**: +On Debian/Ubuntu derivatives, you can also install VideoMorph by running the `install.sh` script as **root** or using **sudo**: ```bash $ tar -xvf videomorph-x.x.tar.gz @@ -123,25 +123,29 @@ $ cd videomorph-x.x $ sudo ./install.sh ``` -This command will install VideoMorph and its dependencies (Ffmpeg, and PyQt5) from your distro's current repository. +This commands unpack and install VideoMorph and its dependencies (Ffmpeg, and PyQt5) from your distro's current repository. #### On Windows -To install VideoMorph from the source package on your Windows system, first, make sure you have Python3 installed, then run the following steps: +To install VideoMorph from the source package on Windows, you need to make sure you have Python3 installed. Then run the following steps: 1. Download and decompress the `.zip` source package 2. Open your Windows' command-line (`cmd.exe`), and type the following commands: -```doscon +``` C:/> cd videomorph-x.x C:/> pip install -r requirements.txt + ... C:/> python3 setup.py build + ... C:/> python3 setup.py install ``` -This will install VideoMorph on your system, but you'll need to install Ffmpeg manually. +This installs VideoMorph on your system, but you need to install Ffmpeg manually. -**Note:** It's possible that you have to run the second and the fourth command as an `administrator`. +``` +Note: It's possible that you have to run the second and the fourth command as an `administrator`. +``` ### Using Portable Editions (if available) @@ -151,37 +155,38 @@ To use a Portable Edition (PE) of VideoMorph, you need to: 2. Decompress the `.tar.gz` or the `.zip` file (Linux and Windows respectively) in any directory 3. Double-click on VideoMorph's executable (`videomorph` or `videomorph.exe`) -## How to Contribute to the Source +## Contributing to the Source If you want to contribute to VideoMorph's development cycle, you can follow the steps described in this section. Reach out to contribute with: - Translations -- Artwork and GUI improvements -- Customized conversion profiles or presets +- Artwork and GUI design +- Customized conversion presets - Tutorials on how to use VideoMorph - Documentation - Feature requests - Bug reports -Any other type of contributions are also welcome, even a report about a typo is very welcome, so it's your turn to talk, but remember: VideoMorph is just a video converter, not a video editor. +All contributions are welcome, even a report about a typo is welcome, so it's your turn to talk, but remember: VideoMorph is just a video converter, not a video editor. -### Setting up the Development Environment +### Setting Up the Development Environment -To set up the development environment, and contribute code to VideoMorph, just open a command-line, and type in: +To set up the development environment and contribute code to VideoMorph, just open a command-line and type in: -```console +```sh $ python3 -m venv venv + ... $ source venv/bin/activate (venv)$ pip install -r requirements.txt ``` -You also need to install the Ffmpeg library on your system. +You also need to install the Ffmpeg library on your system and make it available in your system PATH. -### Commits +### Commiting Changes -The members of the VideoMorph Development Team that can commit changes into the repo are: +The following members of the VideoMorph Development Team can commit changes into the repo: - [Leodanis Pozo Ramos](https://github.com/lpozo) - [Leonel Salazar Videaux](https://github.com/leonel-lordford) @@ -189,24 +194,29 @@ The members of the VideoMorph Development Team that can commit changes into the ### Internal Contributions Procedure -1. Work on new features, bug fixes, and other changes on a separated local branch -2. Once the work is done, `push` the whole branch to the `videomorph-dev` repo -3. Create a Pull Request (PR) targeting the `develop` branch -4. Wait for review, feedback, and approval -5. Merge the approved PR into the `develop` branch -6. Delete the temporarily branch +1. Create a new feature branch from `develop` +2. Work on new features or bug fixes +3. Push your feature branch to the `videomorph-dev` +4. Create a pull request (PR) targeting `develop` +5. Wait for review, feedback, and approval +6. Make the required updates if any +7. Merge the approved PR into `develop` +8. Delete the temporarily branch -**Note:** The preceding procedure is intended to be used by the members of the VideoMorph Development Team. +``` +Note: The preceding procedure is intended to be used by the members of the VideoMorph Development Team. +``` ### External Contributions Procedure External contributors must: -- Fork the repo on GitHub -- Work on modifications -- Push modifications to the forked repo -- Make a PR targeting the main VideoMorph `develop` branch -- Wait for review, feedback, and approval +1. Fork the repo on GitHub +2. Create a new feature branch from `develop` +3. Work on your feature +4. Make a PR targeting `develop` on `videomorph-dev` +5. Wait for review, feedback, and approval +6. Make the required updates if any ### Branch Naming Conventions @@ -220,13 +230,14 @@ Where: - `username` corresponds to the GitHub username - `i000` represents the issue number the branch is dealing with. If there is no issue to map the branch then `i000` will be used -- `topic`, stands for a descriptive name that reflects the main goal of the branch (e.g: `john_i024_feature_mov_format`) +- `topic` stands for a descriptive name that reflects the main goal of the branch (e.g: `john_i024_support_mov_format`) -### Coding, and Docstrings Style +### Coding and Docstrings Style -- VideoMorph's code will follow the coding style guidelines described in [PEP8](https://www.python.org/dev/peps/pep-0008/) +- VideoMorph's code follows the coding style guidelines described in [PEP8](https://www.python.org/dev/peps/pep-0008/) - Docstrings in VideoMorph's code will follow the guidelines described in [PEP257](https://www.python.org/dev/peps/pep-0257/) -- Tools like `pylint`, `pep8`, `flake`, and others can be used to ensure that coding style guides are met + +You can use [Black](https://github.com/ambv/black) to automatically format your code, just set the line length to 79. You can also use [isort](https://github.com/timothycrosley/isort) for your imports. ### Commit Messaging Style @@ -240,14 +251,16 @@ General rules for writing commit messages: 6. Wrap the body at 72 characters 7. Use the body to explain what and why vs how +Here's an example: + ``` Add support for MOV format -Add support for MOV format with several presets to give more -default conversion options to the user. +Add support for MOV format with several presets to increase the +default conversion options. ``` -Keep in mind that not all commits require an explanatory body, sometimes with the subject line is enough. +Keep in mind that not all commits require an explanatory body, sometimes the subject line is enough. For more details see: [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/) @@ -273,4 +286,4 @@ Contributors: ## Copyright -Copyright 2016-2020 VideoMorph Development Team. +Copyright 2016-2021 VideoMorph Development Team. diff --git a/TODO b/TODO index 72d0420..55247d3 100644 --- a/TODO +++ b/TODO @@ -3,28 +3,13 @@ ## Next Version (2.0) - Add options to rotate videos clockwise and counter clockwise to correct some videos orientation -- Define a `README.rst` file to be included in source package - Automate the process of creating the Portable Edition on Linux and Windows -- Launch some kind of survey to gather information about most used presets -- Buy the domain name videomorph.info -- Create a landing page for the app ## Version honoring hour dear friend Maikel Llamaret a.k.a. "Canelo" (1.5) - Add some features from Mystiq (Canelo's personal project related with VideoMorph) -- Some bug fixes and improvements - -## BugFix Version (1.4.1) - -- App freezes with certain movies when reading `ffprobe` output on Windows platform -- Problem with the tray icon on Manjaro/Plasma ## Someday - Implement a Dialog to generate the conversion commands using the Ffmpeg options -- Write a Disclaimer about Ffmpeg options in customized profiles, available codecs and input video quality -- Implement an alternative class for `conversionlib._Converter` (`subprocess` maybe) to decouple from `PyQt5` -- Move the business logic present in `videomorph.py`, `about.py` and other views to `converter` package package -- Move the `HTML` text hardcoded in `about.py` to a file distributed as doc. Read the about info from that file as done with the License -- Pack in AppImage, Flatpack or Snap -- Implement model/view/controller pattern +- Improve the application's design by refactoring the code diff --git a/changelog b/changelog index 6055a36..958548a 100644 --- a/changelog +++ b/changelog @@ -1,8 +1,8 @@ videomorph (1.5rc) focal; urgency=high - * VideoMorph v1.5rc Canelo. Release Date: Sun, 14 Feb 2021 + * VideoMorph v1.5rc Canelo. Release Date: Wed, 10 Mar 2021 - -- Leodanis Pozo Ramos Sun, 14 Feb 2021 12:15:38 -0400 + -- Leodanis Pozo Ramos Wed, 10 Mar 2021 19:11:00 -0400 videomorph (1.4); urgency=high diff --git a/changelog.gz b/changelog.gz index 75112f5..c99d766 100644 Binary files a/changelog.gz and b/changelog.gz differ