Environment
- Bluecherry Server: 3.1.14
- Deployment: Docker Compose
- Database: Separate
bc-mysqlcontainer - Host OS: Linux (ext4)
- Storage: Dedicated 8TB Skyhawk AI drive
- Bind mount:
/storage/bluecherry/recordings:/var/lib/bluecherry/recordings
Storage Verification
- Disk mounted via UUID in
fstab - Verified inside container that recordings are written to:
/var/lib/bluecherry/recordings/YYYY/MM/DD/... .mp4and.jpgfiles are created correctly- File sizes are non-zero and increasing
- Hex header confirms valid MP4 (
ftyppresent) - Files accessible inside container
- Permissions fully opened (tested
chmod 777) to eliminate filesystem issues - Ownership aligned to container UID/GID
Issue
Playback and download both fail with:
500 Internal Server Error
file’s first stream is not a video
What Has Been Verified
- Recordings exist and are valid MP4 containers
ffmpeg/ffprobeinstalled inside containernginxandphp-fpmare running- No errors written to:
/var/log/nginx/error.log/var/log/bluecherry.log- php-fpm logs
- Timezone verified correct
- Container restarted cleanly
The 500 appears to originate from the /media/stream-mp4 endpoint.
Observations
- Storage configuration is correct
- Files are valid and readable
- Permissions are not the issue
- Logs remain empty during failure
Is there additional debug logging that can be enabled for the media pipeline in 3.1.14?
Are there known issues with the stream-mp4 endpoint under Docker deployments?
Any guidance would be appreciated.