Skip to content

Commit 71fd3d5

Browse files
authored
[Broadcaster] Allow to configure max video bitrate (#18)
1 parent 9eb1b21 commit 71fd3d5

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

broadcaster/assets/js/player.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const audioDevices = document.getElementById('audioDevices');
22
const videoDevices = document.getElementById('videoDevices');
3+
const maxVideoBitrate = document.getElementById('maxVideoBitrate');
34
const serverUrl = document.getElementById('serverUrl');
45
const serverToken = document.getElementById('serverToken');
56
const button = document.getElementById('button');
@@ -64,6 +65,15 @@ async function startStreaming() {
6465
pc.addTrack(track);
6566
}
6667

68+
// limit max bitrate
69+
pc.getSenders()
70+
.filter((sender) => sender.track.kind === 'video')
71+
.forEach(async (sender) => {
72+
const params = sender.getParameters();
73+
params.encodings[0].maxBitrate = parseInt(maxVideoBitrate.value) * 1024;
74+
await sender.setParameters(params);
75+
});
76+
6777
const offer = await pc.createOffer();
6878
await pc.setLocalDescription(offer)
6979

broadcaster/lib/broadcaster_web/controllers/page_html/player.html.heex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
<label for="videoDevices">Video Input Device:</label>
1010
<select id="videoDevices"></select>
1111
</div>
12+
<div class="p-2">
13+
<label for="maxVideoBitrate">Max Video Bitrate (kbps):</label>
14+
<input type="text" id="maxVideoBitrate" value="1500" />
15+
</div>
1216
<div class="p-2">
1317
<label for="serverUrl">Server URL</label>
1418
<input type="text" id="serverUrl" />

0 commit comments

Comments
 (0)