Closed patkepa closed 1 year ago
see issue #138 for solution. (RedHat doesnt provide some parts of libav (such as avdec) get it from rpmfusion.org)
or look at this section of README: Non-Debian-based Linux or *BSD
Red Hat, Fedora, CentOS (now continued as Rocky Linux or Alma Linux): (sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel (some from the "PowerTools" add-on repository) (+libX11-devel for fullscreen X11, and "ZOOMFIX" if needed). The required GStreamer packages are: gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-libav gstreamer1-plugins-bad-free (+ gstreamer1-vaapi for intel graphics); you may need to get some of them (in particular gstreamer1-libav) from rpmfusion.org (which provides packages including plugins that RedHat does not ship for license reasons).
I didnt read your issue far enough to see you think that you are using the rpmfusion version of gstreamer1--libav (NOT gstreamer-plugin-libav)
The message "'no element avdec_aac`" definitely shows (I believe) that the rpmfusion.org gstreamer1-livav rpm is not properly installed. Maybe you used an incorrect name for the rpm, and it didn't install?
what does "rpm -qi gstreamer1-libav
" report? On RedHat 9 (Rocky 9) I get
Name : gstreamer1-libav
Version : 1.18.4
Release : 1.el9
Architecture: x86_64
Install Date: Tue 29 Nov 2022 11:24:31 PM EST
Group : Unspecified
Size : 905748
License : LGPLv2+
Signature : RSA/SHA256, Tue 05 Jul 2022 05:24:02 AM EDT, Key ID 7403ea33296458f3
Source RPM : gstreamer1-libav-1.18.4-1.el9.src.rpm
Build Date : Sun 03 Jul 2022 07:06:58 AM EDT
Build Host : buildvm-07.virt.rpmfusion.net
Packager : RPM Fusion
Vendor : RPM Fusion
URL : https://gstreamer.freedesktop.org/
Summary : GStreamer 1.0 libav-based plug-ins
Description :
GStreamer is a streaming media framework, based on graphs of filters which
operate on media data. Applications using this library can do anything
from real-time sound processing to playing videos, and just about anything
else media-related. Its plugin-based architecture means that new data
types or processing capabilities can be added simply by installing new
plugins.
This package provides libav-based GStreamer plug-ins.
what does "gst-inspect 1.0 libav | grep aac
" show?
gst-inspect-1.0 libav | grep aac
avdec_aac: libav AAC (Advanced Audio Coding) decoder
avdec_aac_fixed: libav AAC (Advanced Audio Coding) decoder
avdec_aac_latm: libav AAC LATM (Advanced Audio Coding LATM syntax) decoder
avenc_aac: libav AAC (Advanced Audio Coding) encoder
avmux_adts: libav ADTS AAC (Advanced Audio Coding) muxer (not recommended, use aacparse instead)
I don't know why you get a coredump with -a option. This is happening during the setup phase
what message does "uxplay -a -d" give? (EDIT by itself, this wont help much, the coredump happens after gstreamer video is initialized.)
Please try it as follows:
sudo systemctl stop avahi-daemon
sudo systemctl disable avahi-daemon
uxplay -a -d
then reenable avahi-daemon
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
This will show if the coredump happens after the RAOP server (AirPlay server) is started, or is related to registering with BonJour (this was changed recently in uxplay v 1.60) Stopping and disabling avahi-daemon will trigger an error message before the coredump happens if it is later.
I have installed Fedora 37 in virtualbox. I reproduced your issue with libav. The RedHat distributed version of gstreamer's libav plugin is the issue.
I have not yet managed to get a RPMFusion version of gstreamer1-plugin-libav installed.
Compared to RedHat 9 clones, Fedora 37 seems a complete mess as far as this is concerned.
Everything works in Fedora 36.
It seems the crucial rpm from RPMFusion is not gstreamer1-plugins-libav but may be ffmpeg-libs which it uses
@patkepa
On Redhat 9, the rpm package is simply called "gstreamer1-libav" (no "plugin" in the name) and is supplied by RPMFusion. Fedora 36 and 37 are different: it is called gstreamer-plugin-libav, and is supplied by RedHat. Instead, the package ffmpeg-libs is supplied by RPMFusion (gstreamer1-libav is just a front end for this ffmpeg code).
Tried again in Fedora 37 (on VirtualBox.) now it works.
The key is to install and activate RPMFusion before starting to build uxplay.
If not, sudo yum install (or sudo dnf install) ffmpeg-libs should fix things for you after RPMFusion is added.
This is what "rpm -qi ffmpeg-libs
" should show
Name : ffmpeg-libs
Version : 5.1.2
Release : 3.fc37
Architecture: x86_64
Install Date: Fri 23 Dec 2022 01:41:14 AM EST
Group : Unspecified
Size : 21501475
License : GPLv3+
Signature : RSA/SHA256, Wed 19 Oct 2022 09:09:39 AM EDT, Key ID e06f8ecdd651ff2e
Source RPM : ffmpeg-5.1.2-3.fc37.src.rpm
Build Date : Mon 17 Oct 2022 08:13:55 AM EDT
Build Host : buildvm-01.online.rpmfusion.net
Packager : RPM Fusion <===============================important
Vendor : RPM Fusion
URL : http://ffmpeg.org/
Summary : Libraries for ffmpeg
Description :
FFmpeg is a complete and free Internet live audio and video
broadcasting solution for Linux/Unix. It also includes a digital
VCR. It can encode in real time in many formats including MPEG1 audio
and video, MPEG4, h263, ac3, asf, avi, real, mjpeg, and flash.
This package contains the libraries for ffmpeg
The instructions in the UxPlay README have been updated for this Fedora issue.
_[In recent Fedora, the libav plugin package is renamed to "gstreamer1-plugin-libav". which now needs the RPM Fusion package ffmpeg-libs for the patent-encumbered code which RedHat does not provide: check with "rpm -qi ffmpeg-libs" that it lists "Packager" as RPM Fusion; if this is not installed, uxplay will fail to start, with error: no element "avdec_aac" ]_.
I encountered an issue while trying to launch build of UxPlay on Fedora 37:
I already went through all gstreamer dependencies I could install, the one that contains "avdec_acc" should be package gstreamer1-plugin-libav from RPMFusion, which I have installed.
Since it seemed like an issue with audio I tried to disable it using
uxplay -a
, but in resulted in different error message: