Bug Reports

  • No off-topic posts
  • Don't report more than 1 issue at once
  • For isolated issues or customer support visit help.vrchat.com
Thanks for your bug report!
yt-dlp eats multivariant HLS playlists - proposed solution included
Open a multivariant playlist in avpro in-game - most playlists from https://hlsjs.video-dev.org/demo/ will work. https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s-fmp4/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8 for example. Notice you have no audio. What appears to be happening is yt-dlp is always picking the first applicable HLS stream, recursing until it finds something with actual video. As a result, it can result in selecting an m3u8 that is invalid. It is also part of what causes VRChat to be unable to play youtube videos at high quality, thus needing a custom yt-dlp fork. One solution I can suggest is having yt-dlp standard (or a fork still, but closer to standard) be used to construct multiple URLs - --get-url results in multiple lines returned in these cases, still abiding by filters, though -J is likely more ideal here as it will output all info at once, you'll just need to filter in your own logic rather than passing the filter into yt-dlp's command line. For actually playing back - and then constructing a temporary .m3u8 in the format of: #EXTM3U #EXT-X-VERSION:4 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="audio",AUTOSELECT=YES,URI="<full audio m3u8 url>" #EXT-X-STREAM-INF:BANDWIDTH=<video *max* bandwidth>,AUDIO="audio" <full video m3u8 url> This has been tested on windows and it plays back correctly. For example: #EXTM3U #EXT-X-VERSION:4 #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="audio",AUTOSELECT=YES,URI="https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s-fmp4/f08e80da-bf1d-4e3d-8899-f0f6155f6efa_audio_1_stereo_128000.m3u8" #EXT-X-STREAM-INF:BANDWIDTH=628000,AUDIO="audio" https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s-fmp4/f08e80da-bf1d-4e3d-8899-f0f6155f6efa_video_180_250000.m3u8 Using yt-dlp standard with JSON, the video bitrate can be extracted from the tbr field - it's in kbps, so just multiply by 1000 and make it an integer and HLS will take it. Using AVPro's MediaPlayer::OpenMediaFromBuffer() call can take this HLS playlist directly, which is useful for both security (time-of-use related stuff) and general performance. The proposed HLS playlists are the minimum required to get proper consistent playback. As per spec, BANDWIDTH needs to be set to the maximum bitrate, not the average, to allow buffers to be allocated large enough for smooth playback, and is a required tag to operate - but it'll survive if it's not perfectly accurate, tbr is a good enough value to use.
4
·

tracked

Station animation speeds vary when viewing through render texture
Under a specific set of circumstances, viewing a player animated by a station through a render texture capture playing at a low fixed framerate, the animation plays significantly lower, but only when the player is not in sight/is culled. Please see below linked unlisted video, notice that the animation on the render texture screen is running at the same speed as the player on the station, but when the player is out of view the animation speed is greatly decreased. Recording of bug: https://www.youtube.com/watch?v=1WiejFIMvOU VRChat world showcasing bug (1 local and 1 remote player required): https://vrchat.com/home/world/wrld_577cf1a1-351a-439a-be79-517df198a9a4/info I discovered this bug originally in NeoWorlds, which is the reason behind the weirdly convoluted setup. You can also see this bug at play in that world(Unless you are very close to remote players they animate slower than you). NeoWorlds: https://vrchat.com/home/launch?worldId=wrld_544e7879-d870-42a2-9c7a-99eb95a8e62f Things required to replicate this bug, all found in provided world: Remote Player being animated by station animation controller Camera viewing that player and outputting to a render texture The camera is being activated by code using Camera.Render(), at a lower fixed framerate (using SendCustomEventDelayedSeconds). This issue does not manifest if the camera is capturing every frame. This is a new bug; I've only encountered it recently (first discovered 2/18), despite not changing the elements at play since I've last seen this working as intended. Have not tested if this bug is also present on quest.
1
·

tracked

Load More