Massive increase in video quality in chrome by setting "x-google-max-bitrate" in SDP (breaks bandwidth cap of 300KBps)
@danxuliu is already working on this.
Since Dec 28, 2021.
- Dominant language
- PHP
- Stars
- 2.2k
- Forks
- 587
- Avg merge
- 18h 27m
- Merged PRs (30d)
- 333
Description
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Steps to reproduce
- Start any video call
- Monitor network traffic
Expected behaviour
Should use full bandwidth
Actual behaviour
Chrome webRTC by default is limited to 300 KBps (at least on macOS - can Windows / Linux users confirm?).
Proof of concept
This bottleneck can be lifted by setting "x-google-max-bitrate" in SDP.
Credit goes to Cyh: https://stackoverflow.com/questions/57653899/how-to-increase-the-bitrate-of-webrtc
Implemented in a quick and dirty implementation here: https://github.com/wiegell/spreed/commit/5c94fe6feb554810f0e509fdaf3eff34cc7bd0b1
This increases a 1080p stream from 300 KBps to around 1 - 1.5 MBps and adds alot of details.
Further implementation
I have no clue how this could affect scenarios with more than a couple of participants.
Also i dont know if the iOS or Android apps have similar limitations.
I would expect to have this option at least as an opt-in in the settings.
Talk app
Talk app version: (see apps admin page: /index.php/settings/apps)
13.0.1
Custom Signaling server configured: yes/no and version (see additional admin settings: /index.php/index.php/settings/admin/talk#signaling_server)
No
Custom TURN server configured: yes/no (see additional admin settings: /index.php/settings/admin/talk#turn_server)
No
Custom STUN server configured: yes/no (see additional admin settings: /index.php/settings/admin/talk#stun_server)
No
Browser
Microphone available: yes
Camera available: yes
Operating system: macOS
Browser name: Chrome
Browser version: 96.0.4664.110
Server configuration
Operating system: Armbian
Web server: Nginx
Database: MariaDB
PHP version: 7.4
Nextcloud Version: Nextcloud Hub II (23.0.0)
List of activated apps:
Enabled:
- accessibility: 1.9.0
- activity: 2.15.0
- bruteforcesettings: 2.3.0
- circles: 23.0.0
- cloud_federation_api: 1.6.0
- comments: 1.13.0
- dashboard: 7.3.0
- dav: 1.21.0
- federatedfilesharing: 1.13.0
- files: 1.18.0
- files_automatedtagging: 1.13.0
- files_external: 1.15.0
- files_rightclick: 1.2.0
- files_sharing: 1.15.0
- files_trashbin: 1.13.0
- files_versions: 1.16.0
- files_videoplayer: 1.12.0
- groupfolders: 11.1.0
- logreader: 2.8.0
- lookup_server_connector: 1.11.0
- music: 1.5.0
- notifications: 2.11.1
- oauth2: 1.11.0
- photos: 1.5.0
- previewgenerator: 3.4.1
- provisioning_api: 1.13.0
- settings: 1.5.0
- spreed: 13.0.1
- systemtags: 1.13.0
- text: 3.4.0
- theming: 1.14.0
- twofactor_backupcodes: 1.12.0
- user_status: 1.3.1
- viewer: 1.7.0
- weather_status: 1.3.0
- workflow_script: 1.8.0
- workflowengine: 2.5.0
Disabled:
- admin_audit
- contactsinteraction
- encryption
- federation
- files_pdfviewer
- firstrunwizard
- flow_notifications
- nextcloud_announcements
- password_policy
- privacy
- recommendations
- serverinfo
- sharebymail
- support
- survey_client
- updatenotification
- user_ldap
Nextcloud configuration:
{
"system": {
"memcache.local": "\\OC\\Memcache\\APCu",
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"overwritewebroot": "\/nextcloud",
"overwrite.cli.url": "https:\/\/raddoc.duckdns.org\/nextcloud",
"trusted_domains": [
"raddoc.duckdns.org"
],
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"dbtype": "mysql",
"version": "23.0.0.10",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"log_type": "file",
"logfile": "\/var\/log\/nextcloud.log",
"logfilemode": 416,
"loglevel": "0",
"logdateformat": "F d, Y H:i:s",
"updater.secret": "***REMOVED SENSITIVE VALUE***",
"maintenance": false,
"music.lastfm_api_key": "c29a7c80783f9b8c478eecd3ef45436e",
"mysql.utf8mb4": true
}
}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.