MSE support

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
damamm

Re: MSE support

Unread post by damamm » 2014-09-05, 03:04

Out of curiosity: is this something we can expect for v25?

New Tobin Paradigm

Re: MSE support

Unread post by New Tobin Paradigm » 2014-09-05, 04:44

MSE? I doubt it not until it is complete.. MozCo Bug 778617 has a whole stack of bugs that are only half finished as of current mozilla trunk. This will likely be evaluated for implementation in Pale Moon once it is done. Even then it may not be accepted but nothing can happen until it is completed.

Though MSE will not be implemented anytime soon (if at all) we will have pure VP9 and OPUS decoding in v25!

User avatar
__NM64__
Lunatic
Lunatic
Posts: 366
Joined: 2013-10-17, 05:29
Location: Northeast Ohio

Re: MSE support

Unread post by __NM64__ » 2014-09-06, 04:16

A few things relating to YouTube I would like to point out that hasn't been mentioned.


First, it's important to note that flash player is compatible with DASH. However, flash player has not had any new codecs added to it since AVC/h.264 was added back in 2007.


MSE DASH-based videos are actually a different format (not codec!) on YouTube compared to the plain non-DASH HTML5 videos, even for the same resolution (they have different bitrates, filesizes, and fmt value). You can see this with any DASH-compatible YouTube downloader such as Complete YouTube Saver or the like.

So what has happened is that the newer DASH formats, specifically those for AVC/h.264, pretty much replaced all the pre-existing formats. All the VP8 formats except fmt43 (360p) were discontinued and removed, and the old fmt18 (AVC 360p) and fmt22 (AVC 720p) formats were left in place along with the old FLV and 3GP formats. Pretty much all the non-DASH formats that are still present are used for mobile, embeded, and fall-back compatibility.*


Now the thing is, VP9 was introduced on YouTube after they started using DASH as standard, so it's no surprise that it's only available as a DASH format. And of course, VP9 isn't supported in flash player either.

Lastly, much like VP9, the few 60fps demonstration test videos were only introduced 2 months ago, so again it's no surprise that it only applies to the DASH formats. However, unlike VP9, the 60fps versions are not new formats but rather apply to the pre-existing DASH formats for anything that's 720p and larger.



*
fmt17 & fmt35, 3GP - used on "dumb" phone devices
fmt18, 480x360 AVC/MP4 - created for the first iPhone, the very first AVC format YouTube introduced
fmt22, 1280x720 AVC/MP4 - likely used on smart TVs and blu-ray players, the second AVC format YouTube introduced
fmt5, 400x240 FLV/h.263 - likely for legacy fallback reasons, the same codec as what YouTube used when the site was created
fmt43, 640x360 VP8/WebM - used on lower-end devices that lack h.264 acceleration (like the Wii), was one of if not the first HTML5 format

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35649
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: MSE support

Unread post by Moonchild » 2014-09-06, 06:58

The thing is, you don't need MSE for DASH support (in fact, Firefox 22 and 23 (I think) supported non-MSE DASH video but it was removed again when they decided to go the MSE route), and it can be ported easily to e.g. Flash as well through an adaptive actionscript (See dash.as) and you can use standard javascript to also achieve the same thing. So, this is very much a political/server-operator decision to require MSE for streaming. Any browser supporting MSE also supports DASH since it's part of the implementation, but it doesn't automatically mean that any browser without MSE does not support it.

In addition, DASH is really not important unless you are on limited bandwidth and you still want to squeeze a higher bitrate video out of your connection. It is very similar to what RealMedia did with their adaptive bitrate streaming, and I personally always hated the fact that video would unnecessarily degrade - I'd rather have a few frames dropped than things becoming blocky and low-res.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

User avatar
__NM64__
Lunatic
Lunatic
Posts: 366
Joined: 2013-10-17, 05:29
Location: Northeast Ohio

Re: MSE support

Unread post by __NM64__ » 2014-09-06, 07:24

