video_converter.paths module
入出力パスの解決を担うモジュール。
各変換関数が共通で行う「入力の存在確認」「出力先の既定値の決定」 「入力と出力が同一になっていないかの確認」をまとめる。
progress や gevent に依存しないため、パス解決のためだけに
モジュールを 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]