video_converter.paths module

入出力パスの解決を担うモジュール。

各変換関数が共通で行う「入力の存在確認」「出力先の既定値の決定」 「入力と出力が同一になっていないかの確認」をまとめる。

progressgevent に依存しないため、パス解決のためだけに モジュールを import しても副作用が発生しない。

video_converter.paths._is_same_file(input_path, output_path)[ソース]

2 つのパスが同一のファイルを指すかどうかを判定する。

出力先がまだ存在しない場合は os.path.samefile を使えないため、 正規化した絶対パスを比較する。

パラメータ:
  • input_path (Path) -- 入力パス。

  • output_path (Path) -- 出力パス。

戻り値:

同一のファイルを指す場合は True

戻り値の型:

bool

video_converter.paths.resolve_io_paths(input_path, output_path, default_suffix, default_stem_suffix='')[ソース]

入力パスを検証し、出力パスを確定する。

output_path が空文字の場合は、入力と同じディレクトリに <入力のファイル名><default_stem_suffix><default_suffix> を作る。

パラメータ:
  • input_path (str | PathLike) -- 入力する動画のファイルパス。

  • output_path (str | PathLike) -- 出力先のファイルパス。空文字の場合は既定値を用いる。

  • default_suffix (str) -- 既定の出力先に使う拡張子 (".mp4" など)。

  • default_stem_suffix (str) -- 既定の出力先のファイル名に付ける接尾辞 ("_compressed" など)。

戻り値:

(入力パス, 出力パス) のタプル。

例外:
  • FileNotFoundError -- 入力パスがファイルとして存在しない場合。

  • ValueError -- 入力パスと出力パスが同一のファイルを指す場合。 FFmpeg は同じファイルを読み書きできず、変換を実行すると入力を 破壊するため、事前に停止する。

戻り値の型:

tuple[Path, Path]