From 0e15c2a31bd074eec5809adb2c266eb2e719c182 Mon Sep 17 00:00:00 2001 From: janis Date: Wed, 15 Mar 2023 12:21:28 +0100 Subject: [PATCH] fixed ffmpeg errors and added cli --- bin/__pycache__/handler.cpython-310.pyc | Bin 5636 -> 5692 bytes bin/handler.py | 7 +- bin/lib/ffmpeg/{ => ffmpeg}/__init__.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/_ffmpeg.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/_filters.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/_probe.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/_run.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/_utils.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/_view.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/dag.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/nodes.py | 0 bin/lib/ffmpeg/{ => ffmpeg}/tests/__init__.py | 0 .../{ => ffmpeg}/tests/sample_data/in1.mp4 | Bin .../tests/sample_data/overlay.png | Bin .../ffmpeg/{ => ffmpeg}/tests/test_ffmpeg.py | 0 bin/lib/ffmpeg/pyproject.toml | 15 +++ bin/lib/ffmpeg/pytest.ini | 2 + bin/lib/ffmpeg/setup.cfg | 2 + bin/lib/ffmpeg/setup.py | 100 ++++++++++++++++++ bin/lib/ffmpeg/tox.ini | 24 +++++ config/settings.ini | 2 +- dev/get_metadata.py | 4 +- fsrimagevideoupscaler-cli.py | 6 +- 23 files changed, 155 insertions(+), 7 deletions(-) rename bin/lib/ffmpeg/{ => ffmpeg}/__init__.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/_ffmpeg.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/_filters.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/_probe.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/_run.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/_utils.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/_view.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/dag.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/nodes.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/tests/__init__.py (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/tests/sample_data/in1.mp4 (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/tests/sample_data/overlay.png (100%) rename bin/lib/ffmpeg/{ => ffmpeg}/tests/test_ffmpeg.py (100%) create mode 100644 bin/lib/ffmpeg/pyproject.toml create mode 100644 bin/lib/ffmpeg/pytest.ini create mode 100644 bin/lib/ffmpeg/setup.cfg create mode 100644 bin/lib/ffmpeg/setup.py create mode 100644 bin/lib/ffmpeg/tox.ini diff --git a/bin/__pycache__/handler.cpython-310.pyc b/bin/__pycache__/handler.cpython-310.pyc index 725b872850b7d8ce2b961ce825e38df160c0429a..bfc755a3eecd90982f0cd0aec4c4894bb08d4bba 100644 GIT binary patch delta 464 zcmaiv&q@O^5XLjfW;ac@g(?ayB1Ob177;(Mvx4f+`312`#qHbcJ2Z}^6p+!sHJ>24||37)U#jII}k=@mE|Zm*Ud4Vt#N z;`8h(cb+}vg-%m66Dkq%v78W<43lGDvk3q>Cfd>bo@jnYRqFNj9iSW^(7m`#vyhuU z&`$>WxZ<89?Z894y#4vbQ5`F z&Juh&y%aM6YI>M?p>R6=UTi}(YuoML1Q8%yk@vHPB5tK;UJ&T+c@UTavT;yUy4L9I zv>LUYdcA!eUd$M>^3S`SdgJ1{YI>nDC2QVCnK3k)O#HNTlv_r2h>$qqFQ{M=7T6E1 C!((0m delta 320 zcmdm^)1t$d&&$ij00b#(1yVk%P2`hdjF_k`XUUwxn8K9962$_hS)*9NG+Pu~D$4@) zg$z*~sT>P9Q(M-Y>O$av_r>qr~QJ zrqj%fa+AZ^!Y1!y;$-^6FnI@CFK2iPa}DEch7_*JSJ;%hY<82+u=i@(0bNzB z1SB|^xEPffxfm4~Iha@&d6;+@xtNgnjGJ3HZgDW)+8i&qfr&9}vw%o0qq{grGst5c z3>=IcY#a(a5=Bfvt|s>__W1ae{N(ufB6T3Yhy_Fl0*NS|*R1VZNk diff --git a/bin/handler.py b/bin/handler.py index e9e760d..41391a7 100644 --- a/bin/handler.py +++ b/bin/handler.py @@ -71,17 +71,18 @@ class Handler: else: print("OS CURRENTLY UNSUPPORTED!") return False - os.system(self.command) print("photo upscaled") else: if self.os_type == "linux": - self.command = f"wine {fsrpath} -Scale {quality_setting} {self.filepath} {output_path}" + self.command = f"wine {fsrpath} -Scale {quality_setting} {quality_setting} {self.filepath} {output_path}" elif self.os_type == "win32": - self.command = f"{fsrpath} -Scale {quality_setting} {self.filepath} {output_path}" + self.command = f"{fsrpath} -Scale {quality_setting} {quality_setting} {self.filepath} {output_path}" else: print("OS CURRENTLY UNSUPPORTED!") return False + print( self.command ) + os.system(self.command) print("photo upscaled") diff --git a/bin/lib/ffmpeg/__init__.py b/bin/lib/ffmpeg/ffmpeg/__init__.py similarity index 100% rename from bin/lib/ffmpeg/__init__.py rename to bin/lib/ffmpeg/ffmpeg/__init__.py diff --git a/bin/lib/ffmpeg/_ffmpeg.py b/bin/lib/ffmpeg/ffmpeg/_ffmpeg.py similarity index 100% rename from bin/lib/ffmpeg/_ffmpeg.py rename to bin/lib/ffmpeg/ffmpeg/_ffmpeg.py diff --git a/bin/lib/ffmpeg/_filters.py b/bin/lib/ffmpeg/ffmpeg/_filters.py similarity index 100% rename from bin/lib/ffmpeg/_filters.py rename to bin/lib/ffmpeg/ffmpeg/_filters.py diff --git a/bin/lib/ffmpeg/_probe.py b/bin/lib/ffmpeg/ffmpeg/_probe.py similarity index 100% rename from bin/lib/ffmpeg/_probe.py rename to bin/lib/ffmpeg/ffmpeg/_probe.py diff --git a/bin/lib/ffmpeg/_run.py b/bin/lib/ffmpeg/ffmpeg/_run.py similarity index 100% rename from bin/lib/ffmpeg/_run.py rename to bin/lib/ffmpeg/ffmpeg/_run.py diff --git a/bin/lib/ffmpeg/_utils.py b/bin/lib/ffmpeg/ffmpeg/_utils.py similarity index 100% rename from bin/lib/ffmpeg/_utils.py rename to bin/lib/ffmpeg/ffmpeg/_utils.py diff --git a/bin/lib/ffmpeg/_view.py b/bin/lib/ffmpeg/ffmpeg/_view.py similarity index 100% rename from bin/lib/ffmpeg/_view.py rename to bin/lib/ffmpeg/ffmpeg/_view.py diff --git a/bin/lib/ffmpeg/dag.py b/bin/lib/ffmpeg/ffmpeg/dag.py similarity index 100% rename from bin/lib/ffmpeg/dag.py rename to bin/lib/ffmpeg/ffmpeg/dag.py diff --git a/bin/lib/ffmpeg/nodes.py b/bin/lib/ffmpeg/ffmpeg/nodes.py similarity index 100% rename from bin/lib/ffmpeg/nodes.py rename to bin/lib/ffmpeg/ffmpeg/nodes.py diff --git a/bin/lib/ffmpeg/tests/__init__.py b/bin/lib/ffmpeg/ffmpeg/tests/__init__.py similarity index 100% rename from bin/lib/ffmpeg/tests/__init__.py rename to bin/lib/ffmpeg/ffmpeg/tests/__init__.py diff --git a/bin/lib/ffmpeg/tests/sample_data/in1.mp4 b/bin/lib/ffmpeg/ffmpeg/tests/sample_data/in1.mp4 similarity index 100% rename from bin/lib/ffmpeg/tests/sample_data/in1.mp4 rename to bin/lib/ffmpeg/ffmpeg/tests/sample_data/in1.mp4 diff --git a/bin/lib/ffmpeg/tests/sample_data/overlay.png b/bin/lib/ffmpeg/ffmpeg/tests/sample_data/overlay.png similarity index 100% rename from bin/lib/ffmpeg/tests/sample_data/overlay.png rename to bin/lib/ffmpeg/ffmpeg/tests/sample_data/overlay.png diff --git a/bin/lib/ffmpeg/tests/test_ffmpeg.py b/bin/lib/ffmpeg/ffmpeg/tests/test_ffmpeg.py similarity index 100% rename from bin/lib/ffmpeg/tests/test_ffmpeg.py rename to bin/lib/ffmpeg/ffmpeg/tests/test_ffmpeg.py diff --git a/bin/lib/ffmpeg/pyproject.toml b/bin/lib/ffmpeg/pyproject.toml new file mode 100644 index 0000000..de71e58 --- /dev/null +++ b/bin/lib/ffmpeg/pyproject.toml @@ -0,0 +1,15 @@ +[tool.black] +skip-string-normalization = true +target_version = ['py27'] # TODO: drop Python 2 support (... "Soon"). +include = '\.pyi?$' +exclude = ''' +( + /( + \.eggs + | \.git + | \.tox + | \venv + | dist + )/ +) +''' diff --git a/bin/lib/ffmpeg/pytest.ini b/bin/lib/ffmpeg/pytest.ini new file mode 100644 index 0000000..01ab5ea --- /dev/null +++ b/bin/lib/ffmpeg/pytest.ini @@ -0,0 +1,2 @@ +[pytest] +testpaths = ffmpeg/tests diff --git a/bin/lib/ffmpeg/setup.cfg b/bin/lib/ffmpeg/setup.cfg new file mode 100644 index 0000000..b7e4789 --- /dev/null +++ b/bin/lib/ffmpeg/setup.cfg @@ -0,0 +1,2 @@ +[aliases] +test=pytest diff --git a/bin/lib/ffmpeg/setup.py b/bin/lib/ffmpeg/setup.py new file mode 100644 index 0000000..72f381c --- /dev/null +++ b/bin/lib/ffmpeg/setup.py @@ -0,0 +1,100 @@ +from setuptools import setup +from textwrap import dedent + +version = '0.2.0' +download_url = 'https://github.com/kkroening/ffmpeg-python/archive/v{}.zip'.format( + version +) + +long_description = dedent( + '''\ + ffmpeg-python: Python bindings for FFmpeg + ========================================= + + :Github: https://github.com/kkroening/ffmpeg-python + :API Reference: https://kkroening.github.io/ffmpeg-python/ +''' +) + + +file_formats = [ + 'aac', + 'ac3', + 'avi', + 'bmp', + 'flac', + 'gif', + 'mov', + 'mp3', + 'mp4', + 'png', + 'raw', + 'rawvideo', + 'wav', +] +file_formats += ['.{}'.format(x) for x in file_formats] + +misc_keywords = [ + '-vf', + 'a/v', + 'audio', + 'dsp', + 'FFmpeg', + 'ffmpeg', + 'ffprobe', + 'filtering', + 'filter_complex', + 'movie', + 'render', + 'signals', + 'sound', + 'streaming', + 'streams', + 'vf', + 'video', + 'wrapper', +] + +keywords = misc_keywords + file_formats + +setup( + name='ffmpeg-python', + packages=['ffmpeg'], + version=version, + description='Python bindings for FFmpeg - with complex filtering support', + author='Karl Kroening', + author_email='karlk@kralnet.us', + url='https://github.com/kkroening/ffmpeg-python', + download_url=download_url, + keywords=keywords, + long_description=long_description, + install_requires=['future'], + extras_require={ + 'dev': [ + 'future==0.17.1', + 'numpy==1.16.4', + 'pytest-mock==1.10.4', + 'pytest==4.6.1', + 'Sphinx==2.1.0', + 'tox==3.12.1', + ] + }, + classifiers=[ + 'Intended Audience :: Developers', + 'License :: OSI Approved :: Apache Software License', + 'Natural Language :: English', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + ], +) diff --git a/bin/lib/ffmpeg/tox.ini b/bin/lib/ffmpeg/tox.ini new file mode 100644 index 0000000..9881407 --- /dev/null +++ b/bin/lib/ffmpeg/tox.ini @@ -0,0 +1,24 @@ +# Tox (https://tox.readthedocs.io/) is a tool for running tests +# in multiple virtualenvs. This configuration file will run the +# test suite on all supported python versions. To use it, "pip install tox" +# and then run "tox" from this directory. + +[tox] +envlist = py27, py35, py36, py37, py38, py39, py310 + +[gh-actions] +python = + 2.7: py27 + 3.5: py35 + 3.6: py36 + 3.7: py37 + 3.8: py38 + 3.9: py39 + 3.10: py310 + +[testenv] +commands = py.test -vv +deps = + future + pytest + pytest-mock diff --git a/config/settings.ini b/config/settings.ini index 51a5087..b44989c 100644 --- a/config/settings.ini +++ b/config/settings.ini @@ -1,7 +1,7 @@ [PathSettings] defaultOutputPath = $HOME/FSRImageVideoUpscaler/ tmpPathLinux = /tmp/ -tmpPathWindows = %TEMP% +tmpPathWindows = temp ffmpeg = ./bin/lib/ffmpeg.exe [DevSettings] diff --git a/dev/get_metadata.py b/dev/get_metadata.py index e1acb45..a4b5da0 100644 --- a/dev/get_metadata.py +++ b/dev/get_metadata.py @@ -1,4 +1,6 @@ -import ffmpeg +import bin.lib.ffmpeg + +ffmpeg = bin.lib.ffmpeg class MetaDataParser: diff --git a/fsrimagevideoupscaler-cli.py b/fsrimagevideoupscaler-cli.py index b3dfd8a..3e511b0 100644 --- a/fsrimagevideoupscaler-cli.py +++ b/fsrimagevideoupscaler-cli.py @@ -11,9 +11,11 @@ import argparse import bin.handler ap = argparse.ArgumentParser(description="FSRImageVideoUpscaler - CLI") -ap.add_argument("Input file", help="Path to txt file containing the testdata") +ap.add_argument("inputfile", help="File path for the video / image to be upscaled") +ap.add_argument("outputfile", help="File path for the video / image that was upscaled") +ap.add_argument('-s', '--scalefactor', help="Scale factor for the video / image") args = ap.parse_args() handler = bin.handler.Handler() -handler.handler( 'bin/lib/FidelityFX_CLI.exe', ) \ No newline at end of file +handler.handler( 'bin/lib/FidelityFX_CLI.exe', args.inputfile, 'custom', '2x', args.outputfile ) \ No newline at end of file