video_converter.extractor のソースコード
"""動画から音声を抽出・除去するモジュール。"""
import os
import ffmpeg
from video_converter.paths import resolve_io_paths
[ドキュメント]
def audio_extract(
input_path: str | os.PathLike, output_path: str = ""
) -> ffmpeg.nodes.Node:
"""音声を .mp3 で抽出
:param input_path: 動画のファイルパス
:param output_path: 出力ファイルパス (省略した場合は、元のファイル名に".mp3"を付加)
:return: 音声を .mp3 で抽出するパイプライン。出力先が既に存在する場合は上書きする
:raises FileNotFoundError: 入力パスがファイルとして存在しない場合
:raises ValueError: 入力パスと出力パスが同一のファイルを指す場合
"""
input_path, output_path = resolve_io_paths(
input_path, output_path, default_suffix=".mp3"
)
pipeline = ffmpeg.input(str(input_path)).output(str(output_path)).overwrite_output()
return pipeline
[ドキュメント]
def audio_eliminate(
input_path: str | os.PathLike, output_path: str = ""
) -> ffmpeg.nodes.Node:
"""音声を削除
:param input_path: 動画のファイルパス
:param output_path: 出力ファイルパス
(省略した場合は、元のファイル名に"_wo_audio.mp4"を付加)
:return: 音声を削除するパイプライン。出力先が既に存在する場合は上書きする
:raises FileNotFoundError: 入力パスがファイルとして存在しない場合
:raises ValueError: 入力パスと出力パスが同一のファイルを指す場合
"""
input_path, output_path = resolve_io_paths(
input_path,
output_path,
default_suffix=".mp4",
default_stem_suffix="_wo_audio",
)
pipeline = (
ffmpeg.input(str(input_path))
.output(str(output_path), **{"an": None})
.overwrite_output()
)
return pipeline