prefer aac for sample clips
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Mon, 15 Apr 2024 23:52:56 +0000 (01:52 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Mon, 15 Apr 2024 23:52:56 +0000 (01:52 +0200)
music_assistant/server/controllers/webserver.py
music_assistant/server/helpers/audio.py

index c2fef84612fd53a61c5750e6b59a84bcb285f707..7921fb97812a1d8dea791e2947302c9b5c749c01 100644 (file)
@@ -204,7 +204,7 @@ class WebserverController(CoreController):
         """Serve short preview sample."""
         provider_instance_id_or_domain = request.query["provider"]
         item_id = urllib.parse.unquote(request.query["item_id"])
-        resp = web.StreamResponse(status=200, reason="OK", headers={"Content-Type": "audio/mp3"})
+        resp = web.StreamResponse(status=200, reason="OK", headers={"Content-Type": "audio/aac"})
         await resp.prepare(request)
         async for chunk in get_preview_stream(self.mass, provider_instance_id_or_domain, item_id):
             await resp.write(chunk)
index 2d4c0db8f0c5516ea1bbce84067102638e4f27ba..107357117733fddcb9f8103153493b498de1ee27 100644 (file)
@@ -833,7 +833,7 @@ async def get_preview_stream(
         if streamdetails.stream_type == StreamType.CUSTOM
         else streamdetails.path,
         input_format=streamdetails.audio_format,
-        output_format=AudioFormat(content_type=ContentType.MP3),
+        output_format=AudioFormat(content_type=ContentType.AAC),
         extra_input_args=["-to", "30"],
     ):
         yield chunk
@@ -1013,6 +1013,8 @@ def get_ffmpeg_args(
         output_args = ["-f", "null", "-"]
     elif output_format.content_type == ContentType.UNKNOWN:
         raise RuntimeError("Invalid output format specified")
+    elif output_format.content_type == ContentType.AAC:
+        output_args = ["-f", "adts", output_path]
     else:
         if output_format.content_type.is_pcm():
             output_args += ["-acodec", output_format.content_type.name.lower()]