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 typing import List, Tuple
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
from ffmpeg_progress_yield import FfmpegProgress
|
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
|
from ..objects import Target
|
||||||
|
|
||||||
|
|
||||||
@ -36,7 +35,7 @@ def correct_codec(target: Target, bitrate_kb: int = BITRATE, audio_format: str =
|
|||||||
|
|
||||||
# build the ffmpeg command
|
# build the ffmpeg command
|
||||||
ffmpeg_command = [
|
ffmpeg_command = [
|
||||||
"ffmpeg",
|
str(FFMPEG_BINARY),
|
||||||
"-i", str(target.file_path),
|
"-i", str(target.file_path),
|
||||||
"-af", select,
|
"-af", select,
|
||||||
"-b", str(bitrate_b),
|
"-b", str(bitrate_b),
|
||||||
|
@ -10,7 +10,8 @@ def all_paths():
|
|||||||
"Music dir": LOCATIONS.MUSIC_DIRECTORY,
|
"Music dir": LOCATIONS.MUSIC_DIRECTORY,
|
||||||
"Log file": shared.LOG_PATH,
|
"Log file": shared.LOG_PATH,
|
||||||
"Conf dir": LOCATIONS.CONFIG_DIRECTORY,
|
"Conf dir": LOCATIONS.CONFIG_DIRECTORY,
|
||||||
"Conf file": LOCATIONS.CONFIG_FILE
|
"Conf file": LOCATIONS.CONFIG_FILE,
|
||||||
|
"FFMPEG bin": LOCATIONS.FFMPEG_BIN,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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.attribute_list = [
|
||||||
self.MUSIC_DIRECTORY,
|
self.MUSIC_DIRECTORY,
|
||||||
self.TEMP_DIRECTORY,
|
self.TEMP_DIRECTORY,
|
||||||
self.LOG_PATH,
|
self.LOG_PATH,
|
||||||
self.NOT_A_GENRE_REGEX
|
self.NOT_A_GENRE_REGEX,
|
||||||
|
self.FFMPEG_BINARY
|
||||||
]
|
]
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
@ -2,6 +2,7 @@ from pathlib import Path
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
import tempfile
|
import tempfile
|
||||||
|
from pyffmpeg import FFmpeg
|
||||||
|
|
||||||
from .music_directory import get_music_directory
|
from .music_directory import get_music_directory
|
||||||
from .config_directory import get_config_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_DIRECTORY.mkdir(exist_ok=True, parents=True)
|
||||||
self.CONFIG_FILE = Path(self.CONFIG_DIRECTORY, f"{application_name}.conf")
|
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:
|
def get_log_file(self, file_name: os.PathLike) -> Path:
|
||||||
return Path(self.TEMP_DIRECTORY, file_name)
|
return Path(self.TEMP_DIRECTORY, file_name)
|
||||||
|
@ -120,3 +120,5 @@ to download:
|
|||||||
|
|
||||||
have fun :3
|
have fun :3
|
||||||
""".strip()
|
""".strip()
|
||||||
|
|
||||||
|
FFMPEG_BINARY: Path = PATHS_SECTION.FFMPEG_BINARY.object_from_value
|
||||||
|
Loading…
Reference in New Issue
Block a user