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

1080p and other video support #34

Open
Discookie opened this issue Jul 25, 2018 · 19 comments

Comments

@Discookie
Copy link

commented Jul 25, 2018

Users should be able to freely choose between all available video resolutions, and not just those that have bundled audio.

Example video: https://invidio.us/watch?v=x47Ins_rkgk

VideoJS provides ways to add extra tracks, and all formats are served via adaptive_fmts in /get_video_info.

Maybe utilize &bitrate= and &resolution= options (for audio and video, respectively) if &quality= is not present?

This was referenced Jul 31, 2018
@dimqua

This comment has been minimized.

Copy link
Contributor

commented Aug 7, 2018

Also note that 480p video resolution is not supported currently too, as well as 720p @ webm.

@omarroth

This comment has been minimized.

Copy link
Owner

commented Aug 7, 2018

Just thought I'd update folks on this. VideoJS provides ways to manage tracks, but not to play them unless they're already contained within the video file, which unfortunately they are not in this case. VideoJS leaves it up to other plugins, like videojs-contrib-hls to manage playback of multiple streams. Currently I'm working on getting the video streams into a format that one of those plugins should support.

@omarroth

This comment has been minimized.

Copy link
Owner

commented Aug 16, 2018

Hopefully the last update before this is added: Invidious can generate working DASH manifests for most videos, which means all that needs to be implemented is support on the client-side. For that the only missing piece appears to be videojs/http-streaming#162 so that VideoJS can play properly play manifests and integrate them into speed control, quality selector, etc.

@SairesArt

This comment has been minimized.

Copy link

commented Aug 30, 2018

@omarroth
Holy smokes! Many thanks for all the glorious work.

@omarroth

This comment has been minimized.

Copy link
Owner

commented Sep 25, 2018

Added experimental 1080p with b3ca392. You can enable it if you're logged in by going to your preferences and selecting dash as your preferred video quality. Currently it's not integrated into other parts of the player, and you cannot currently select preferred quality. It essentially emulates the auto setting on YouTube. Default speed also won't be respected for dash.

Currently the main interest with pushing out DASH support is to find any errors in playback namely buffer speed and bandwidth usage. Please feel free to open an issue if you encounter any errors or if dash support is missing from any videos. Thank you everyone so much for your patience!

@beerisgood

This comment has been minimized.

Copy link

commented Jan 13, 2019

How is the status?
Also it would be better if this option is possible without a account

@omarroth

This comment has been minimized.

Copy link
Owner

commented Jan 13, 2019

Hi! This is waiting on videojs/http-streaming#455. I haven't mentioned this much since I don't want to put any pressure on the great folks working on that project. Once that's been implemented expect progress on this issue to start moving much more quickly.

The reason it requires a way to "opt-in" is because it includes a much larger library in order to play 1080p. I'm waiting on http-streaming since it's already used for livestreams and is roughly 1/5th the size of the library I'm currently using to implement this feature.

@omarroth

This comment has been minimized.

Copy link
Owner

commented Jan 24, 2019

@beerisgood

Just pushed a fix that allows you to specify quality=dash the same as you would with any other video preference. So for example https://invidio.us/watch?v=1Ph_ORewpE0&quality=dash will allow you to watch 1080p without creating an account.

@SairesArt

This comment has been minimized.

Copy link

commented Jan 24, 2019

@beerisgood

Just pushed a fix that allows you to specify quality=dash the same as you would with any other video preference. So for example https://invidio.us/watch?v=1Ph_ORewpE0&quality=dash will allow you to watch 1080p without creating an account.

Suuuper nice! Really awesome to see this project evolving.

Dash playback is broken for me though on both FF and Edge. Only sound, no video.

@omarroth

This comment has been minimized.

Copy link
Owner

commented Jan 24, 2019

Other folks have been encountering that as well. It appears that YouTube is trying out new codecs that aren't supported by default in all browsers. You might try enabling media.av1.enabled in about:config for FF, Chrome has a similar option and I assume Edge does as well.

See here for some more info.

@beerisgood

This comment has been minimized.

Copy link

commented Jan 25, 2019

@beerisgood

Just pushed a fix that allows you to specify quality=dash the same as you would with any other video preference. So for example https://invidio.us/watch?v=1Ph_ORewpE0&quality=dash will allow you to watch 1080p without creating an account.

Works great. Thanks!

@omarroth

This comment has been minimized.

Copy link
Owner

commented Apr 28, 2019

Added source selector with 075adb4 so it should now be possible to select quality for 1080p streams and higher with dash enabled.

@beerisgood

This comment has been minimized.

Copy link

commented Apr 29, 2019

Added source selector with 075adb4 so it should now be possible to select quality for 1080p streams and higher with dash enabled.

I test with that video: https://invidio.us/watch?v=Bey4XXJAqS8&quality=dash
Invidio go to 1080p, while youtube to 2160p (4K): https://www.youtube.com/watch?v=Bey4XXJAqS8

@Discookie

This comment has been minimized.

Copy link
Author

commented Apr 30, 2019

Thank you! It works really well for me.

Although I've found a couple of bugs with it:

Also, the video in #333 now fails to play altogether, as there's no falling back to another source.

@SairesArt

This comment has been minimized.

Copy link

commented May 6, 2019

I'm truly amazed how this project develops! Since dash support got introduced, not even a connection to google is needed anymore, according to umatrix. How does that even work? I presume it just redirects somehow to googlevideo.com through invidio.us?

Invidious even supports 60fps through DASH, but you can't explicitly select it, it gets auto selected with 720 and 1080. I swear I saw it selecting 30 instead of 60 from time to time.

I can't pin down why (tested different browsers and connections), but sometimes the quality selection is pretty wonky, acting as a Soft hint for Auto and not a hard constraint quality selection.
The Video sometimes auto plays at sub 720p. When you make the selection to 1080p it goes potato mode. Seemingly when it buffered enough of 1080p the video stops playing whilst audio continues. Dragging the video slider to the beginning then properly starts playing the 1080p60 stream. But at other times it acts as a hard constraint, pausing the video until 1080p60 can be played.

@TemporaryUsername12481

This comment has been minimized.

Copy link

commented May 6, 2019

@SairesArt the video is proxied through invidious, so you don't have to connect to Google.

This was referenced May 23, 2019
@omarroth omarroth referenced this issue Jun 15, 2019
@Antoine-Derouin

This comment has been minimized.

Copy link

commented Jul 1, 2019

Would it be possible to set the "dash" to 1080p by default and not "auto"?

Do you plan to add support for 2160p (4K) and 1440p (2K) video?

Thank you. 😊

@Perflyst

This comment has been minimized.

Copy link
Contributor

commented Jul 1, 2019

@theScrabi

This comment has been minimized.

Copy link

commented Sep 29, 2019

In NewPipe we display a combination of dash and nondash videos. Could this be something considerable as well?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
9 participants
You can’t perform that action at this time.