pulsejet / memories

Fast, modern and advanced photo management suite. Runs as a Nextcloud app.
https://memories.gallery
GNU Affero General Public License v3.0
3.19k stars 86 forks source link

Video Playback Fails for Large Files in Memories App, Works in Files App #1304

Open TiFerr opened 1 month ago

TiFerr commented 1 month ago

Describe the bug

When attempting to play large video files (e.g., .mov) using the Memories app, the playback fails, while the same files play correctly in the Files app. Upon inspecting via Safari's web inspector, it was observed that the Memories app starts downloading the video but fails to complete the download. In contrast, the Files app downloads a portion of the video and waits for the user to press play before continuing to download and stream the file. The transcoding option is disabled as the video file is natively supported by iOS and if the size is small the file plays correctly.

Steps To Reproduce

  1. Record a large video file using iPhone
  2. Upload the video to Nextcloud
  3. Playback via Memories

Platform

- OS: iOS 18.0
- Browser: Safari
- Memories Version: 7.4.1
- Nextcloud Version: 30.0.0 (fpm-alpine)
- PHP Version: 8.2.24
- Web server: nginx/1.26.2

Screenshots

c53c938b-c5e4-432d-8608-b9fbdfed3815

pulsejet commented 1 month ago

How large?

TiFerr commented 1 month ago

I had a feeling this question would come... I was not providing figures because I changed so much cache sizes, buffer sizes, timeouts, keepalives (all in search for a solution for this not that this is the consequence). But, here you have my test results:

Test # File Size Duration WebApp Result Safari Result
Test 1 166MB 46s Pass Pass
Test 2 335MB 47s Fail Pass
Test 3 405MB 80s Fail Pass
Test 4 475MB 90s Fail Fail

Note: All videos come from the same original, only trimmed to different lengths. Observation: Test results are inconsistent (~90% variability), suggesting the issue may be caused by buffer or timeout configurations ( All files play fine thru the Files app ).

Is it possible to add an option to Memories so it uses the standard file serving and not stream thru the API?

jsalort commented 1 week ago

To add to the conversation, I see somewhat similar behavior with Safari on macOS instead of iOS.