added cross plattform ffmpeg, and an option to set ffmpeg bin

This commit is contained in:
Hellow2 2023-06-21 11:53:59 +02:00
parent 1d64aab778
commit cd61fe4c1d
5 changed files with 17 additions and 5 deletions

View File

@ -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),

View File

@ -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,
}

View File

@ -39,11 +39,18 @@ class PathsSection(Section):
]
)
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__()

View File

@ -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
@ -20,5 +21,7 @@ class Locations:
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)

View File

@ -120,3 +120,5 @@ to download:
have fun :3
""".strip()
FFMPEG_BINARY: Path = PATHS_SECTION.FFMPEG_BINARY.object_from_value