FDH2 / UxPlay

AirPlay Unix mirroring server
GNU General Public License v3.0
1.35k stars 72 forks source link

no element "avdec_aac" #138

Closed attrobit closed 1 year ago

attrobit commented 1 year ago

Hey,

when i start the newest version of UxPlay i got the following error: ` (uxplay:86164): ERROR : 18:03:38.661: gst_parse_launch error (audio 1): no element "avdec_aac"

[1] 86164 trace trap (core dumped) ./uxplay ` I use Fedora 36 Workstation and installed all the libraries.

fduncanh commented 1 year ago

The README says

you have not installed gstreamer1-libav (or maybe redhat don't give you a complete version because of license issues, in that case get it from rpmfusion.org ; maybe because of the Fraunhofer patents: Fraunhofer FDK AAC) ADDED: actually, I'm not sure if Fraunhofer fdk code is in libav, which I think is a wrapper for calls to ffmpeg libraries, let us know what the issue you had is due to when you have checked gstreamer as below.

examine your gstreamer installation with

gst-inspect-1.0   libav

with gst-inspect-1.0 | grep aac I get

% gst-inspect-1.0 | grep aac    
audioparsers:  aacparse: AAC audio stream parser
faac:  faac: AAC audio encoder
libav:  avdec_aac: libav AAC (Advanced Audio Coding) decoder
libav:  avdec_aac_at: libav aac (AudioToolbox) decoder
libav:  avdec_aac_fixed: libav AAC (Advanced Audio Coding) decoder
libav:  avdec_aac_latm: libav AAC LATM (Advanced Audio Coding LATM syntax) decoder
libav:  avenc_aac: libav AAC (Advanced Audio Coding) encoder
libav:  avenc_aac_at: libav aac (AudioToolbox) encoder
libav:  avmux_adts: libav ADTS AAC (Advanced Audio Coding) muxer (not recommended, use aacparse instead)
typefindfunctions: audio/aac: aac, adts, adif, loas
attrobit commented 1 year ago

my output is:

gst-inspect-1.0 | grep aac
audioparsers:  aacparse: AAC audio stream parser
fdkaac:  fdkaacdec: FDK AAC audio decoder
fdkaac:  fdkaacenc: FDK AAC audio encoder
libav:  avmux_adts: libav ADTS AAC (Advanced Audio Coding) muxer (not recommended, use aacparse instead)
typefindfunctions: audio/aac: aac, adts, adif, loas

So i will install it from rpmfusion. Thanks for your help!

fduncanh commented 1 year ago

This is output from a (non-RedHat) linux install (what I posted earlier was from macOS)

gst-inspect-1.0 | grep aac
audioparsers:  aacparse: AAC audio stream parser
fdkaac:  fdkaacdec: FDK AAC audio decoder
fdkaac:  fdkaacenc: FDK AAC audio encoder
libav:  avdec_aac: libav AAC (Advanced Audio Coding) decoder
libav:  avdec_aac_fixed: libav AAC (Advanced Audio Coding) decoder
libav:  avdec_aac_latm: libav AAC LATM (Advanced Audio Coding LATM syntax) decoder
libav:  avenc_aac: libav AAC (Advanced Audio Coding) encoder
libav:  avmux_adts: libav ADTS AAC (Advanced Audio Coding) muxer (not recommended, use aacparse instead)
typefindfunctions: audio/aac: aac, adts, adif, loas

yes you are missing all the libav: avdec_aac (and avenc_aac) plugins. Uxplay tests for libav and exits gracefully if it is absent, but you got past that test with an incomplete libav. I can't halt uxplay if avdec_aac is missing since it is only used for software (cpu) decoding. There are other aac decoders used in hardware (gpu) decoding, so a missing avdec_aac is not necessarily fatal.