Skip to content

Commit

Permalink
Merge pull request #69 from videomorph-dev/final-updates-1.5rc
Browse files Browse the repository at this point in the history
Final updates 1.5rc. 

I think this is ready for release. Let's do it.
  • Loading branch information
leonel-lordford authored Mar 11, 2021
2 parents eed4f91 + a500e77 commit eceaf45
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 86 deletions.
149 changes: 81 additions & 68 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,28 @@
[![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)
- [Installing Form the Source Packages](#installing-form-the-source-packages)
- [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)
Expand All @@ -38,25 +38,29 @@ 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.

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

Expand All @@ -65,83 +69,83 @@ 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 <directory containing VideoMorph binary>
$ 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
$ 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)

Expand All @@ -151,62 +155,68 @@ 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)
- [Ozkar L. Garcell](https://github.com/codeshard)

### 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

Expand All @@ -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

Expand All @@ -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/)

Expand All @@ -273,4 +286,4 @@ Contributors:

## Copyright

Copyright 2016-2020 VideoMorph Development Team.
Copyright 2016-2021 VideoMorph Development Team.
17 changes: 1 addition & 16 deletions TODO
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 2 additions & 2 deletions changelog
Original file line number Diff line number Diff line change
@@ -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 <[email protected]> Sun, 14 Feb 2021 12:15:38 -0400
-- Leodanis Pozo Ramos <[email protected]> Wed, 10 Mar 2021 19:11:00 -0400

videomorph (1.4); urgency=high

Expand Down
Binary file modified changelog.gz
Binary file not shown.

0 comments on commit eceaf45

Please sign in to comment.