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

Add integrated player #20

Draft
wants to merge 10 commits into
base: main
Choose a base branch
from
Draft

Add integrated player #20

wants to merge 10 commits into from

Conversation

d-k-bo
Copy link
Owner

@d-k-bo d-k-bo commented Oct 21, 2024

Closes #17

It is currently not possible to manually set the video title used by libclapper, which results in not being able to use ClapperGtk.TitleLabel and an empty/unknown title provided by MPRIS. - solved by injecting a taginject GStreamer element as a video filter

It would be great if it was possible to change the video quality while playing.

@Rafostar
Copy link

Rafostar commented Oct 23, 2024

Also, in case of Flatpak if you use MPRIS, remember to add its own-name to manifest to it to be able to connect to system bus. Cheers.

@d-k-bo
Copy link
Owner Author

d-k-bo commented Oct 23, 2024

Also, in case of Flatpak if you use MPRIS, remember to add its own-name to manifest to it to be able to connect to system bus. Cheers.

This is in fact not needed when using org.mpris.MediaPlayer2.$FLATPAK_ID, which is permitted by default.

Thanks for taking a look at this project!

@Rafostar
Copy link

If you are using GStreamer 1.24 (especially with live streaming), enabling playbin3 might give you better performance and maybe even less issues, see: https://gitlab.com/news-flash/news_flash_gtk/-/blob/57d461a7dc5069c6f49651e7cd022ef82d987105/src/main.rs#L84

@d-k-bo
Copy link
Owner Author

d-k-bo commented Oct 31, 2024

If you are using GStreamer 1.24 (especially with live streaming), enabling playbin3 might give you better performance and maybe even less issues

Thanks, this helped a lot, especially with previous issues where audio/video weren't properly synchronized.

This way, any special characters in the video title are properly
escaped.
@Rafostar
Copy link

Rafostar commented Nov 1, 2024

If you are using GStreamer 1.24 (especially with live streaming), enabling playbin3 might give you better performance and maybe even less issues

Thanks, this helped a lot, especially with previous issues where audio/video weren't properly synchronized.

Thanks for feedback. Even more reason to switch to it by default eventually. Currently it isn't, mainly because it would make minimal required GStreamer version for Clapper be 1.24 which was too new during last release.

@Rafostar
Copy link

It would be great if it was possible to change the video quality while playing.

FWIW, this now partially implemented in clapper-git - doc here.

Although, we do not get list of available qualities (with their bitrates) from GStreamer yet. Dunno if Mediathek API provides that info. Temporary fallback would be parsing HLS manually to read them. Hopefully this will be implemented somewhere upstream (either in GStreamer or Clapper) in near future, but probably not for next Clapper release yet.

@d-k-bo
Copy link
Owner Author

d-k-bo commented Nov 22, 2024

Thanks for letting me know. Unfortunately, the MediathekViewWeb API doesn't provide a HLS URL for streaming with an adaptive bitrate. Instead, there are multiple URLs that point to the full video in different resolutions.

Example URLs

https://tvdownloaddw-a.akamaihd.net/Events/mp4/vdt_de/2024/tmtddeu241123_zfmilchstrasse_05ssw_AVC_1920x1080.mp4
https://tvdownloaddw-a.akamaihd.net/Events/mp4/vdt_de/2024/tmtddeu241123_zfmilchstrasse_05ssw_AVC_960x540.mp4
https://tvdownloaddw-a.akamaihd.net/Events/mp4/vdt_de/2024/tmtddeu241123_zfmilchstrasse_05ssw_AVC_512x288.mp4

I was thinking about replacing the currently playing media and continuing the video at the same playback position.

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

Successfully merging this pull request may close these issues.

Suggestion: libclapper in-app player
2 participants