nextcloud / nextcloud/viewer

[Bug]: Cannot open video files shot on phone camera on web

Open
#2,371 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage bug feature: player
Dominant language
JavaScript
Stars
119
Forks
72
Avg merge
18h 42m
Merged PRs (30d)
24

Description

⚠️ This issue respects the following points: ⚠️
Bug description

It seems like after the new major update from nextcloud 28 > 29, I'm not able to open video files anymore on the website. Both with Files and Memories. Specifically, only video files that come from the camera app on my Google Pixel 7. Every other video in my library works fine.

The following is the ffprobe output of the video file

ffprobe version 6.1.1 Copyright (c) 2007-2023 the FFmpeg developers
  built with gcc 14 (GCC)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' --extra-cflags=' -I/usr/include/rav1e' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --enable-chromaprint --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-lcms2 --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libbs2b --enable-libcodec2 --enable-libcdio --enable-libdrm --enable-libjack --enable-libjxl --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libharfbuzz --enable-libilbc --enable-libmp3lame --enable-libmysofa --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-libplacebo --enable-librsvg --enable-librav1e --enable-librubberband --enable-libsmbclient --enable-version3 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-vulkan --enable-libshaderc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-avfilter --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-lto --enable-libvpl --enable-runtime-cpudetect
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'PXL_20240617_165648097.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 131072
    compatible_brands: isomiso2mp41
    creation_time   : 2024-06-17T16:57:04.000000Z
    location        : +40.9109+14.3445/
    location-eng    : +40.9109+14.3445/
    com.android.manufacturer: Google
    com.android.model: Pixel 7
    com.android.capture.fps: 60.000000
  Duration: 00:00:04.32, start: 0.000000, bitrate: 29197 kb/s
  Stream #0:0[0x1](eng): Data: none (mett / 0x7474656D), 89 kb/s (default)
    Metadata:
      creation_time   : 2024-06-17T16:57:04.000000Z
      handler_name    : MetaHandle
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s (default)
    Metadata:
      creation_time   : 2024-06-17T16:57:04.000000Z
      handler_name    : SoundHandle
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x3](eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 1920x1080, 28900 kb/s, SAR 1:1 DAR 16:9, 59.98 fps, 60 tbr, 90k tbn (default)
    Metadata:
      creation_time   : 2024-06-17T16:57:04.000000Z
      handler_name    : VideoHandle
      vendor_id       : [0][0][0][0]
    Side data:
      displaymatrix: rotation of -90.00 degrees

image

This is the error that pops up while checking the nextcloud-apache container logs. Not sure if it's related to this, but it pops up every time I try to open the "broken" video files

{"level":"error","ts":1718642982.0623677,"logger":"http.handlers.reverse_proxy","msg":"aborting with incomplete response","upstream":"127.0.0.1:8000","duration":0.066993893,"request":
{"remote_ip":"*REDACTED*","remote_port":"54100","client_ip":"*REDACTED*","proto":"HTTP/1.1","method":"GET","host":"*REDACTED*","uri":"/remote.php/dav/files/*REDACTED*/InstantUpload/Camera/PXL_20240617_165648097.mp4","headers":{"Sec-Fetch-Site":["same-origin"],"X-Forwarded-Scheme":["https"],"Cdn-Loop":["cloudflare"],"Accept-Encoding":["gzip, br"],"Cf-Ray":["89549c3d3ed69472-LHR"],"Cf-Ipcountry":["IT"],"X-Forwarded-Proto":["https"],"Cf-Visitor":["{\"scheme\":\"https\"}"],"Accept":["video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5"],"User-Agent":["Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0"],"Accept-Language":["en-US,en;q=0.5"],"X-Forwarded-For":["*REDACTED*"],"Range":["bytes=3801088-"],"Sec-Fetch-Dest":["video"],"X-Real-Ip":["*REDACTED*"],"Cf-Connecting-Ip":["*REDACTED*"],"Cookie":["REDACTED"],"Sec-Fetch-Mode":["no-cors"],"X-Forwarded-Host":["*REDACTED*"]}},"error":"writing: write tcp 192.168.160.11:11000->192.168.160.10:54100: write: connection reset by peer"}
Steps to reproduce
  1. Shoot a video on the phone (I'm using a Google Pixel 7 with stock camera settings)
  2. Upload it to nextcloud
  3. Try to open the video file from the Files app
Expected behavior

It should play the video

Installation method

Official All-in-One appliance

Nextcloud Server version

29

Operating system

RHEL/CentOS

PHP engine version

PHP 8.2

Web server

Apache (supported)

Database engine version

PostgreSQL

Is this bug present after an update or on a fresh install?

Upgraded to a MAJOR version (ex. 22 to 23)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?
  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other
Configuration report
{
    "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
            }
        ],
        "default_phone_region": "IT",
        "appsallowlist": false,
        "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": "*REDACTED*",
        "overwriteprotocol": "https",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "localhost",
            "*REDACTED*"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "pgsql",
        "version": "29.0.2.2",
        "overwrite.cli.url": "https:\/\/*REDACTED*\/",
        "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,
        "loglevel": "2",
        "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": {
            "1": "OC\\Preview\\Image",
            "2": "OC\\Preview\\MarkDown",
            "3": "OC\\Preview\\MP3",
            "4": "OC\\Preview\\TXT",
            "5": "OC\\Preview\\OpenDocument",
            "6": "OC\\Preview\\Movie",
            "7": "OC\\Preview\\Krita",
            "0": "OC\\Preview\\Imaginary"
        },
        "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",
        "updatedirectory": "\/nc-updater",
        "maintenance_window_start": 100,
        "allow_local_remote_servers": true,
        "davstorage.request_timeout": 3600,
        "htaccess.RewriteBase": "\/",
        "dbpersistent": false,
        "files_external_allow_create_new_local": false,
        "trusted_proxies": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_url": "***REMOVED SENSITIVE VALUE***",
        "preview_imaginary_key": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "2465",
        "mail_smtpauth": 1,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpsecure": "ssl",
        "memories.exiftool": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/exiftool-aarch64-musl",
        "memories.vod.path": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/go-vod-aarch64",
        "memories.vod.ffmpeg": "\/usr\/bin\/ffmpeg",
        "memories.vod.ffprobe": "\/usr\/bin\/ffprobe",
        "memories.gis_type": 2,
        "data-fingerprint": "d3a8f8e269bbd042ca240f10ae6a4026",
        "memories.db.triggers.fcu": true,
        "auth.bruteforce.protection.enabled": true,
        "ratelimit.protection.enabled": true,
        "defaultapp": ""
    }
}
List of activated Apps
Enabled:
  - activity: 2.21.1
  - admin_audit: 1.19.0
  - calendar: 4.7.6
  - cloud_federation_api: 1.12.0
  - comments: 1.19.0
  - contacts: 6.0.0
  - contactsinteraction: 1.10.0
  - cookbook: 0.11.0
  - dashboard: 7.9.0
  - dav: 1.30.1
  - deck: 1.13.0
  - epubviewer: 1.6.2
  - federatedfilesharing: 1.19.0
  - federation: 1.19.0
  - files: 2.1.0
  - files_downloadlimit: 2.0.0
  - files_fulltextsearch: 29.0.0
  - files_pdfviewer: 2.10.0
  - files_reminders: 1.2.0
  - files_sharing: 1.21.0
  - files_trashbin: 1.19.0
  - files_versions: 1.22.0
  - firstrunwizard: 2.18.0
  - forms: 4.2.4
  - fulltextsearch: 29.0.0
  - fulltextsearch_elasticsearch: 29.0.1
  - integration_github: 2.0.7
  - integration_google: 2.2.0
  - logreader: 2.14.0
  - lookup_server_connector: 1.17.0
  - maps: 1.4.0
  - memories: 7.3.1
  - nextcloud-aio: 0.6.0
  - nextcloud_announcements: 1.18.0
  - notes: 4.10.0
  - notifications: 2.17.0
  - notify_push: 0.6.12
  - oauth2: 1.17.0
  - password_policy: 1.19.0
  - previewgenerator: 5.5.0
  - privacy: 1.13.0
  - provisioning_api: 1.19.0
  - recognize: 7.0.0
  - recommendations: 2.1.0
  - related_resources: 1.4.0
  - richdocuments: 8.4.2
  - serverinfo: 1.19.0
  - settings: 1.12.0
  - sharebymail: 1.19.0
  - support: 1.12.0
  - survey_client: 1.17.0
  - systemtags: 1.19.0
  - tables: 0.7.3
  - tasks: 0.16.0
  - text: 3.10.0
  - theming: 2.4.0
  - theming_customcss: 1.16.0
  - twofactor_backupcodes: 1.18.0
  - twofactor_nextcloud_notification: 3.9.0
  - twofactor_totp: 11.0.0-dev
  - user_status: 1.9.0
  - viewer: 2.3.0
  - weather_status: 1.9.0
  - workflow_media_converter: 1.11.7
  - workflowengine: 2.11.0
