Skip to content

Commit e2b3212

Browse files
authored
Version 5.9.0 (#634)
* Adding QP mode for FFmpeg Nvenc encoding * Adding more preview positions * Adding ultra high quality mode for ffmpeg nvenc encoder * Adding Ubuntu 24.04 builds * Adding #633 download for stable version of ffmpeg by default on Windows (thanks to Maddie Davis) * Fixing #611 Extension type not being selected properly from profiles if encoders isn't switched (thanks to Hankuu) * Fixing #628 Custom QP/CRF saved in profile may not be restored correctly (thanks to Gregorio O. DeMojeca) * Fixing #631 VVC Level can't be set to 0 anymore (thanks to GT500org) * Removing Ubuntu 20.04, 22.04 and Mac 12 builds
1 parent 4944950 commit e2b3212

File tree

22 files changed

+211
-63
lines changed

22 files changed

+211
-63
lines changed

.github/workflows/build.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
build-nix:
1010
strategy:
1111
matrix:
12-
os: [ ubuntu-20.04, ubuntu-22.04, macos-12, macos-14 ]
12+
os: [ ubuntu-24.04, macos-14 ]
1313
runs-on: ${{ matrix.os }}
1414

1515
steps:
@@ -31,7 +31,7 @@ jobs:
3131
- name: Install PySide6 apt Requirements
3232
run: |
3333
sudo apt update
34-
sudo apt install libopengl0 freeglut3 freeglut3-dev libxcb-icccm4 libxkbcommon-x11-0 libxcb-xkb1 libxcb-render-util0 libxcb-randr0 libxcb-keysyms1 libxcb-image0 libxcb-shape0-dev libxcb-cursor-dev -y
34+
sudo apt install libopengl0 freeglut3-dev libxcb-icccm4 libxkbcommon-x11-0 libxcb-xkb1 libxcb-render-util0 libxcb-randr0 libxcb-keysyms1 libxcb-image0 libxcb-shape0-dev libxcb-cursor-dev -y
3535
if: ${{ startsWith(matrix.os, 'ubuntu') }}
3636

3737
- name: Install Python Dependencies

.github/workflows/test.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99

1010
jobs:
1111
lint:
12-
runs-on: ubuntu-22.04
12+
runs-on: ubuntu-24.04
1313

1414
steps:
1515
- uses: actions/checkout@v4
@@ -22,7 +22,7 @@ jobs:
2222
- run: python -m black --check .
2323

2424
test:
25-
runs-on: ubuntu-22.04
25+
runs-on: ubuntu-24.04
2626

2727
steps:
2828
- uses: actions/checkout@v4
@@ -34,7 +34,7 @@ jobs:
3434
- name: Install PySide6 requirements
3535
run: |
3636
sudo apt update
37-
sudo apt install libopengl0 freeglut3 freeglut3-dev -y
37+
sudo apt install libopengl0 freeglut3-dev -y
3838
3939
- name: Install requirements
4040
run: |

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,4 @@ icons.py
123123
test.html
124124
iso-639-3.*
125125
build-dir/
126+
benchmarking/

CHANGES

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## Version 5.9.0
4+
5+
* Adding QP mode for FFmpeg Nvenc encoding
6+
* Adding more preview positions
7+
* Adding ultra high quality mode for ffmpeg nvenc encoder
8+
* Adding Ubuntu 24.04 builds
9+
* Adding #633 download for stable version of ffmpeg by default on Windows (thanks to Maddie Davis)
10+
* Fixing #611 Extension type not being selected properly from profiles if encoders isn't switched (thanks to Hankuu)
11+
* Fixing #628 Custom QP/CRF saved in profile may not be restored correctly (thanks to Gregorio O. DeMojeca)
12+
* Fixing #631 VVC Level can't be set to 0 anymore (thanks to GT500org)
13+
* Removing Ubuntu 20.04, 22.04 and Mac 12 builds
14+
15+
316
## Version 5.8.2
417

518
* Fixing #610 Do not try to divide by zero if HDR metadata has bad values (thanks to Noelle Leigh)

FastFlix.nsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
!define PRODUCT_NAME "FastFlix"
1212
!define PRODUCT_AUTHOR "Chris Griffith"
13-
!define PRODUCT_COPYRIGHT "(c) Chris Griffith 2021-2024"
13+
!define PRODUCT_COPYRIGHT "(c) Chris Griffith 2019-2025"
1414

1515
VIProductVersion "${PRODUCT_VERSION}"
1616
VIFileVersion "${PRODUCT_VERSION}"

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
The MIT License
22

3-
Copyright (c) 2019-2024 Chris Griffith
3+
Copyright (c) 2019-2025 Chris Griffith
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ Special thanks to [leonardyan](https://github.com/leonardyan) for numerous Chine
139139

140140
# License
141141

142-
Copyright (C) 2019-2024 Chris Griffith
142+
Copyright (C) 2019-2025 Chris Griffith
143143

144144
The code itself is licensed under the MIT which you can read in the `LICENSE` file. <br>
145145
Read more about the release licensing in the [docs](docs/README.md) folder. <br>

fastflix/application.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from fastflix.models.config import Config, MissingFF
1212
from fastflix.models.fastflix import FastFlix
1313
from fastflix.models.fastflix_app import FastFlixApp
14-
from fastflix.program_downloads import ask_for_ffmpeg, latest_ffmpeg
14+
from fastflix.program_downloads import ask_for_ffmpeg, grab_stable_ffmpeg
1515
from fastflix.resources import main_icon, breeze_styles_path
1616
from fastflix.shared import file_date, message, latest_fastflix, DEVMODE
1717
from fastflix.widgets.container import Container
@@ -182,7 +182,7 @@ def app_setup(
182182
except MissingFF as err:
183183
if reusables.win_based and ask_for_ffmpeg():
184184
try:
185-
ProgressBar(app, [Task(t("Downloading FFmpeg"), latest_ffmpeg)], signal_task=True)
185+
ProgressBar(app, [Task(t("Downloading FFmpeg"), grab_stable_ffmpeg)], signal_task=True)
186186
app.fastflix.config.load()
187187
except Exception as err:
188188
logger.exception(str(err))

fastflix/data/languages.yaml

Lines changed: 90 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1677,21 +1677,6 @@ Download Cancelled:
16771677
ukr: Завантажити Скасовано
16781678
kor: 다운로드 취소
16791679
ron: Descărcați Anulat
1680-
Download Newest FFmpeg:
1681-
deu: Neuestes FFmpeg herunterladen
1682-
eng: Download Newest FFmpeg
1683-
fra: Télécharger le dernier FFmpeg
1684-
ita: Scarica il nuovo FFmpeg
1685-
spa: Descargar el nuevo FFmpeg
1686-
chs: 下载最新版FFmpeg
1687-
jpn: 最新のFFmpegをダウンロードする
1688-
rus: Скачать новейший FFmpeg
1689-
por: Fazer o download do FFmpeg mais recente
1690-
swe: Hämta Nyaste FFmpeg
1691-
pol: Pobierz Najnowszy FFmpeg
1692-
ukr: Завантажити останню версію FFmpeg
1693-
kor: 최신 FFmpeg 다운로드
1694-
ron: Descărcați cel mai nou FFmpeg
16951680
Downloading FFmpeg:
16961681
deu: Herunterladen von FFmpeg
16971682
eng: Downloading FFmpeg
@@ -7442,7 +7427,8 @@ Drag and Drop to reorder - All items need to be same dimensions:
74427427
eng: Drag and Drop to reorder - All items need to be same dimensions
74437428
fra: Glissez et déposez pour réorganiser - Tous les éléments doivent avoir les mêmes
74447429
dimensions.
7445-
ita: Per riordinare trascina e rilascia - tutti gli elementi devono avere le stesse dimensioni
7430+
ita: Per riordinare trascina e rilascia - tutti gli elementi devono avere le stesse
7431+
dimensioni
74467432
spa: Arrastrar y soltar para reordenar - Todos los elementos deben tener las mismas
74477433
dimensiones
74487434
chs: 拖放来重新排序 - 所有项目的尺寸都需要相同
@@ -8824,8 +8810,8 @@ Remove GUI logs and compress conversion logs older than 30 days at exit:
88248810
die älter als 30 Tage sind, beim Beenden
88258811
fra: Suppression des journaux de l'interface graphique et compression des journaux
88268812
de conversion de plus de 30 jours à la sortie.
8827-
ita: Rimuovi registri eventi GUI e comprimeri registri eventi conversione
8828-
più vecchi di 30 giorni all'uscita.
8813+
ita: Rimuovi registri eventi GUI e comprimeri registri eventi conversione più vecchi
8814+
di 30 giorni all'uscita.
88298815
spa: Elimina los registros GUI y comprime los registros de conversión de más de
88308816
30 días al salir.
88318817
chs: 在退出时删除GUI日志并压缩超过30天的转换日志
@@ -10685,3 +10671,89 @@ Pattern Match:
1068510671
ukr: Збіг за зразком
1068610672
kor: 패턴 일치
1068710673
ron: Potrivire model
10674+
Download Stable FFmpeg:
10675+
eng: Download Stable FFmpeg
10676+
deu: Stable FFmpeg herunterladen
10677+
fra: Télécharger Stable FFmpeg
10678+
ita: Scarica FFmpeg stabile
10679+
spa: Descargar FFmpeg estable
10680+
jpn: 安定したFFmpegをダウンロード
10681+
rus: Скачать стабильный FFmpeg
10682+
por: Descarregar o Stable FFmpeg
10683+
swe: Ladda ner stabil FFmpeg
10684+
pol: Pobierz Stable FFmpeg
10685+
chs: 下载稳定版 FFmpeg
10686+
ukr: Завантажити стабільний FFmpeg
10687+
kor: 안정적인 FFmpeg 다운로드
10688+
ron: Descarcă Stable FFmpeg
10689+
Download Nightly FFmpeg:
10690+
eng: Download Nightly FFmpeg
10691+
deu: Neuestes FFmpeg herunterladen
10692+
fra: Télécharger le dernier FFmpeg
10693+
ita: Scarica il nuovo FFmpeg
10694+
spa: Descargar el nuevo FFmpeg
10695+
chs: 下载最新版FFmpeg
10696+
jpn: 最新のFFmpegをダウンロードする
10697+
rus: Скачать новейший FFmpeg
10698+
por: Fazer o download do FFmpeg mais recente
10699+
swe: Hämta Nyaste FFmpeg
10700+
pol: Pobierz Najnowszy FFmpeg
10701+
ukr: Завантажити останню версію FFmpeg
10702+
kor: 최신 FFmpeg 다운로드
10703+
ron: Descărcați cel mai nou FFmpeg
10704+
hq - High Quality, uhq - Ultra High Quality, ll - Low Latency, ull - Ultra Low Latency:
10705+
eng: hq - High Quality, uhq - Ultra High Quality, ll - Low Latency, ull - Ultra
10706+
Low Latency
10707+
deu: hq - Hohe Qualität, uhq - Ultrahohe Qualität, ll - Niedrige Latenzzeit, ull
10708+
- Ultra-niedrige Latenzzeit
10709+
fra: hq - Haute qualité, uhq - Ultra haute qualité, ll - Faible latence, ull - Ultra
10710+
faible latence
10711+
ita: hq - Alta qualità, uhq - Ultra alta qualità, ll - Bassa latenza, ull - Ultra
10712+
bassa latenza
10713+
spa: hq - Alta calidad, uhq - Calidad ultra alta, ll - Baja latencia, ull - Latencia
10714+
ultra baja
10715+
jpn: hq - 高画質、uhq - 超高画質、ll - 低遅延、ull - 超低遅延
10716+
rus: hq - высокое качество, uhq - сверхвысокое качество, ll - низкая задержка, ull
10717+
- сверхнизкая задержка
10718+
por: hq - Alta Qualidade, uhq - Ultra Alta Qualidade, ll - Baixa Latência, ull -
10719+
Ultra Baixa Latência
10720+
swe: hq - Hög kvalitet, uhq - Ultrahög kvalitet, ll - Låg latens, ull - Ultra låg
10721+
latens
10722+
pol: hq - wysoka jakość, uhq - bardzo wysoka jakość, ll - niskie opóźnienie, ull
10723+
- bardzo niskie opóźnienie
10724+
chs: hq - 高质量,uhq - 超高质量,ll - 低延迟,ull - 超低延迟
10725+
ukr: hq - висока якість, uhq - надвисока якість, ll - низька затримка, ull - наднизька
10726+
затримка
10727+
kor: hq - 고품질, uhq - 초고화질, ll - 저지연, ull - 초저지연
10728+
ron: hq - calitate înaltă, uhq - calitate ultra înaltă, ll - latență redusă, ull
10729+
- latență ultra redusă
10730+
FFmpeg not found!:
10731+
eng: FFmpeg not found!
10732+
deu: FFmpeg nicht gefunden!
10733+
fra: FFmpeg introuvable !
10734+
ita: FFmpeg non trovato!
10735+
spa: ¡FFmpeg no encontrado!
10736+
jpn: FFmpegが見つかりません!
10737+
rus: FFmpeg не найден!
10738+
por: FFmpeg não encontrado!
10739+
swe: FFmpeg hittades inte!
10740+
pol: Nie znaleziono FFmpeg!
10741+
chs: 未找到 FFmpeg!
10742+
ukr: FFmpeg не знайдено!
10743+
kor: FFmpeg를 찾을 수 없습니다!
10744+
ron: FFmpeg nu a fost găsit!
10745+
Automatically download FFmpeg?:
10746+
eng: Automatically download FFmpeg?
10747+
deu: Automatisches Herunterladen von FFmpeg?
10748+
fra: Télécharger automatiquement FFmpeg ?
10749+
ita: Scaricare automaticamente FFmpeg?
10750+
spa: ¿Descargar automáticamente FFmpeg?
10751+
jpn: FFmpegを自動的にダウンロードしますか?
10752+
rus: Автоматически загружать FFmpeg?
10753+
por: Descarregar automaticamente o FFmpeg?
10754+
swe: Ladda ner FFmpeg automatiskt?
10755+
pol: Automatycznie pobierać FFmpeg?
10756+
chs: 自动下载 FFmpeg?
10757+
ukr: Автоматично завантажити FFmpeg?
10758+
kor: FFmpeg를 자동으로 다운로드하시겠습니까?
10759+
ron: Descărcați automat FFmpeg?

fastflix/encoders/common/helpers.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,18 @@ def generate_ffmpeg_start(
9999
)
100100

101101

102+
def rigaya_data(streams, copy_data=False, **_):
103+
if not copy_data:
104+
return ""
105+
datas = []
106+
for stream in streams:
107+
if stream["codec_type"] == "data":
108+
datas.append(str(stream["index"]))
109+
if not datas:
110+
return ""
111+
return f"--data-copy {','.join(datas)}"
112+
113+
102114
def generate_ending(
103115
audio,
104116
subtitles,
@@ -109,13 +121,15 @@ def generate_ending(
109121
null_ending=False,
110122
output_fps: Union[str, None] = None,
111123
disable_rotate_metadata=False,
124+
copy_data=False,
112125
**_,
113126
):
114127
ending = (
115128
f" {'-map_metadata -1' if remove_metadata else '-map_metadata 0'} "
116129
f"{'-map_chapters 0' if copy_chapters else '-map_chapters -1'} "
117130
f"{f'-r {output_fps}' if output_fps else ''} "
118131
f"{audio} {subtitles} {cover} "
132+
f"{'-map 0:d -c:d copy ' if copy_data else ''}"
119133
)
120134

121135
# In case they use a mp4 container, nix the rotation

0 commit comments

Comments
 (0)