WebRTC video recording quality

Max_Kalun
Thu, 26 Nov 2020 12:03:36 +0000
Wowza Streaming Engine

Hi,

Our team implemented the video booth application using Wowza’s WebRTC flow to record the videos on the site.
We are trying to provide the best input quality however the recorded output video resolution is always low.

Input device

Logitech HD 1080p

MacBook Pro build-in HD camera

Video constraints

width: {max: 1920, ideal: 1280},

height: {max: 1080, ideal: 720},

frameRate: {ideal: 30}

Input video params according to webrtc-internals
RTCVideoSource (media-source)

width: 1280

height: 720

framesPerSecond: 30

Output video params according to ffprobe result:

width: 640

height: 360

frame rate: 30/1

Video codecs SDP parameters before munge:

a=rtpmap:102 H264/90000
a=rtcp-fb:102 goog-remb
a=rtcp-fb:102 transport-cc
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack
a=rtcp-fb:102 nack pli
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f

a=rtpmap:120 rtx/90000
a=fmtp:120 apt=102
a=rtpmap:127 H264/90000
a=rtcp-fb:127 goog-remb
a=rtcp-fb:127 transport-cc
a=rtcp-fb:127 ccm fir
a=rtcp-fb:127 nack
a=rtcp-fb:127 nack pli
a=fmtp:127 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f

a=rtpmap:119 rtx/90000
a=fmtp:119 apt=127
a=rtpmap:125 H264/90000
a=rtcp-fb:125 goog-remb
a=rtcp-fb:125 transport-cc
a=rtcp-fb:125 ccm fir
a=rtcp-fb:125 nack
a=rtcp-fb:125 nack pli
a=fmtp:125 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f

a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f

Video codecs SDP parameters after munge (wowza example):

a=rtpmap:107 rtx/90000
a=fmtp:107 apt=125
a=rtpmap:108 H264/90000
a=rtcp-fb:108 goog-remb
a=rtcp-fb:108 transport-cc
a=rtcp-fb:108 ccm fir
a=rtcp-fb:108 nack
a=rtcp-fb:108 nack pli
a=fmtp:108 level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f

According to the docs the 42e01f (level 3.1) can provide the following resulutions / fps:

720×480 fps 80.0

720×576 fps 66.7

1,280×720 fps 30.0

Does anybody know how to increase the quality of output recorded video?

1 post - 1 participant