added cross plattform ffmpeg, and an option to set ffmpeg bin
This commit is contained in:
parent
1d64aab778
commit
cd61fe4c1d
@ -1,9 +1,8 @@
|
||||
from typing import List, Tuple
|
||||
from tqdm import tqdm
|
||||
from ffmpeg_progress_yield import FfmpegProgress
|
||||
import subprocess
|
||||
|
||||
from ..utils.shared import BITRATE, AUDIO_FORMAT, CODEX_LOGGER as LOGGER
|
||||
from ..utils.shared import BITRATE, AUDIO_FORMAT, CODEX_LOGGER as LOGGER, FFMPEG_BINARY
|
||||
from ..objects import Target
|
||||
|
||||
|
||||
@ -36,7 +35,7 @@ def correct_codec(target: Target, bitrate_kb: int = BITRATE, audio_format: str =
|
||||
|
||||
# build the ffmpeg command
|
||||
ffmpeg_command = [
|
||||
"ffmpeg",
|
||||
str(FFMPEG_BINARY),
|
||||
"-i", str(target.file_path),
|
||||
"-af", select,
|
||||
"-b", str(bitrate_b),
|
||||
|
@ -10,7 +10,8 @@ def all_paths():
|
||||
"Music dir": LOCATIONS.MUSIC_DIRECTORY,
|
||||
"Log file": shared.LOG_PATH,
|
||||
"Conf dir": LOCATIONS.CONFIG_DIRECTORY,
|
||||
"Conf file": LOCATIONS.CONFIG_FILE
|
||||
"Conf file": LOCATIONS.CONFIG_FILE,
|
||||
"FFMPEG bin": LOCATIONS.FFMPEG_BIN,
|
||||
}
|
||||
|
||||
|
||||
|
@ -38,12 +38,19 @@ class PathsSection(Section):
|
||||
r'^\.' # is hidden/starts with a "."
|
||||
]
|
||||
)
|
||||
|
||||
self.FFMPEG_BINARY = PathAttribute(
|
||||
name="ffmpeg_binary",
|
||||
description="Set the path to the ffmpeg binary.",
|
||||
value=str(LOCATIONS.FFMPEG_BIN)
|
||||
)
|
||||
|
||||
self.attribute_list = [
|
||||
self.MUSIC_DIRECTORY,
|
||||
self.TEMP_DIRECTORY,
|
||||
self.LOG_PATH,
|
||||
self.NOT_A_GENRE_REGEX
|
||||
self.NOT_A_GENRE_REGEX,
|
||||
self.FFMPEG_BINARY
|
||||
]
|
||||
|
||||
super().__init__()
|
||||
|
@ -2,6 +2,7 @@ from pathlib import Path
|
||||
import os
|
||||
|
||||
import tempfile
|
||||
from pyffmpeg import FFmpeg
|
||||
|
||||
from .music_directory import get_music_directory
|
||||
from .config_directory import get_config_directory
|
||||
@ -19,6 +20,8 @@ class Locations:
|
||||
self.CONFIG_DIRECTORY = get_config_directory(str(application_name))
|
||||
self.CONFIG_DIRECTORY.mkdir(exist_ok=True, parents=True)
|
||||
self.CONFIG_FILE = Path(self.CONFIG_DIRECTORY, f"{application_name}.conf")
|
||||
|
||||
self.FFMPEG_BIN = Path(FFmpeg(enable_log=False).get_ffmpeg_bin())
|
||||
|
||||
def get_log_file(self, file_name: os.PathLike) -> Path:
|
||||
return Path(self.TEMP_DIRECTORY, file_name)
|
||||
|
@ -120,3 +120,5 @@ to download:
|
||||
|
||||
have fun :3
|
||||
""".strip()
|
||||
|
||||
FFMPEG_BINARY: Path = PATHS_SECTION.FFMPEG_BINARY.object_from_value
|
||||
|
Loading…
Reference in New Issue
Block a user