Video Playback Fails for Large Files in Memories App, Works in Files App
TiFerr opened this issue · 4 comments
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
- Record a large video file using iPhone
- Upload the video to Nextcloud
- 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
How large?
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:
- Video capture: iPhone 13pro
- Resolution: 4K 60fps HDR
- Codec: HEVC
- Container: .mov
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?
To add to the conversation, I see somewhat similar behavior with Safari on macOS instead of iOS.
check ffprobe with your file. my ios movies had
unsupported codec with id 0 for input stream 2
Unsupported codec with id 0 for input stream 3
Unsupported codec with id 0 for input stream 4
and had to be manually cleaned with
ffmpeg -i input.mov -map 0:v:0 -map 0:a:0 -c:v copy -c:a copy output_cleaned.mp4
That worked for a lower res video for me, but not the higher res one.