Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gtk4-media-gstreamer doesn't play any videos and still shows the placeholder. #18293

Open
2 of 7 tasks
gallickgunner opened this issue Aug 31, 2023 · 10 comments
Open
2 of 7 tasks
Labels

Comments

@gallickgunner
Copy link

gallickgunner commented Aug 31, 2023

I'm trying to develop an application with gtk4 and want to display a video. Found out that the gstreamer media backend was separated into a separate package gtk4-media-gstreamer. I installed it but the video still shows a placeholder image and doesn't play. Is this perhaps related to any missing packages?

  1. Install gtk4-media-gstreamer by doing pacman -Syu mingw-w64-ucrt-x86_64-gtk4-media-gstreamer
  2. Run gtk4-widget-factory
  3. The video in the demo doesn't play

Expected behavior

I should be seeing a video here like so

https://upload.wikimedia.org/wikipedia/commons/thumb/2/2d/Gtk4-widget-factory_demos.png/1200px-Gtk4-widget-factory_demos.png

Actual behavior

The video only shows a placeholder which should be happening when you only install gtk4 instead of gtk4-media-gstreamer
image

Verification

Windows Version

MINGW64_NT-10.0-19045

MINGW environments affected

  • MINGW64
  • MINGW32
  • UCRT64
  • CLANG64
  • CLANG32
  • CLANGARM64
@lazka
Copy link
Member

lazka commented Aug 31, 2023

Does pacman -S mingw-w64-ucrt-x86_64-gst-plugins-bad help? We have split that out too because of too many dependencies.

@gallickgunner
Copy link
Author

Does pacman -S mingw-w64-ucrt-x86_64-gst-plugins-bad help? We have split that out too because of too many dependencies.

According to msys2 site it conflicts with gstreamer but I tried installing it anyways. The video still doesn't play though

@lazka
Copy link
Member

lazka commented Aug 31, 2023

weird, it works here:
image

I'll have to try with a clean install

@gallickgunner
Copy link
Author

gallickgunner commented Aug 31, 2023

Hmm this really is weird. Do I have to have some other things installed outside of Msys2 for e.g installing gstreamer binaries for windows or some other things like that? I have installed the binaries though.

Also here is a dump of gst-inspect-1.0 listing all the plugins available.

plugins.txt

@lazka
Copy link
Member

lazka commented Aug 31, 2023

Hmm this really is weird. Do I have to have some other things installed outside of Msys2 for e.g installing gstreamer binaries for windows or some other things like that? I have installed the binaries though.

Note: Since MSYS2 by default clears PATH there shouldn't be any accidental conflicts like this.

I've tried now in a fresh MSYS2 install and it seems you need pacman -S mingw-w64-ucrt-x86_64-gst-plugins-good

@gallickgunner
Copy link
Author

Yes, now it works. So shouldn't this be listed as a dependency of gtk4-media-gstreamer ?

@lazka
Copy link
Member

lazka commented Aug 31, 2023

I think this is just because gtk4-widget-factory happens to include a .webm file which needs the matroska element for demuxing and vpx for decoding, which both live in "good". Not sure... it's not a requirement, but might fall under "good to have".

@gallickgunner
Copy link
Author

gallickgunner commented Aug 31, 2023

Hmm but I think that sort of information isn't known to a normal developer who just wants common video formats to work. Since we have already split up the gstreamer backend from base gtk4, we shouldn't further split up and just include all the necessary plugins as dependencies of the gtk4-media-gstreamer package so if someone wants to work with videos he wouldn't have to go install separate plugins (good, base, bad.. etc).

At the very least, it should be listed under optional dependencies

@lazka
Copy link
Member

lazka commented Aug 31, 2023

The base/good/bad/ugly/libva split is not really a split by how common they are but depends on the quality of the implementation and the license/patents.

h264, which is likely a very common codec is in "ugly" for example. AAC decoders are in "bad" and "libav", the MP4 demuxer is in "good".

No objection to adding things to "optional".

@gallickgunner
Copy link
Author

Alright thanks. I'm glad the problem got solved, now I can move on with the project :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants