imgbrd-grabber
imgbrd-grabber copied to clipboard
Videos do not play
Bug description
Opening videos will show the tags and the video controls, but the video itself, as well as audio, will not play. I have attached a GIF displaying this issue below.
Steps to reproduce
- Search for webm
- Open any result that is an MP4 or webm
- See that it doesn't display the video or play audio
Expected behavior
Video and audio (if there is any) to display inside the preview window that opens when you click on a result.
Context
Log: main.log
Settings: settings.txt I had to change the extension to .txt to upload this, it is still .ini on my pc
Screenshots
System information
- OS: Fedora Linux 35 (Workstation Edition) 64 bit
- Grabber version: 7.9.0 (x86)
Additional Context
I am using the AppImage release of Grabber, I have not tested any other release type.
I have noticed that when trying to open a video result, and then checking the log, it spams the following warning:
[20:17:24.625][Warning] [Qt][default] Error: "" : "no element \"identity\""
[20:17:24.627][Warning] [Qt][default] Error: "" : "no element \"identity\""
[20:17:28.974][Warning] [Qt][default] Error: "" : "no element \"identity\""
Same on Manjaro Linux with AppImage from https://github.com/Bionus/imgbrd-grabber/releases/download/v7.9.0/Grabber_v7.9.0-x86_64.AppImage . Log: main.log
But it works fine in 7.9.0 version installed from AUR: https://aur.archlinux.org/packages/imgbrd-grabber
Strange, are gstreamer plugins not bundled with the AppImage, but are getting installed when installed from AUR? (or maybe already on the machine?) 🤔 Is the same issue there on previous releases? (I don't have a Linux on hand right now)
I've tested every single available appimage from v7.8.1 to v7.4.0 and none of them seems to be able to play videos. The only difference is that 7.4.2 showed the following message after downloading video:
I don't like one thing that Grabber shows x86 in its About dialog, while my system is x64. I'll try to google in that direction.
P.S. Launching appimage from console gives the following, so it is gstreamer problem for sure:
user@machine Linux 5.15.41-1-MANJARO x86_64 21.2.6 Qonos
~ >>> cd ~/downloads
~/downloads >>> appimageLauncher Grabber_v7.9.0-x86_64.AppImage
zsh: correct 'appimageLauncher' to 'AppImageLauncher' [nyae]? y
(Grabber_v7.9.0-x86_64.AppImage:122311): GLib-GObject-CRITICAL **: 05:27:13.229: g_object_set: assertion 'G_IS_OBJECT (object)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.229: gst_object_ref: assertion 'object != NULL' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.229: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.229: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.229: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.229: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.229: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.229: gst_object_unref: assertion 'object != NULL' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GLib-GObject-CRITICAL **: 05:27:13.230: g_object_set: assertion 'G_IS_OBJECT (object)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.230: gst_object_ref: assertion 'object != NULL' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.230: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.230: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.230: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.230: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.230: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.230: gst_object_unref: assertion 'object != NULL' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GLib-GObject-CRITICAL **: 05:27:13.663: g_object_set: assertion 'G_IS_OBJECT (object)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.663: gst_object_ref: assertion 'object != NULL' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.663: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.663: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.663: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.663: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.663: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.663: gst_object_unref: assertion 'object != NULL' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GLib-GObject-CRITICAL **: 05:27:13.664: g_object_set: assertion 'G_IS_OBJECT (object)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.664: gst_object_ref: assertion 'object != NULL' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.664: gst_bin_add_many: assertion 'GST_IS_ELEMENT (element_1)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.664: gst_element_link_pads_full: assertion 'GST_IS_ELEMENT (src)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.664: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.664: gst_ghost_pad_new: assertion 'GST_IS_PAD (target)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.664: gst_element_add_pad: assertion 'GST_IS_PAD (pad)' failed
(Grabber_v7.9.0-x86_64.AppImage:122311): GStreamer-CRITICAL **: 05:27:13.664: gst_object_unref: assertion 'object != NULL' failed
This is a bit late but the problem lies with the user not having all the gst-plugins installed and the the AppImage not containing them either, nor them being a required dependency when installing off AUR with yay/paru for example. Qt-gstreamer should be added to the depends of the PKGBUILD and those libs should be included in the AppImage as well. Imgbrd-grabber-bin on AUR also lacks this dependency. Ubuntu probably doesn't have this issue since I think qtmultimedia5-dev is enough to pull all the required gst-plugins while qt5-multimedia alone in Arch only provides gst-plugins optionally.
gst-plugins-base
libpulse
openal
qt5-base
gst-libav (optional) - ffmpeg plugin
gst-plugins-bad (optional) - camera support, additional plugins
gst-plugins-good (optional) - camera support, additional plugins
gst-plugins-ugly (optional) - additional plugins
qt5-declarative (optional) - QML bindings
git (make)
gst-plugins-bad (make)
qt5-declarative (make)
To get video playback to work in Fedora with the AppImage I would imagine gstreamer1-plugins-good-qt and/or ffmpeg-devel would be sufficient.
I had the same issue building from source on Debian 12 (no app image) using the ./build.sh
that is provided. Following @rabidcopy advice above, I discovered that I needed to manually install at least one of the gst-plugins-good
to decode mp4 properly.
[Warning] [Qt][default] Warning: "No decoder available for type 'video/quicktime, variant=(string)iso'."
The above warning was the only warning I got which was confusing to me because I did not think the two codecs had much in common with each other! Turns out they have a common lineage.