Skip to content

Commit

Permalink
Version 1.1.0 (#10)
Browse files Browse the repository at this point in the history
* Adding AV1 Support (#9)
  • Loading branch information
cdgriffith authored Mar 9, 2019
1 parent 280bb4e commit e8b9833
Show file tree
Hide file tree
Showing 23 changed files with 4,054 additions and 865 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ ENV/
env.bak/
venv.bak/
lvenv/
venv*/

# Spyder project settings
.spyderproject
Expand All @@ -109,3 +110,6 @@ lvenv/
config.yaml
*.bat
*.sh
binary-files/
SvtAv1/
bundled
9 changes: 9 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
Changelog
---------

Version 1.1.0
~~~~~~~~~~~~~

* Add AV1 support
* Add GIF support
* Add Settings page
* Add About page
* Large amount of changes, fixes, and bugs introduced

Version 1.0.0
~~~~~~~~~~~~~

Expand Down
22 changes: 8 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,16 @@
[![Build status](https://ci.appveyor.com/api/projects/status/208k29cvoq8xwf8j/branch/master?svg=true)](https://ci.appveyor.com/project/cdgriffith/fastflix/branch/master)

# FastFlix

FastFlix is a super simple converter and clip maker.
FastFlix is a GIF converter as well as current and next-gen video encoder.

It is designed to work with ffmpeg with x265 support or an equivalent command line tool.
It can encode videos into AV1, GIF, and can be extended to use x265 with a GPL build of ffmpeg.

They are expected to be found via the system path or specified on startup via `FFMPEG` and `FFPROBE` env variables.
Read more about it and the licensing in the [docs](docs/README.md)

# Releases

View the [releases](https://github.com/cdgriffith/FastFlix/releases) for Windows and Linux binaries (Generated via Appveyor and also [available there](https://ci.appveyor.com/project/cdgriffith/fastflix)).

For legal reasons the ffmpeg binary cannot be bundled with the executable and must be [separately downloaded](https://www.ffmpeg.org/download.html).

## Setting up ffmpeg

There are three ways provided a path to ffmpeg.

1. Looks in the FFMPEG and FFPROBE environment variables
2. Looks on the system PATH to see if it is already available
3. Manually link to the directory housing the binary files via the GUI
View the [releases](https://github.com/cdgriffith/FastFlix/releases) for 64 bit Windows binaries (Generated via Appveyor and also [available there](https://ci.appveyor.com/project/cdgriffith/fastflix)).

## Running the code locally

Expand All @@ -31,6 +23,8 @@ pip install requirements.txt
python -m flix
```

You will need [ffmpeg](https://www.ffmpeg.org/download.html) and [SVT AV1](https://github.com/OpenVisualCloud/SVT-AV1) executables.

# License

Copyright (C) 2019 Chris Griffith
Expand Down
52 changes: 42 additions & 10 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: 1.0.0-{build}
version: TEMP_VER-{build}

skip_commits:
files:
Expand All @@ -13,29 +13,61 @@ skip_commits:


image:
- Ubuntu1804
- Visual Studio 2017

platform: x64

branches:
only:
- master
- build
- master
- build
- develop

install:
- ps: >-
try {Update-AppveyorBuild -Version "$(C:\Python36-x64\python.exe scripts\get_version.py)"}
catch {Update-AppveyorBuild -Version "$(C:\Python36-x64\python.exe scripts\get_version.py)-$env:APPVEYOR_BUILD_ID"}
- ps: Update-AppveyorBuild -Message "[$env:APPVEYOR_REPO_BRANCH] $env:APPVEYOR_REPO_COMMIT_MESSAGE"
- cmd: git clone -b ffmpeg --single-branch https://github.com/cdgriffith/binary-files.git
- cmd: mkdir SvtAv1
- cmd: appveyor DownloadFile https://ci.appveyor.com/api/projects/OpenVisualCloud/svt-av1/artifacts/Bin/Release/SvtAv1Enc.dll?branch=master -FileName SvtAv1\SvtAv1Enc.dll
- cmd: appveyor DownloadFile https://ci.appveyor.com/api/projects/OpenVisualCloud/svt-av1/artifacts/Bin/Release/SvtAv1EncApp.exe?branch=master -FileName SvtAv1\SvtAv1EncApp.exe
- cmd: appveyor DownloadFile https://ci.appveyor.com/api/projects/OpenVisualCloud/svt-av1/artifacts/Bin/Release/SvtAv1Enc.lib?branch=master -FileName SvtAv1\SvtAv1Enc.lib
- cmd: appveyor DownloadFile https://ci.appveyor.com/api/projects/OpenVisualCloud/svt-av1/artifacts/Bin/Release/SvtAv1Enc.exp?branch=master -FileName SvtAv1\SvtAv1Enc.exp
- cmd: C:\Python36-x64\python -m pip install --upgrade pip setuptools --ignore-installed
- cmd: C:\Python36-x64\python -m pip install -r requirements.txt
- sh: sudo apt install python3-pip -y
- sh: sudo python3.6 -m pip install --upgrade pip setuptools --ignore-installed --no-cache-dir
- sh: sudo python3.6 -m pip install -r requirements.txt --no-cache-dir --progress-bar off


build_script:
- cmd: C:\Python36-x64\Scripts\pyinstaller --add-data "data\icon.ico;data" --paths "C:\Python36-x64\Lib\site-packages\shiboken2" --noconsole flix\gui.py --icon data\icon.ico --name FastFlix --clean --onefile
- sh: pyinstaller --add-data "data/icon.ico:data/" --noconsole flix/gui.py --icon data/icon.ico --name FastFlix --clean --onefile
- ps: mkdir dist
- cmd: echo "" > bundled
- ps: 'New-Item -Path Env: -Name VERSION -Value $(C:\Python36-x64\python.exe scripts\get_version.py)'
- cmd: echo %VERSION% > build_version
- ps: 'echo "Building branch $env:APPVEYOR_REPO_BRANCH - version $env:VERSION"'
- cmd: if %APPVEYOR_REPO_BRANCH% == master ( C:\Python36-x64\Scripts\pyinstaller --add-data "bundled;." --add-data "data\icon.ico;data" --add-data "docs\build-licenses.txt;docs" --add-data "binary-files/executables/windows/ffmpeg/lgpl/N-93214-g7e4d3dbe18/x86_64/*;." --paths "C:\Python36-x64\Lib\site-packages\shiboken2" --add-data "SvtAv1\*;." flix\gui.py --icon data\icon.ico --name FastFlix --clean --onefile --noconsole )
# - cmd: if %APPVEYOR_REPO_BRANCH% == master ( C:\Python36-x64\Scripts\pyinstaller --add-data "data\icon.ico;data" --add-data "docs\build-licenses.txt;docs" --paths "C:\Python36-x64\Lib\site-packages\shiboken2" flix\gui.py --icon data\icon.ico --name FastFlix-Light --clean --onefile --noconsole )
- cmd: IF NOT %APPVEYOR_REPO_BRANCH% == master ( C:\Python36-x64\Scripts\pyinstaller --add-data "bundled;." --add-data "build_version;." --add-data "data\icon.ico;data" --add-data "docs\build-licenses.txt;docs" --add-data "binary-files/executables/windows/ffmpeg/lgpl/N-93214-g7e4d3dbe18/x86_64/*;." --paths "C:\Python36-x64\Lib\site-packages\shiboken2" --add-data "SvtAv1\*;." flix\gui.py --icon data\icon.ico --name FastFlix --clean --onefile )
# - cmd: IF NOT %APPVEYOR_REPO_BRANCH% == master ( C:\Python36-x64\Scripts\pyinstaller --add-data "build_version;." --add-data "data\icon.ico;data" --add-data "docs\build-licenses.txt;docs" --paths "C:\Python36-x64\Lib\site-packages\shiboken2" flix\gui.py --icon data\icon.ico --name FastFlix-Light --clean --onefile )
- cmd: move dist\*.exe .

test: off

artifacts:
- path: dist\*
- path: 'FastFlix*exe'

deploy:
- provider: Environment
name: pre-release
artifact: 'FastFlix*exe'
description: ''
on:
branch:
- build

- provider: Environment
name: release
artifact: 'FastFlix*exe'
description: ''
on:
branch:
- master
44 changes: 44 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
## Staying legal

Licencing is a pain, but it keeps everyone compliant and out of trouble. I try to make life easy for everyone
by releasing my own software as MIT licences, however there are several caveats that must be observed if you
are to use or further copy this software.

### Dynamically linked libraries

Thankfully the wonderful creators of ffmpeg and PySide2 want their work shared and have provided use of their
software under the LGPL. The "catch" is that it has to overrideable so you can select your own version or
alternative instead.

#### Changing ffmpeg and ffprobe

Provide environment variables `FFMPEG` and `FFPROBE` with full paths to their respective
executables prior to startup of the executable. It is also possible to select the directory they are
located in via the GUI itself.

```
set FFMPEG=C:\ffmpeg.exe
set FFPROBE=C:\ffprobe.exe
FastFlix.exe
```

#### Changing PySide2 (and shiboken2)

Similar to ffmpeg, PySide2 can be swapped out via environment variables. They can NOT later be swapped
out via the GUI itself, so to change it must be done via env vars.
__
```
set PYSIDE2=venv\Lib\site-packages\PySide2\__init__.py
set SHIBOKEN2=venv\Lib\site-packages\shiboken2\__init__.py
FastFlix.exe
```

#### Changing SVT-AV1

You're not going to believe this, but you also can change SVT-AV1 encoder via env vars!

```
set SVT-AV1=C:\SvtAv1EncApp.exe
FastFlix.exe
```

Loading

0 comments on commit e8b9833

Please sign in to comment.