[CORE] Ffmpeg remove static variable

This commit is contained in:
Dark1291 2025-02-26 11:53:10 +01:00
parent 1032e90fcb
commit 19e0a390fa
3 changed files with 18 additions and 12 deletions

View File

@ -12,7 +12,7 @@ from rich.console import Console
# Internal utilities
from StreamingCommunity.Util._jsonConfig import config_manager
from StreamingCommunity.Util.os import os_manager, os_summary, suppress_output
from StreamingCommunity.Util.os import os_manager, suppress_output, get_ffmpeg_path
# Logic class
@ -34,7 +34,6 @@ FFMPEG_DEFAULT_PRESET = config_manager.get("M3U8_CONVERSION", "default_preset")
# Variable
USE_LARGE_BAR = not ("android" in sys.platform or "ios" in sys.platform)
FFMPEG_PATH = os_summary.ffmpeg_path
console = Console()
@ -48,7 +47,7 @@ def check_subtitle_encoders() -> Tuple[Optional[bool], Optional[bool]]:
"""
try:
result = subprocess.run(
[FFMPEG_PATH, '-encoders'],
[get_ffmpeg_path(), '-encoders'],
capture_output=True,
text=True,
check=True
@ -102,7 +101,7 @@ def join_video(video_path: str, out_path: str, codec: M3U8_Codec = None):
- out_path (str): The path to save the output file.
- codec (M3U8_Codec): The video codec to use. Defaults to 'copy'.
"""
ffmpeg_cmd = [FFMPEG_PATH]
ffmpeg_cmd = [get_ffmpeg_path()]
# Enabled the use of gpu
if USE_GPU:
@ -185,7 +184,7 @@ def join_audios(video_path: str, audio_tracks: List[Dict[str, str]], out_path: s
video_audio_same_duration = check_duration_v_a(video_path, audio_tracks[0].get('path'))
# Start command with locate ffmpeg
ffmpeg_cmd = [FFMPEG_PATH]
ffmpeg_cmd = [get_ffmpeg_path()]
# Enabled the use of gpu
if USE_GPU:
@ -278,7 +277,7 @@ def join_subtitle(video_path: str, subtitles_list: List[Dict[str, str]], out_pat
Each dictionary should contain the 'path' key with the path to the subtitle file and the 'name' key with the name of the subtitle.
- out_path (str): The path to save the output file.
"""
ffmpeg_cmd = [FFMPEG_PATH, "-i", video_path]
ffmpeg_cmd = [get_ffmpeg_path(), "-i", video_path]
# Add subtitle input files first
for subtitle in subtitles_list:

View File

@ -13,11 +13,10 @@ from rich.console import Console
# Internal utilities
from StreamingCommunity.Util.os import os_summary
from StreamingCommunity.Util.os import get_ffprobe_path
# Variable
FFPROB_PATH = os_summary.ffprobe_path
console = Console()
@ -32,7 +31,7 @@ def has_audio_stream(video_path: str) -> bool:
has_audio (bool): True if the input video has an audio stream, False otherwise.
"""
try:
ffprobe_cmd = [FFPROB_PATH, '-v', 'error', '-print_format', 'json', '-select_streams', 'a', '-show_streams', video_path]
ffprobe_cmd = [get_ffprobe_path(), '-v', 'error', '-print_format', 'json', '-select_streams', 'a', '-show_streams', video_path]
logging.info(f"FFmpeg command: {ffprobe_cmd}")
with subprocess.Popen(ffprobe_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) as proc:
@ -60,7 +59,7 @@ def get_video_duration(file_path: str) -> float:
"""
try:
ffprobe_cmd = [FFPROB_PATH, '-v', 'error', '-show_format', '-print_format', 'json', file_path]
ffprobe_cmd = [get_ffprobe_path(), '-v', 'error', '-show_format', '-print_format', 'json', file_path]
logging.info(f"FFmpeg command: {ffprobe_cmd}")
# Use a with statement to ensure the subprocess is cleaned up properly
@ -144,7 +143,7 @@ def get_ffprobe_info(file_path):
"""
try:
result = subprocess.run(
[FFPROB_PATH, '-v', 'error', '-show_format', '-show_streams', '-print_format', 'json', file_path],
[get_ffprobe_path(), '-v', 'error', '-show_format', '-show_streams', '-print_format', 'json', file_path],
stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True
)
output = result.stdout

View File

@ -506,4 +506,12 @@ def compute_sha1_hash(input_string: str) -> str:
hashed_string = hashlib.sha1(input_string.encode()).hexdigest()
# Return the hashed string
return hashed_string
return hashed_string
def get_ffmpeg_path():
"""Returns the path of FFmpeg."""
return os_summary.ffmpeg_path
def get_ffprobe_path():
"""Returns the path of FFprobe."""
return os_summary.ffprobe_path