Moonchild wrote:In addition, DASH is really not important unless you are on limited bandwidth and you still want to squeeze a higher bitrate video out of your connection. It is very similar to what RealMedia did with their adaptive bitrate streaming, and I personally always hated the fact that video would unnecessarily degrade - I'd rather have a few frames dropped than things becoming blocky and low-res.
Actually on really low bandwidth DASH is typically worse. I should know, I have a whopping 3Mbps down. The main issue is that it tries loading multiple video streams, but the user's connection just can't handle the bandwidth. However, YouTube has mitigated the issue recently by making their DASH formats have lesser bitrates...though unless you're using VP9 the video quality definitely suffers compared to non-DASH.

One thing that's really annoying about DASH though is that it only takes into consideration one's bandwidth, not one's playback performance. I'm on a measly AMD E-350 and, due to the lack of SSSE3 optimizations in web browsers, 720p VP9 on YouTube is a slideshow (however I can play it just fine in 64bit MPC-HC).

User avatar
__NM64__
Lunatic
Lunatic
Posts: 366
Joined: 2013-10-17, 05:29
Location: Northeast Ohio

Re: MSE support

Unread post by __NM64__ » 2014-09-16, 06:38

Apologies for the double-post, but I've now come accross two YouTube videos that have broken seeking (other than via arrow keys) in HTML5 unless you have MSE enabled (the former I discovered on my own, while the latter was pointed out to me by my sister). These videos also do not autoplay in HTML5 unless MSE is enabled.

https://www.youtube.com/watch?v=ouSgFj771f8
https://www.youtube.com/watch?v=aEfkZ509Fdw

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35649
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: MSE support

Unread post by Moonchild » 2014-09-16, 09:47

Yeah, seeking is broken because they use their own player controls that obviously don't work. Nothing to do with MSE or DASH or the video format.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

Kocayine

Re: MSE support

Unread post by Kocayine » 2014-10-26, 16:11

May I ask why exactly MSE needs to be absolutely polished before it can even be implemented (in the same way it's implemented in official Firefox)? Flash Player is absolutely terrible, I've never had so many troubles playing YouTube videos as I do now (seems like it got worse in Pale Moon when I switched from Firefox) and HTML5 is more stable but not exactly a great experience considering there's only 360p and 720p.

dark_moon

Re: MSE support

Unread post by dark_moon » 2014-10-26, 16:43

Yes its bad that youtube videos need MSE for play html5 videos in 1080p.

Kocayine

Re: MSE support

Unread post by Kocayine » 2014-10-26, 19:24

dark_moon wrote:Yes its bad that youtube videos need MSE for play html5 videos in 1080p.
What's your point? That's the way it is.

Supernova

Re: MSE support

Unread post by Supernova » 2014-10-26, 19:41

His point is that's the choice of google ; not a technical necessity on their side.

Kocayine

Re: MSE support

Unread post by Kocayine » 2014-10-26, 20:06

Supernova wrote:His point is that's the choice of google ; not a technical necessity on their side.
So what, we protest the choices of Google in our small time browser by refusing to adjust to their requirements, leaving us with broken-ass flash player and a 360p html5 player?

Stubbornness, woohoo!

Supernova

Re: MSE support

Unread post by Supernova » 2014-10-26, 20:16

That's not why MSE isn't in PM atm...

User avatar
Sajadi
Board Warrior
Board Warrior
Posts: 1227
Joined: 2013-04-19, 00:46

Re: MSE support

Unread post by Sajadi » 2014-10-26, 20:17

that's the reason why a second browser is never a bad idea. Often you meet stuff which can only be solved if you use some other solution. That's the sad reality :)

Pale Moon stands for no discrimination no matter which kind of user you are and no matter which believe you carry with you and freedom and not being a Google slave, while Mozilla is all Google in the meantime. Freedom always carries with it some inconveniences, but luckily there are secondary solutions available which frees people from the force to use dictatorship products like Google Chrome or Mozilla Firefox ;)

Anyway as that thread has already given an explanation why MSE is not implemented is that it is just a big mess and not stable, but i am sure once all things are sorted out it will be considered to be implemented perhaps by Moonchild or not, depending on good reasons.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35649
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: MSE support

Unread post by Moonchild » 2014-10-27, 12:19

