57 lines
2.0 KiB
Python
57 lines
2.0 KiB
Python
"""opentranscode — open-source batch video transcoder (av1an + ffmpeg).
|
|
|
|
A PySide6 GUI application that orchestrates av1an + ffmpeg for batch video
|
|
transcoding. Distro-aware, config-driven (codec / audio / container /
|
|
resolution / license profiles), with a QThread-based encoder worker, a
|
|
from-git source builder for resolving VapourSynth / av1an ABI mismatches,
|
|
and a retro-futuristic media-console UI.
|
|
|
|
This package is a pure code-organization refactor of the single-file
|
|
``open-transcode.v3.py`` script (QA item v4-03). Behavior is identical to
|
|
v3; the v3 script is preserved alongside this package for test-back-compat.
|
|
|
|
Run as a module:
|
|
python -m opentranscode # launch the GUI
|
|
python -m opentranscode --version # print version and exit
|
|
python -m opentranscode --dry-run # probe env + smoke test, no GUI
|
|
python -m opentranscode --verify-only /path/to/output.mkv
|
|
|
|
Or import in code:
|
|
import opentranscode
|
|
print(opentranscode.__version__)
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
__version__ = "3.2.0"
|
|
__author__ = "Jeremy Anderson - dcos.net"
|
|
__license__ = "AGPL-3.0"
|
|
|
|
__all__ = [
|
|
"__version__",
|
|
"__author__",
|
|
"__license__",
|
|
"build_parser",
|
|
"main",
|
|
"launch_gui",
|
|
]
|
|
|
|
# Lightweight re-exports for convenience. Heavy modules (env_probe,
|
|
# encoder_worker, ui_window) are NOT imported here so that
|
|
# ``import opentranscode`` works without PySide6 being available — this
|
|
# keeps ``opentranscode.__version__`` cheap and side-effect-free for
|
|
# ``--version`` and for tooling that just wants the metadata.
|
|
from .cli import build_parser, main
|
|
|
|
|
|
def launch_gui(argv: list[str] | None = None, force: bool = False) -> int:
|
|
"""Launch the OpenTranscode GUI.
|
|
|
|
Thin wrapper around ``opentranscode.ui_window.launch_gui``; imported
|
|
lazily so that ``import opentranscode`` does not pull in PySide6.
|
|
|
|
v5-01: *force* pre-checks the "Force (skip validation)" checkbox.
|
|
"""
|
|
from .ui_window import launch_gui as _launch
|
|
return _launch(argv, force=force)
|