-
-
Notifications
You must be signed in to change notification settings - Fork 32
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
Can't play DASH on Android 7 and without DASH highest quality is 360P #559
Comments
@Alma101 maybe you can leave your device information here too so we can find a common thing between them? |
I think I may have found the issue... It seems YouTube is forcing AV1 now - so the MPD contains AV1 as only codec: <Representation id="299" codecs="avc1.64002a" width="1920" height="1080" startWithSAP="1"
maxPlayoutRate="1" bandwidth="6509775" frameRate="60">
<BaseURL>
https://{INVIDIOUS_INSTANCE}/videoplayback?expire=1719526376&ei=iI99ZtrzKKu46dsPgLOqsA8&ip={IP}&id=o-APptZmsF76T31409U_cMk3jyFTplUYQKr5i0KNIB80HK&itag=299&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&mh=bP&mm=31%2C29&mn=sn-5hne6ns6%2Csn-5hnekn7s&ms=au%2Crdu&mv=m&mvi=4&pl=20&initcwndbps=1513750&vprv=1&svpuc=1&mime=video%2Fmp4&rqh=1&gir=yes&clen=222717697&ratebypass=yes&dur=303.703&lmt=1719496361239824&mt=1719504308&fvip=3&keepalive=yes&c=ANDROID_TESTSUITE&txp=6309224&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Cgir%2Cclen%2Cratebypass%2Cdur%2Clmt&sig=AJfQdSswRQIhAO1ekkMvd-BDlB_8UFyENJXSd6vSt_HmpuoU3zMK7ZySAiBzToVGBmaISIGCxIIHKQx9XuLdTog5cMA-pa28eQVqtQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AHlkHjAwRQIhAMOK5hcEmoBGtXLSSe0X6aCyPhxh4eihazF3IuxLPXfuAiA3KAWDzlFLcmb7lV0MoQ1Nmp_0CvgiGeuzYVnSJU53mg%3D%3D&host=rr4---sn-5hne6ns6.googlevideo.com</BaseURL>
<SegmentBase indexRange="741-1432">
<Initialization range="0-740" />
</SegmentBase>
</Representation> Guess riverty_player only does hardware decoding so it fails to play @lamarios ? |
Good find. That's probably the issue. I believe most players only do hardware playback. |
Check the issue I made on Invidious side - I think that's the main cause of it - Youtube thinks my tablet is Android 12+ - while it isn't |
Alright. Will subscribe to this issue. See if there's anything that can be done on my side afterwards |
And now it's fully broken... Won't even play 360p anymore... Think I'm gonna dive into Invidious their code now... And change what they say doesn't solve it... |
Can fix it by turning off the redirect/proxy through Invidious option in Clipious though - still 360p sadly and Dash non-functional |
Just to confirm: Same issue here. No playback on Android TV and only 360p on my Pixel 8. |
@lagset - please give some device information so we can look for common denominators, for example Android version, Clipious version, invidious version, invidious host (with SSL?) etc Also, does my workaround work for you too? Disabling the "redirect through invidious" option? |
@ThaDaVos Invidious instance
Web-Frontend: Thumbnails work, Playback Works, Playback >720p using DASH works as well Pixel 8 Sony Android TV Regarding your workaround: I have never enabled the "redirect through invidious"-option in clipious. It has never worked for me and always gave a "i"-icon on video playback. Same with DASH which I never got to work in clipious but does work with the invidious frontend. I guess this has to do with my setup (custom ssl cert, etc.), there are a bunch of issues/discussions on here struggling with getting DASH running on locally hosted instances. |
Thanks for the info @lagset - sadly I think your issue is different from mine as I had DASH working with 1080 and up - it still works on my phone (android 13) but does not on my tablet (android 7) - I figured out my issue is encoding related or something. Yours seems to be about DASH itself and partially playback (maybe also encoding) One thing I noticed is that your Clipious is outdated, have you tried updating it? (Also, use Obtanium for installation and updates, makes it way easier) Also, try to get DASH working with a Let's Encrypt certificate instead of a custom CA, you can also try enabling the option in Clipious to accept untrusted certificates in server management (I needed that before to get it working at all) |
You're probably right. Thanks for the hint to obtanium, makes updating on Android TV way easier! However, update to current clipious doesn't change anything. No playback currently on Android TV version 9 with clipious 1.20.0. Offtopic: @ThaDaVos Do you host your instance locally as well? If so, how did you achieve DASH working with clipious, any hints welcome :) |
Let me correct that - I think it's the same issue - just noticed my Android 13 phone also only allows max 360p - but since DASH works on that one, I never noticed... Also a difference between my phone and tablet is that my tablet needs "TLS-certificate verification skip" (roughly translated as mine is in Dutch) turned on, else it does not work at all, probably because the certificate store is outdated. But coming back to the issue - DASH used to work on my tablet and suddenly stopped, and now both devices without DASH allow only max 360p - so I guess it has something to do with parsing inside Clipious - when I have time I'll try to create a DEBUG build which allows me to see the received video information etc to debug this better - as it is something which broke after a certain invidious update, something has to have changed there which causes this. Offtopic: @lagset - I host it locally and am using LetsEncrypt with DNS-ACME to get a wildcard certificate, this certificate is used for my invidious and allows me to use DASH - I also remember it took some configuring on Invidious side to get it working, below is my service definition for Invidious: services:
invidious:
image: ${INVIDIOUS_IMAGE}
container_name: invidious
restart: always
environment:
# Please read the following file for a comprehensive list of all available
# configuration options and their associated syntax:
# https://github.com/iv-org/invidious/blob/master/config/config.example.yml
INVIDIOUS_CONFIG: |
db:
dbname: ${POSTGRES_DB}
user: ${POSTGRES_USER}
password: ${POSTGRES_PASSWORD}
host: postgres
port: 5432
check_tables: true
port: ${INVIDIOUS_PORT}
external_port: 443
domain: ${INVIDIOUS_DOMAIN}
https_only: true
popular_enabled: false
captcha_enabled: false
# statistics_enabled: false
hmac_key: "${HMAC_KEY}"
admins: ${INVIDIOUS_ADMINS}
default_user_preferences:
default_home: Trending
player_style: youtube
quality: dash
quality_dash: best
local: true
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:${INVIDIOUS_PORT}/api/v1/comments/jNQXAC9IVRw || exit 1
interval: 30s
timeout: 5s
retries: 2
logging:
options:
max-size: "1G"
max-file: "4"
depends_on:
postgres:
condition: service_healthy
networks:
default:
home_proxy: |
@lamarios - maybe you can help with getting debug information inside clipious? Like show the received MPD manifest, api calls inside the app in some kind of log screen at the view of the video player - that way it can be easier to diagnose instead of going through the log |
Good luck with debugging. Looking forward to any news on this! Offtopic: Thanks for the tips and your config sample. Will have another try, however let's encrypt is currently not possible for me, since I do not expose my server to the public. |
Offtopic: I don't expose it either - that's why I mentioned used acme-DNS - this way I only have to set an acme record: |
@lamarios - I got DASH working again by using ZeroSSL certificate instead of Let's Encrypt as they changed their CHAIN earlier this year - still doesn't fix the max resolution is 360P on non-dash though |
For the 360p i believe that might be an invidious issue. If i call the api on a video: https://inv.nadeko.net/api/v1/videos/SurUidVDQf4 if you search for "formatStream" you will see that only 360p is available |
Yeah I saw that earlier, but now it's the problem of finding what causes it |
Create a bug report for it, again... |
It seems there's not solution for it - except getting DASH working: |
it should be working now since the verson 1.21.0 make use of user install certificates |
Describe the bug
A clear and concise description of what the bug is.
As mentioned here: #514
I am still experiencing issues with Clipious after the Invidious fix for iv-org/invidious#4498
Checking their fix, it should not have broken anything as it's an API call fix - but for some reason, Clipious is heavily broken on my Nvidia Shield K1 tablet with Androind 7 - strange thing is, it is only broken on that single device, my phone with Android 13 is working fine without issues.
As the mentioned issues seems to go unnoticed - I am creating this issue to track it as Clipious is the only well working client for Androidn in my opinion.
Currently I am going through the code myself, checking where it may be getting stuck - currently checked the logs on both devices and they both seem to have the exact same log for the exact same video - but the Android 7 device just won't start playing the video.
If i set it to audio only I can hear it play at least - but the VideoPlayer doesn't wanna work.
Based on the code it seems https://github.com/lamarios/river_player is used - maybe the issue is in there instead as maybe the dash manifest or something has changed because of the changed param in the youtube API call - but I still think this has to be fixed on Clipious or RiverPlayer's side instead of Invidious.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
The video to play
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: