mirror of
https://github.com/Arrowar/StreamingCommunity.git
synced 2025-06-07 12:05:35 +00:00
[CORE] Ffmpeg remove static variable
This commit is contained in:
parent
1032e90fcb
commit
19e0a390fa
@ -12,7 +12,7 @@ from rich.console import Console
|
|||||||
|
|
||||||
# Internal utilities
|
# Internal utilities
|
||||||
from StreamingCommunity.Util._jsonConfig import config_manager
|
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
|
# Logic class
|
||||||
@ -34,7 +34,6 @@ FFMPEG_DEFAULT_PRESET = config_manager.get("M3U8_CONVERSION", "default_preset")
|
|||||||
|
|
||||||
# Variable
|
# Variable
|
||||||
USE_LARGE_BAR = not ("android" in sys.platform or "ios" in sys.platform)
|
USE_LARGE_BAR = not ("android" in sys.platform or "ios" in sys.platform)
|
||||||
FFMPEG_PATH = os_summary.ffmpeg_path
|
|
||||||
console = Console()
|
console = Console()
|
||||||
|
|
||||||
|
|
||||||
@ -48,7 +47,7 @@ def check_subtitle_encoders() -> Tuple[Optional[bool], Optional[bool]]:
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
[FFMPEG_PATH, '-encoders'],
|
[get_ffmpeg_path(), '-encoders'],
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
text=True,
|
text=True,
|
||||||
check=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.
|
- out_path (str): The path to save the output file.
|
||||||
- codec (M3U8_Codec): The video codec to use. Defaults to 'copy'.
|
- 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
|
# Enabled the use of gpu
|
||||||
if USE_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'))
|
video_audio_same_duration = check_duration_v_a(video_path, audio_tracks[0].get('path'))
|
||||||
|
|
||||||
# Start command with locate ffmpeg
|
# Start command with locate ffmpeg
|
||||||
ffmpeg_cmd = [FFMPEG_PATH]
|
ffmpeg_cmd = [get_ffmpeg_path()]
|
||||||
|
|
||||||
# Enabled the use of gpu
|
# Enabled the use of gpu
|
||||||
if USE_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.
|
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.
|
- 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
|
# Add subtitle input files first
|
||||||
for subtitle in subtitles_list:
|
for subtitle in subtitles_list:
|
||||||
|
@ -13,11 +13,10 @@ from rich.console import Console
|
|||||||
|
|
||||||
|
|
||||||
# Internal utilities
|
# Internal utilities
|
||||||
from StreamingCommunity.Util.os import os_summary
|
from StreamingCommunity.Util.os import get_ffprobe_path
|
||||||
|
|
||||||
|
|
||||||
# Variable
|
# Variable
|
||||||
FFPROB_PATH = os_summary.ffprobe_path
|
|
||||||
console = Console()
|
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.
|
has_audio (bool): True if the input video has an audio stream, False otherwise.
|
||||||
"""
|
"""
|
||||||
try:
|
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}")
|
logging.info(f"FFmpeg command: {ffprobe_cmd}")
|
||||||
|
|
||||||
with subprocess.Popen(ffprobe_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) as proc:
|
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:
|
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}")
|
logging.info(f"FFmpeg command: {ffprobe_cmd}")
|
||||||
|
|
||||||
# Use a with statement to ensure the subprocess is cleaned up properly
|
# Use a with statement to ensure the subprocess is cleaned up properly
|
||||||
@ -144,7 +143,7 @@ def get_ffprobe_info(file_path):
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
result = subprocess.run(
|
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
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=True
|
||||||
)
|
)
|
||||||
output = result.stdout
|
output = result.stdout
|
||||||
|
@ -507,3 +507,11 @@ def compute_sha1_hash(input_string: str) -> str:
|
|||||||
|
|
||||||
# Return the hashed string
|
# 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
|
Loading…
x
Reference in New Issue
Block a user