afrase / plugin.video.funimation

An XBMC plugin for funimation.com
GNU General Public License v3.0
17 stars 6 forks source link

Adding support for video quality selection #7

Closed scj643 closed 8 years ago

scj643 commented 9 years ago

I noticed that when having any video from funimation open in an external program (in my case daum pot player) It always uses 480p video even when subscribed and logged in. It works in 1080p in kodi.

scj643 commented 9 years ago

I think the issue has something to do with this

screenshot 69 notice the yuv420p

afrase commented 9 years ago

I think the 1920x1080 is the actual resolution. Here is an HD video untitled1

Here is an SD video untitled

scj643 commented 9 years ago

Ok that explains it but in daum pot player it sticks with the 480p Screenshot inbound :D

scj643 commented 9 years ago

2015-06-18-210320-0

As you can see that's not 1080p sadly.

scj643 commented 9 years ago

Same episode too.

I was using an external player to see if I could get better playback as per issue #6 Since daum pot player has more rendering methods than kodi.

afrase commented 9 years ago

I think the player is supposed to pick which stream to use. The video URL's are to an M3U file with each URL being a different bandwidth. It may be that daum pot player doesn't understand that each file is a different bandwidth and just plays the first one. I've never used an external player so I have no experience with it.

afrase commented 9 years ago

Here is an example of one

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=750000
BLOJPN0001-480-750K.mp4.m3u8?8c6e1029722e198a6ae1cd86479d6bdeeec114decd5bc7b0ecc30eb7a6d5c156afdf7e6b27dca2441ef2949ba32e2c0a4efd9231c9c4454aa4e021cee9dbbc6878eb4397b03f549bb7598a07f1a8c98e4ccc51311aa360122088834a1c93fb6e78fd5cf31196050ac05e0e

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1500000
BLOJPN0001-480-1500K.mp4.m3u8?8c6e1029722e198a6ae1cd86479d6bdeeec114decd5bc7b0ecc30eb7a6d5c156afdf7e6b27dca2441ef2949ba32e2c0a4efd9231c9c4454aa4e021cee9dbbc6878eb4397b03f549bb7598a07f1a8c98e4ccc51311aa360122088834a1c93fb6e78fd5cf31196050ac05e0e

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2000000
BLOJPN0001-480-2000K.mp4.m3u8?8c6e1029722e198a6ae1cd86479d6bdeeec114decd5bc7b0ecc30eb7a6d5c156afdf7e6b27dca2441ef2949ba32e2c0a4efd9231c9c4454aa4e021cee9dbbc6878eb4397b03f549bb7598a07f1a8c98e4ccc51311aa360122088834a1c93fb6e78fd5cf31196050ac05e0e

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2500000
BLOJPN0001-480-2500K.mp4.m3u8?8c6e1029722e198a6ae1cd86479d6bdeeec114decd5bc7b0ecc30eb7a6d5c156afdf7e6b27dca2441ef2949ba32e2c0a4efd9231c9c4454aa4e021cee9dbbc6878eb4397b03f549bb7598a07f1a8c98e4ccc51311aa360122088834a1c93fb6e78fd5cf31196050ac05e0e

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=4000000
BLOJPN0001-480-4000K.mp4.m3u8?8c6e1029722e198a6ae1cd86479d6bdeeec114decd5bc7b0ecc30eb7a6d5c156afdf7e6b27dca2441ef2949ba32e2c0a4efd9231c9c4454aa4e021cee9dbbc6878eb4397b03f549bb7598a07f1a8c98e4ccc51311aa360122088834a1c93fb6e78fd5cf31196050ac05e0e
scj643 commented 9 years ago

Ive looked into that.how would I go about making it only use one of them. either manually editing the file or scripting it.

scj643 commented 9 years ago

I would think parsing the file before kodi can read it would be a good idea It would also allow quality selection possibly

afrase commented 9 years ago

If the URL's are consistent I could just skip the initial m3u file and request the file in the highest bandwidth. It looks like it's always (funimation_id)-480-(quality)K.mp4.m3u8

scj643 commented 9 years ago

That does seem like it is the case.

scj643 commented 9 years ago

Also daum does have support for hls I think it is just the fact that it can't handle the multiple video qualities. This would be pretty easy if we could process the urls and have an option to append the bandwidth options to it.. Although some check would have to be put iin to pick the highest quality available to your setting for older shows.

afrase commented 9 years ago

The feeds/ps/videos endpoint returns a quality string of something like "HD (1080)" but the problem is the URL's are of the bit rate and not the resolution. You could check every video URL before sending it to Kodi but that would slow the menus down.

scj643 commented 9 years ago

We could just aprox the video to match the bitrate. if the max quality is 480p it would have a max of 1500000 as the bitrate. Also this could be an extra option if it would slow down the menus with the ability to only show so many at a time.

scj643 commented 9 years ago

Or it could just for now strip the quality before the last value which would give the best quality.

afrase commented 9 years ago

Since it seems to only affect one external player that we know of I could add an option to for compatibility with 3rd party players. When that's enabled we will use the direct bitrate link. I also just noticed that the URL returned from the API has the supported bitrates for that video. here is an HD video http://wpc.8c48.edgecastcdn.net/038C48/SV/480/AKRENGM001/AKRENGM001-480-,750,1500,2000,2500,4000,K.mp4.m3u8

here is an SD video http://wpc.8c48.edgecastcdn.net/038C48/SV/480/AGRENG0026/AGRENG0026-480-,750,1500,K.mp4.m3u8

scj643 commented 9 years ago

Yes it would be only for external players that can't handle the different qualities of the streams. I would say it would be good to add support since some external players get better playback than the internal one on lower end hardware.

scj643 commented 9 years ago

So I think the best thing to do would to make a compatibility option that when used strips all the quality selections besides the highest before playing.

scj643 commented 9 years ago

Kodi uses the bandwidth setting to determine the quality of hls streams so internal quality changing isn't needed. Still an issue with external players though.

Neogrey commented 8 years ago

Can you please add a video quality selection ? (such as in crunchyroll plugin). Kodi streams with 1080p but this is too much for my slow internet.