Videos Won't Show on Chrome Linux - Audio Only

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • Nextcloud Hub 10 (31.0.1)
  • Operating system and version (e.g., Ubuntu 24.04):
    • Ubuntu 24.04.2 LTS
  • Web server and version (e.g, Apache 2.4.25):
    • Server version: Apache/2.4.63 (Unix) Server built: Feb 14 2025 9:15:30
  • Reverse proxy and version _(e.g. nginx 1.27.2)
    • caddy v2.10.0
  • PHP version (e.g, 8.3):
    • PHP 8.3.19
  • Is this the first time you’ve seen this error? (Yes / No):
    • no
  • When did this problem seem to first start?
    • probably when I installed nextcloud the first time a month or so ago
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • Nextcloud AIO v10.12.0
    • using docker aio and it says my containers are up-to-date
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • no

Note: imaginary is not running. Notify Push is running.

Summary of the issue you are facing:

.mov video files (taken using iPhone 16) won’t play in Files App Nor Photos App in Chrome on Ubuntu – but I hear the audio! I just can’t see the video.

Works: Windows Chrome
Works: Ubuntu Firefox - 137.0.2
Doesn’t work: Ubuntu Chrome browser - Version 135.0.7049.52 (Official Build) (64-bit)
Doesn’t work: Ubuntu Brave browser

Steps to replicate it (hint: details matter!):

  1. Upload videos from iPhone 16 using Nextcloud app auto-upload feature
  2. On desktop Chrome browser, on Ubuntu, navigate to video (either Files app or Photos app – both exhibit the issue)
  3. Try to play video: video controls will appear momentarily, but then the video controls will disappear and the video will start playing – no video is shown, but I can hear audio from the video. The video file name shows. Background is dimmed (still in video view mode). But no video is seen. Video playback controls are also missing. There are no JS errors in the developer console.

Expected: video will show
Actual: video does not show

Log entries

No log entries.

Web Browser

If the problem is related to the Web interface, open your browser inspector Console and Network tabs while refreshing (reloading) and reproducing the problem. Provide any relevant output/errors here that appear.

on page load:

style-N1aAjoYj.chunk.mjs:2 InvalidStateError: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
    at qB (NotificationsApp-Cq0-VetL.chunk.mjs:35:21749)
    at s.mounted (NotificationsApp-Cq0-VetL.chunk.mjs:35:65606)
    at lt (style-N1aAjoYj.chunk.mjs:2:23489)
    at tt (style-N1aAjoYj.chunk.mjs:2:31208)
    at Object.insert (style-N1aAjoYj.chunk.mjs:2:34641)
    at Ht (style-N1aAjoYj.chunk.mjs:2:55281)
    at M.__patch__ (style-N1aAjoYj.chunk.mjs:2:56635)
    at Gi.t._update (style-N1aAjoYj.chunk.mjs:2:28791)
    at M.r (style-N1aAjoYj.chunk.mjs:2:29561)
    at t.get (style-N1aAjoYj.chunk.mjs:2:25766)

but, when i reproduce the error, there are no JS errors, and the network tab shows only succeeded requests

Web server / Reverse Proxy

The output of your Apache/nginx/system log in /var/log/____:

