From 85953f4ea586de488afb4d453a4f07438ddbc054 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Mon, 9 Jan 2023 14:44:51 -0800 Subject: [PATCH] webrtc: fix mtu issue on cell networks --- plugins/webrtc/.vscode/settings.json | 2 +- plugins/webrtc/package-lock.json | 4 ++-- plugins/webrtc/package.json | 2 +- plugins/webrtc/src/ffmpeg-to-wrtc.ts | 7 +++++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/plugins/webrtc/.vscode/settings.json b/plugins/webrtc/.vscode/settings.json index 77ccdbd6d..44d4d203f 100644 --- a/plugins/webrtc/.vscode/settings.json +++ b/plugins/webrtc/.vscode/settings.json @@ -1,4 +1,4 @@ { - "scrypted.debugHost": "127.0.0.1", + "scrypted.debugHost": "koushik-ubuntu", } \ No newline at end of file diff --git a/plugins/webrtc/package-lock.json b/plugins/webrtc/package-lock.json index bb40191a6..3d579aaf4 100644 --- a/plugins/webrtc/package-lock.json +++ b/plugins/webrtc/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/webrtc", - "version": "0.0.125", + "version": "0.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/webrtc", - "version": "0.0.125", + "version": "0.1.1", "dependencies": { "@scrypted/common": "file:../../common", "@scrypted/sdk": "file:../../sdk", diff --git a/plugins/webrtc/package.json b/plugins/webrtc/package.json index 2d4de84fb..4363f07cb 100644 --- a/plugins/webrtc/package.json +++ b/plugins/webrtc/package.json @@ -1,6 +1,6 @@ { "name": "@scrypted/webrtc", - "version": "0.0.125", + "version": "0.1.1", "scripts": { "scrypted-setup-project": "scrypted-setup-project", "prescrypted-setup-project": "scrypted-package-json", diff --git a/plugins/webrtc/src/ffmpeg-to-wrtc.ts b/plugins/webrtc/src/ffmpeg-to-wrtc.ts index e43020323..afae3b8cd 100644 --- a/plugins/webrtc/src/ffmpeg-to-wrtc.ts +++ b/plugins/webrtc/src/ffmpeg-to-wrtc.ts @@ -190,8 +190,11 @@ export async function createTrackForwarder(options: { // ipv4 mtu is 1500 // so max usable packet size is 1500 - rtp header - tcp header - ip header // 1500 - 12 - 20 - 20 = 1448. - // but set to 1440 cause that's what cameras seem to use for some reason. - const videoPacketSize = options.ipv4 ? 1440 : 1300; + // but set to 1424 just to be safe. + // 1/9/2023: bug report from eweber discovered that usable MTU on tmobile is 1424. + // additional consideration should be given whether to always enforce ipv6 mtu on + // non-local destination? + const videoPacketSize = options.ipv4 ? 1424 : 1300; let h264Repacketizer: H264Repacketizer; let spsPps: ReturnType;