Disabled:
  - analytics: 4.13.0 (installed 4.13.0)
  - bruteforcesettings: 2.9.0
  - circles: 29.0.0-dev (installed 28.0.0-dev)
  - encryption: 2.17.0
  - extract: 1.3.6 (installed 1.3.6)
  - files_external: 1.21.0
  - mail: 3.7.1 (installed 3.7.1)
  - photos: 2.5.0 (installed 2.4.0)
  - side_menu: 3.12.0 (installed 3.12.0)
  - suspicious_login: 7.0.0
  - user_ldap: 1.20.0
Nextcloud Signing status
No errors have been found.
Nextcloud Logs
{"reqId":"XqX85Cm0ZpH2ohIx7El7","level":3,"time":"2024-06-17T17:03:03+00:00","remoteAddr":"*REACTED*","user":"*REACTED*","app":"no app in context","method":"GET","url":"/ocs/v2.php/teams/resources/files/54525","message":"No provider found for id files","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"29.0.2.2","exception":{"Exception":"RuntimeException","Message":"No provider found for id files","Code":0,"Trace":[{"file":"/var/www/html/lib/private/Teams/TeamManager.php","line":95,"function":"getProvider","class":"OC\\Teams\\TeamManager","type":"->","args":["files"]},{"file":"/var/www/html/core/Controller/TeamsApiController.php","line":84,"function":"getTeamsForResource","class":"OC\\Teams\\TeamManager","type":"->","args":["files","54525","*REACTED*"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":232,"function":"listTeams","class":"OC\\Core\\Controller\\TeamsApiController","type":"->","args":["files","54525"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":138,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[["OC\\Core\\Controller\\TeamsApiController"],"listTeams"]},{"file":"/var/www/html/lib/private/AppFramework/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[["OC\\Core\\Controller\\TeamsApiController"],"listTeams"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":338,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OC\\Core\\Controller\\TeamsApiController","listTeams",["OC\\AppFramework\\DependencyInjection\\DIContainer"],["files","54525","ocs.core.teamsapi.listteams"]]},{"file":"/var/www/html/ocs/v1.php","line":66,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/ocsapp/teams/resources/files/54525"]},{"file":"/var/www/html/ocs/v2.php","line":23,"args":["/var/www/html/ocs/v1.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/Teams/TeamManager.php","Line":77,"message":"No provider found for id files","exception":{},"CustomMessage":"No provider found for id files"}}
{"reqId":"gXGLMxwIARgo7V89EYwQ","level":3,"time":"2024-06-17T17:03:03+00:00","remoteAddr":"*REACTED*","user":"*REACTED*","app":"no app in context","method":"GET","url":"/ocs/v2.php/teams/resources/files/54525","message":"No provider found for id files","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"29.0.2.2","exception":{"Exception":"RuntimeException","Message":"No provider found for id files","Code":0,"Trace":[{"file":"/var/www/html/lib/private/Teams/TeamManager.php","line":95,"function":"getProvider","class":"OC\\Teams\\TeamManager","type":"->","args":["files"]},{"file":"/var/www/html/core/Controller/TeamsApiController.php","line":84,"function":"getTeamsForResource","class":"OC\\Teams\\TeamManager","type":"->","args":["files","54525","*REACTED*"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":232,"function":"listTeams","class":"OC\\Core\\Controller\\TeamsApiController","type":"->","args":["files","54525"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":138,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[["OC\\Core\\Controller\\TeamsApiController"],"listTeams"]},{"file":"/var/www/html/lib/private/AppFramework/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[["OC\\Core\\Controller\\TeamsApiController"],"listTeams"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":338,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OC\\Core\\Controller\\TeamsApiController","listTeams",["OC\\AppFramework\\DependencyInjection\\DIContainer"],["files","54525","ocs.core.teamsapi.listteams"]]},{"file":"/var/www/html/ocs/v1.php","line":66,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/ocsapp/teams/resources/files/54525"]},{"file":"/var/www/html/ocs/v2.php","line":23,"args":["/var/www/html/ocs/v1.php"],"function":"require_once"}],"File":"/var/www/html/lib/private/Teams/TeamManager.php","Line":77,"message":"No provider found for id files","exception":{},"CustomMessage":"No provider found for id files"}}
{"reqId":"G6tLd9h9cXE9VVO87iSk","level":3,"time":"2024-06-17T17:11:31+00:00","remoteAddr":"*REACTED*","user":"*REACTED*","app":"PHP","method":"GET","url":"/","message":"Optional parameter $userId declared before required parameter $path is implicitly treated as a required parameter at /var/www/html/custom_apps/deck/lib/Service/ConfigService.php#234","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0","version":"29.0.2.2","data":{"app":"PHP"}}
Additional info

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file, test, or entry point is named. Reproduce the failure with a Google Pixel 7 video in the Files app, compare playback of the affected HEVC file with a working video, and inspect the provided ffprobe output and request log. Done means the affected camera videos play in the web viewer after the Nextcloud 28-to-29 upgrade.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.