diff --git a/music_assistant/server/helpers/audio.py b/music_assistant/server/helpers/audio.py index 80310604..0a72bcfc 100644 --- a/music_assistant/server/helpers/audio.py +++ b/music_assistant/server/helpers/audio.py @@ -74,7 +74,7 @@ async def crossfade_pcm_parts( await outfile.write(fade_out_part) args = [ # generic args - "ffmpeg", + "@ffmpeg@", "-hide_banner", "-loglevel", "quiet", @@ -135,7 +135,7 @@ async def strip_silence( reverse: bool = False, ) -> bytes: """Strip silence from begin or end of pcm audio using ffmpeg.""" - args = ["ffmpeg", "-hide_banner", "-loglevel", "quiet"] + args = ["@ffmpeg@", "-hide_banner", "-loglevel", "quiet"] args += [ "-acodec", pcm_format.content_type.name.lower(), @@ -812,7 +812,7 @@ async def get_file_stream( async def check_audio_support() -> tuple[bool, bool, str]: """Check if ffmpeg is present (with/without libsoxr support).""" # check for FFmpeg presence - returncode, output = await check_output("ffmpeg", "-version") + returncode, output = await check_output("@ffmpeg@", "-version") ffmpeg_present = returncode == 0 and "FFmpeg" in output.decode() # use globals as in-memory cache @@ -866,7 +866,7 @@ async def get_silence( return # use ffmpeg for all other encodings args = [ - "ffmpeg", + "@ffmpeg@", "-hide_banner", "-loglevel", "quiet", diff --git a/music_assistant/server/helpers/ffmpeg.py b/music_assistant/server/helpers/ffmpeg.py index 0aaa9dcf..88cd9cdb 100644 --- a/music_assistant/server/helpers/ffmpeg.py +++ b/music_assistant/server/helpers/ffmpeg.py @@ -200,7 +200,7 @@ def get_ffmpeg_args( # generic args generic_args = [ - "ffmpeg", + "@ffmpeg@", "-hide_banner", "-loglevel", loglevel, diff --git a/music_assistant/server/helpers/tags.py b/music_assistant/server/helpers/tags.py index c60ea526..162c4ab7 100644 --- a/music_assistant/server/helpers/tags.py +++ b/music_assistant/server/helpers/tags.py @@ -401,7 +401,7 @@ async def parse_tags(input_file: str, file_size: int | None = None) -> AudioTags Input_file may be a (local) filename or URL accessible by ffmpeg. """ args = ( - "ffprobe", + "@ffprobe@", "-hide_banner", "-loglevel", "fatal", @@ -462,7 +462,7 @@ async def get_embedded_image(input_file: str) -> bytes | None: Input_file may be a (local) filename or URL accessible by ffmpeg. """ args = ( - "ffmpeg", + "@ffmpeg@", "-hide_banner", "-loglevel", "error",