Kocayine wrote:May I ask why exactly MSE needs to be absolutely polished before it can even be implemented (in the same way it's implemented in official Firefox)?
It's not complete. It's a partial implementation in Firefox. It's far from "polished" and far from "complete".
Firefox has implemented the bare minimum to "make the YouTube player work". The relevant bugzilla bug is even labeled as such. That's just creating bias, even aside from the fact that MSE is undesirable for Pale Moon. If a browser implements specific bare minimum work to cater to one specific site (which isn't guaranteed to work on any other site) then that is a strong bias for that particular site by the browser developers.

The reason you do not get 480p or 1080p HTML5 on YouTube is because Google refuses to serve these resolutions to HTML5 players unless you have MSE support in your browser. That is not a limitation of "not having MSE", it's a limitation imposed by Google since it refuses to give you those streams unless you have MSE.

Pale Moon is perfectly capable of playing WebM VP8 and VP9 videos in full HD. It's also perfectly capable of playing H.264 videos in full HD. Google simply doesn't let you watch those streams.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

Kocayine

Re: MSE support

Unread post by Kocayine » 2014-10-30, 13:59

Moonchild wrote:
Kocayine wrote:May I ask why exactly MSE needs to be absolutely polished before it can even be implemented (in the same way it's implemented in official Firefox)?
It's not complete. It's a partial implementation in Firefox. It's far from "polished" and far from "complete".
Firefox has implemented the bare minimum to "make the YouTube player work". The relevant bugzilla bug is even labeled as such. That's just creating bias, even aside from the fact that MSE is undesirable for Pale Moon. If a browser implements specific bare minimum work to cater to one specific site (which isn't guaranteed to work on any other site) then that is a strong bias for that particular site by the browser developers.

The reason you do not get 480p or 1080p HTML5 on YouTube is because Google refuses to serve these resolutions to HTML5 players unless you have MSE support in your browser. That is not a limitation of "not having MSE", it's a limitation imposed by Google since it refuses to give you those streams unless you have MSE.

Pale Moon is perfectly capable of playing WebM VP8 and VP9 videos in full HD. It's also perfectly capable of playing H.264 videos in full HD. Google simply doesn't let you watch those streams.
How about tricking YouTube into thinking that our browser is ready to use their services (which they supposedly are) :angel:

I'd just use flash but in pale moon that doesn't seem to be the greatest experience either.
Last edited by Kocayine on 2014-10-30, 14:05, edited 1 time in total.

New Tobin Paradigm

Re: MSE support

Unread post by New Tobin Paradigm » 2014-10-30, 14:00

Impossible. Without the technology it won't work.

it is like trying to trick someone you are riding a bike when you are obviously walking.

Kocayine

Re: MSE support

Unread post by Kocayine » 2014-10-30, 21:33

How so?

New Tobin Paradigm

Re: MSE support

Unread post by New Tobin Paradigm » 2014-10-30, 22:11

Kocayine wrote:How so?
Because the technology is NOT present. The technology is required to decode these streams because that is how Google has sabotaged them.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35649
Joined: 2011-08-28, 17:27
Location: Motala, SE

Re: MSE support

Unread post by Moonchild » 2014-10-30, 23:35

Maybe an easier and relevant analogy is trying to play an MKV file on a PS3. Even though the actual data in the file could potentially be decoded and played on the console (since they would be MP4 video/audio, for example), it can't play it because the console doesn't know how to handle the MKV container the streams are contained in. You cannot "trick" the console into understanding the container format.

Similarly, MSE video is sent to your browser through specific Javascript APIs (MSE is a method that allows Javascript to download media data, manipulate it, and then feed it to the video decoder/renderer). If the APIs aren't present, then the Javascript code can't feed the media data to the video renderer (because that requires the MSE API). Since Google only serves the relevant videos in "MSE container" formats (through Javascript and not as regular bitstreamed data directly), the media data can't be played since the browser doesn't have the tools to pass the data from the way it's served to the actual playback routines. i.e.: you could possibly "trick" the site into making it think you support MSE, but you would still not be able to play it in the browser unless MSE is actually supported.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite