-
-
Notifications
You must be signed in to change notification settings - Fork 77
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
go-vod: Hardware accelerated video playback stuttering extremely #1177
Comments
What kind of hardware is this? (both client and server) |
Thanks for the quick reply. |
I investigated a bit further. It might indeed be a client (flatpak?) problem, as it does not occur with:
The problem occurs only with Vivaldi, Chrome and Firefox on my desktop installed as flatpaks. (I only have one desktop Linux computer, so I can't try out if it is a hardware thing.) |
This is related to some browser weirdness but I haven't encountered this for a long time now.
|
E.g. 720p works.
Strange enough, videos aren't playing at all anymore in Memories when disabling HW acceleration. However, when I try to switch from external go-vod to internal go-vod, I get a permission error on the vaapi device, but then the videos play?!?
Should be H264..
Yes. While checking this out, I made an interesting (puzzling?) observation. The home video video collection contains mostly MP4 from my smartphone and MKVs in which I joined several from those MP4 without any resampling with MKVToolNix. Nextcloud files: And, as I said, everything is fine with mobile phones (and e.g. a Kodi client, which basically runs the same Ubuntu OS base as my laptop). I begin to think that this is some kind of strange codec/browser interaction specific to my laptop. If you also think that this is no Memories problem, feel free to close the bug. |
It's very likely that the client browser can't keep up with 4K streaming; I've observed this on multiple devices. Since we do live transcoding, decoding these streams is not particularly efficient and a lot of processing happens in
This right here is the indication that the client can't decode fast enough. You can try reducing the transcode quality from the admin panel, this generally makes the video easier to decode. |
The videos are stored rather high-quality MP4-encoded on the server and without go-vod in the middle they can be displayed without any problems on the same client - be it from a mounted WebDAV drive or even from within the NC files-view - with the same browser. As soon as the files are re-encoded with go-vod, they begin to stutter. |
That's expected -- transcoded videos will always be way less efficient than the original. The point of adaptive streaming is not increasing efficiency; it's to reduce the size when bandwidth is insufficient or an unsupported codec (e.g. HEVC) is used by the original. One straightforward workaround would be to use "Direct" quality; this streams the original video. Usually if that fails it will fall back to transcoding. |
Thanks for your hints. However, using "direct" transcoding doesn't change the situation, still choppy video.
|
"Direct" means "no transcoding" so not sure what's going on here |
I have the similar issue. It happens both on iphone (not so prominent, happens sometimes) and Desktop/server machine (very prominent, every 5-6 seconds there is a pause for 2-3 seconds, and then it resumes playback). Server: i9-13900K transcoding using NVENC/CUDA on 4080 Super // Windows 11 Ent 22631.3447 // Docker 4.30.0 Client 1: same machine from above ^ Chrome 124.0.6367.119 Network: Client1 is localhost, Client2 is connected trough Asus ET12 on Wifi 6, 1000/1000Mbps. Below is the short log clipping during the playback of which problem occurs on Client 1.
|
For now a global quality setting of 30 in the memories admin panel keeps my specific video using the 4k quality setting at around 70 Mbps. This makes no sense since at that point it would be better to serve the original video at 30 Mbps. But at least it's not stuttering anymore. |
For the same resolution and quality, the transcoded video will always be bigger than the original. This is not a bug (see #1177 (comment)). To be simple, if direct works for you, use just direct (or lower the quality or streaming resolution) Since the client decides what quality to play in the auto quality option, it might be possible to downgrade if there are stutters. This probably needs to be implemented in videojs though, since memories doesn't handle the streaming specifics. |
I don't find a sensible streaming setting with go-vod. UHD and sometimes even HD videos stutter, even when streaming in the local network. |
Describe the bug
4K videos played back with go-vod from within the memories app are stuttering to the point of being unwatchable. HD videos work, but they are not completely fluent, either.
Playing back the videos without hardware acceleration, from the Nextcloud files app or from a mounted WebDAV drive works fine (in the home network with no bandwith problem, i.e. probably no transcoding necessary, wondering why Memories/go-vod is transcoding at all).
I tried several MKV and MP4 videos.
To Reproduce
Click on a video from within the memories timeline and start the playback.
Platform:
Additional context
Setup:
/dev/dri/renderD128
)--env NEXTCLOUD_HOST="https://host:port/nextcloud/"
command line)Memories entries in config.php:
Nothing special in the go-vod container logs. The line "Invalid URL:/" occurs very often, however, even without any video playback.
The text was updated successfully, but these errors were encountered: