imgbrd-grabber icon indicating copy to clipboard operation
imgbrd-grabber copied to clipboard

Videos do not play

Open SlamminCO opened this issue 2 years ago • 6 comments

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

  1. Search for webm
  2. Open any result that is an MP4 or webm
  3. 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

ezgif-3-bb17cf6d57

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.

SlamminCO avatar Jun 07 '22 00:06 SlamminCO

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\""

SlamminCO avatar Jun 07 '22 00:06 SlamminCO

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

adem4ik avatar Jun 07 '22 02:06 adem4ik

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)

Bionus avatar Jun 08 '22 14:06 Bionus

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: image

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

adem4ik avatar Jun 09 '22 01:06 adem4ik

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.

rabidcopy avatar Sep 14 '22 19:09 rabidcopy

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.

nabulator avatar Jan 06 '24 16:01 nabulator