Replies: 3 comments
-
Thanks for the question. AirPlay 2 operation does require FFmpeg, specifically for AAC decoding. You can build a slightly lighter version of FFmpeg, but it still comes in around 50 megabytes. This is a configuration I experimented with for building a special-purpose FFmpeg:
It would be nice to further reduce the size, but this is as far as I got. |
Beta Was this translation helpful? Give feedback.
-
Thank you for your detailed answer. Since the device only has 16MB flash in total for system and apps, ffmpeg is not an option. It seems to be designed as “can do anything”, which is good, but not appropriate for embedded devices. I have no expertise at all in this area, but it would be theoretically conceivable to use other AAC decoders, e.g. FAAD2 or the Android decoder. There could be licensing issues ... and whether the decoders end up being smaller is of course also unknown. And, maybe pyatv is not compatible with shairport-sync for other reasons. |
Beta Was this translation helpful? Give feedback.
-
Thanks. FFmpeg is very well supported and offers other facilities such as transcoding. Additionally, the decoders you mention would all require a lot of work and, very crucially, ongoing maintenance. |
Beta Was this translation helpful? Give feedback.
-
I'm using shairport-sync on a low-memory embedded device. The A31 module is used in many consumer audio players and has been reverse engineered to work with Linux/OSS software only.
Basic streaming e.g. from an iPhone works fine. Playing music from Home Assistant (which seems to use pyatv internally) does not work. I upgraded OpenWrt's shairport-sync 3.3.9 to 4.3.5 (classic), but this seems not to help (quick test only).
I think pyatv might need AirPlay 2 support to work correctly. But AirPlay 2 support needs ffmpeg's libav-libs, which are way to big to fit on the device (there is only ~5 MB flash space left).
Would it be theorectically (and practically) possible to enable AirPlay 2 in a "minimal/limited audio" mode without ffmpeg-libs?
Beta Was this translation helpful? Give feedback.
All reactions