$ sudo docker logs nextcloud-aio-apache
Waiting for Nextcloud to start...
Waiting for Nextcloud to start...
Connection to nextcloud-aio-nextcloud (172.22.0.5) 9000 port [tcp/*] succeeded!
[Sun Apr 20 18:25:57.214170 2025] [mpm_event:notice] [pid 83:tid 83] AH00489: Apache/2.4.63 (Unix) configured -- resuming normal operations
[Sun Apr 20 18:25:57.214220 2025] [core:notice] [pid 83:tid 83] AH00094: Command line: '/usr/local/apache2/bin/httpd -D FOREGROUND'
{"level":"info","ts":1745173557.2178557,"msg":"using config from file","file":"/tmp/Caddyfile"}
{"level":"info","ts":1745173557.219237,"msg":"adapted config to JSON","adapter":"caddyfile"}

Configuration

Nextcloud

The output of occ config:list system or similar is best, but, if not possible, the contents of your config.php file from /path/to/nextcloud is fine (make sure to remove any identifiable information!):

occ config:list system output:

{
    "system": {
        "one-click-instance": true,
        "one-click-instance.user-limit": 100,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "apps_paths": [
            {
                "path": "\/var\/www\/html\/apps",
                "url": "\/apps",
                "writable": false
            },
            {
                "path": "\/var\/www\/html\/custom_apps",
                "url": "\/custom_apps",
                "writable": true
            }
        ],
        "check_data_directory_permissions": false,
        "memcache.distributed": "\\OC\\Memcache\\Redis",
        "memcache.locking": "\\OC\\Memcache\\Redis",
        "redis": {
            "host": "***REMOVED SENSITIVE VALUE***",
            "password": "***REMOVED SENSITIVE VALUE***",
            "port": 6379
        },
        "overwritehost": "cloud.redacted.org",
        "overwriteprotocol": "https",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "cloud.redacted.org"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "31.0.1.2",
        "overwrite.cli.url": "https:\/\/cloud.redacted.org\/",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "maintenance": false,
        "updatedirectory": "\/nc-updater",
        "loglevel": 2,
        "app_install_overwrite": [
            "nextcloud-aio"
        ],
        "log_type": "file",
        "logfile": "\/var\/www\/html\/data\/nextcloud.log",
        "log_rotate_size": 10485760,
        "log.condition": {
            "apps": [
                "admin_audit"
            ]
        },
        "preview_max_x": 2048,
        "preview_max_y": 2048,
        "jpeg_quality": 60,
        "enabledPreviewProviders": [
            "OC\\Preview\\MarkDown",
            "OC\\Preview\\MP3",
            "OC\\Preview\\TXT",
            "OC\\Preview\\OpenDocument",
            "OC\\Preview\\Movie",
            "OC\\Preview\\Krita",
            "OC\\Preview\\ImaginaryPDF",
            "OC\\Preview\\HEIC",
            "OC\\Preview\\TIFF",
            "OC\\Preview\\Image"
        ],
        "enable_previews": true,
        "upgrade.disable-web": true,
        "mail_smtpmode": "smtp",
        "trashbin_retention_obligation": "auto, 30",
        "versions_retention_obligation": "auto, 30",
        "activity_expire_days": 30,
        "simpleSignUpLink.shown": false,
        "share_folder": "\/Shared",
        "one-click-instance.link": "https:\/\/nextcloud.com\/all-in-one\/",
        "upgrade.cli-upgrade-link": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/2726",
        "maintenance_window_start": 100,
        "allow_local_remote_servers": true,
        "davstorage.request_timeout": 3600,
        "documentation_url.server_logs": "https:\/\/github.com\/nextcloud\/all-in-one\/discussions\/5425",
        "htaccess.RewriteBase": "\/",
        "dbpersistent": false,
        "auth.bruteforce.protection.enabled": true,
        "ratelimit.protection.enabled": true,
        "files_external_allow_create_new_local": true,
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_key": "***REMOVED SENSITIVE VALUE***",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "forbidden_filename_basenames": [
            "con",
            "prn",
            "aux",
            "nul",
            "com0",
            "com1",
            "com2",
            "com3",
            "com4",
            "com5",
            "com6",
            "com7",
            "com8",
            "com9",
            "com\u00b9",
            "com\u00b2",
            "com\u00b3",
            "lpt0",
            "lpt1",
            "lpt2",
            "lpt3",
            "lpt4",
            "lpt5",
            "lpt6",
            "lpt7",
            "lpt8",
            "lpt9",
            "lpt\u00b9",
            "lpt\u00b2",
            "lpt\u00b3"
        ],
        "forbidden_filename_characters": [
            "<",
            ">",
            ":",
            "\"",
            "|",
            "?",
            "*",
            "\\",
            "\/"
        ],
        "forbidden_filename_extensions": [
            " ",
            ".",
            ".filepart",
            ".part"
        ],
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "587",
        "mail_smtpauth": true,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "memories.db.triggers.fcu": true,
        "memories.exiftool": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/exiftool-amd64-musl",
        "memories.vod.path": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/go-vod-amd64",
        "memories.vod.ffmpeg": "\/usr\/bin\/ffmpeg",
        "memories.vod.ffprobe": "\/usr\/bin\/ffprobe",
        "memories.gis_type": 2,
        "default_phone_region": "US",
        "memories.vod.disable": false,
        "memories.vod.vaapi": true,
        "DOMAIN": "cloud.redacted.org"
    }
}

Apps

The output of occ app:list (if possible).

Enabled:
  - activity: 4.0.0
  - admin_audit: 1.21.0
  - bruteforcesettings: 4.0.0
  - calendar: 5.1.3
  - circles: 31.0.0
  - cloud_federation_api: 1.14.0
  - comments: 1.21.0
  - contacts: 7.0.4
  - contactsinteraction: 1.12.0
  - dashboard: 7.11.0
  - dav: 1.33.0
  - deck: 1.15.0
  - federatedfilesharing: 1.21.0
  - federation: 1.21.0
  - files: 2.3.1
  - files_downloadlimit: 4.0.0
  - files_external: 1.23.0
  - files_pdfviewer: 4.0.0
  - files_reminders: 1.4.0
  - files_sharing: 1.23.1
  - files_trashbin: 1.21.0
  - files_versions: 1.24.0
  - firstrunwizard: 4.0.0
  - logreader: 4.0.0
  - lookup_server_connector: 1.19.0
  - memories: 7.5.2
  - nextcloud-aio: 0.7.0
  - nextcloud_announcements: 3.0.0
  - notes: 4.11.0
  - notifications: 4.0.0
  - notify_push: 1.0.0
  - oauth2: 1.19.1
  - password_policy: 3.0.0
  - photos: 4.0.0-dev.1
  - previewgenerator: 5.8.0
  - privacy: 3.0.0
  - profile: 1.0.0
  - provisioning_api: 1.21.0
  - recognize: 9.0.0
  - recommendations: 4.0.0
  - related_resources: 2.0.0
  - serverinfo: 3.0.0
  - settings: 1.14.0
  - sharebymail: 1.21.0
  - support: 3.0.0
  - survey_client: 3.0.0
  - systemtags: 1.21.1
  - tasks: 0.16.1
  - text: 5.0.0
  - theming: 2.6.1
  - twofactor_backupcodes: 1.20.0
  - twofactor_totp: 13.0.0-dev.0
  - user_status: 1.11.0
  - viewer: 4.0.0
  - weather_status: 1.11.0
  - webhook_listeners: 1.2.0
  - whiteboard: 1.0.5
  - workflowengine: 2.13.0
Disabled:
  - app_api: 5.0.2 (installed 5.0.2)
  - encryption: 2.19.0
  - suspicious_login: 9.0.1
  - twofactor_nextcloud_notification: 5.0.0
  - user_ldap: 1.22.0

Which video codec are you using?

The latest version of MediaInfo for macOS gives this info on one of my iPhone 16 videos:

MPEG-4 (QuickTime): 27.9 MiB, 25 s 532 ms

1 Video stream: HEVC
2 Audio streams: AAC LC / apac
6 Other streams: mebx / mebx / mebx / mebx / mebx / mebx

Recorded date: 2025-04-23T10:41:37-0600
Encoded date: 2025-04-23 16:41:37 UTC
Tagged date: 2025-04-23 16:42:03 UTC
Writing library: Apple QuickTime
Writing operating system: Apple iOS 18.4.1

Video
8 557 kb/s, 1920*1080 (16:9), at 30.000 FPS, HEVC (Main 10@L4@Main), HLG
Core Media Video

Audio
128 kb/s, 48.0 kHz, 2 channels, AAC LC
Core Media Audio

Audio
392 kb/s, 48.0 kHz, 4 channels, apac
Core Media Audio

maybe your linux is missing the H.265 / HEVC codec

Well, it does work in Firefox on Ubuntu. And if I download it, then I can view it using either VLC or Ubuntu’s Videos application.