Media/WebRTC/WebRTC Debugging: Difference between revisions

Jump to navigation Jump to search
formatting improvements
(Fix wrapping)
(formatting improvements)
Line 4: Line 4:
For simple issues, the first place to look is to check the [https://firefox-source-docs.mozilla.org/devtools-user/web_console/ web developer console] for error messages related to media format issues. If you see messages here related to WebRTC, getUserMedia, or getDisplayMedia, please add this information to your bug.
For simple issues, the first place to look is to check the [https://firefox-source-docs.mozilla.org/devtools-user/web_console/ web developer console] for error messages related to media format issues. If you see messages here related to WebRTC, getUserMedia, or getDisplayMedia, please add this information to your bug.


'''Share Your about:webrtc Contents'''
===Share Your about:support Text===


# While your call is still ongoing, open a tab and visit about:webrtc<br />
In your Bugzilla report, please include support information about the current device you are seeing an issue on -
# Click "Clear History" to clear the stats from other recent calls which are no longer ongoing.<br />
 
# At the bottom of the page click 'Save Page', and save this file.<br />
# Open a tab and visit about:support<br />
# Add this file as an attachment to your bug.<br />
# Click 'Copy Text to Clipboard'<br />
This file contains statistics about your call, the signalling that was used to setup your call, and information about the network transports.
# Paste this text in your Bugzilla bug comment and post.<br />
 
===Share Your about:webrtc Contents===
 
For issues with call quality, please share web conferencing related performance information by providing your about:webrtc information. Note this information should be collected while the call in question is still active.
 
# While your call is still ongoing, open an additional tab and visit about:webrtc.
# Click "Clear History" to clear the stats from other recent calls which are no longer ongoing.
# At the bottom of the page click 'Save Page', and save this file.
# Add this file as an attachment to your bug.
 
This data contains statistics about your call, the signalling that was used to setup your call, and information about the network transports.
 
==Diagnosing Call Quality Issues==
 
===About Webrtc Overview===


===about:webrtc===
====Tour of About Webrtc====
This section will contain screen shots of about:webrtc and description of each of the sections. This information needs to be referenced from multiple places later in the wikipage.
This section will contain screen shots of about:webrtc and description of each of the sections. This information needs to be referenced from multiple places later in the wikipage.
<syntaxhighlight lang="sh">TODO</syntaxhighlight>
<syntaxhighlight lang="sh">TODO</syntaxhighlight>


===Common Call Quality Issues===
====Audio/Video Delay====


====Audio/Video Delay====
Delayed media is commonly caused by long physical paths between endpoints, though anything that slows down inter-hop delivery of packets can be at fault. Note that this is different than the bandwidth of the network path, and a high latency will not be fixed by reducing the video resolution or audio sample rate. Round trip time, or RTT, is the time it takes for a packet to get from the sender to the receiver and then for a packet to get from the receiver back to the sender. If the path is symmetric between the two endpoints one can assume that the one way delay is half the delay of the round trip.
Delayed media is commonly caused by long physical paths between endpoints, though anything that slows down inter-hop delivery of packets can be at fault. Note that this is different than the bandwidth of the network path, and a high latency will not be fixed by reducing the video resolution or audio sample rate. Round trip time, or RTT, is the time it takes for a packet to get from the sender to the receiver and then for a packet to get from the receiver back to the sender. If the path is symmetric between the two endpoints one can assume that the one way delay is half the delay of the round trip.


Line 25: Line 37:


'''Using [about:webrtc] to Diagnose Delay'''
'''Using [about:webrtc] to Diagnose Delay'''


The key metrics in [about:webrtc] are RTT (round-trip-time) and jitter. They can be found in the RTP stats section of the PeerConnection. The PeerConnection informational blocks start out in a minimized state, and one will need to expand a block to find the RTP stats section:
The key metrics in [about:webrtc] are RTT (round-trip-time) and jitter. They can be found in the RTP stats section of the PeerConnection. The PeerConnection informational blocks start out in a minimized state, and one will need to expand a block to find the RTP stats section:
Line 40: Line 51:


==Logging & Profiling==
==Logging & Profiling==
Logging can be enabled through the "Enable WebRTC Log Preset" button at the bottom of [about:webrtc]. Alternatively one can set the following environment variable:<syntaxhighlight lang="sh">MOZ_LOG="jsep:5,sdp:5,signaling:5,mtransport:5,RTCRtpReceiver:5,RTCRtpSender:5,RTCDMTFSender:5,VideoFrameConverter:5,WebrtcTCPSocket:5,CamerasChild:5,CamerasParent:5,VideoEngine:5,ShmemPool:5,TabShare:5,MediaChild:5,MediaParent:5,MediaManager:5,MediaTrackGraph:5,cubeb:5,MediaStream:5,MediaStreamTrack:5,DriftCompensator:5,ForwardInputTrack:5,MediaRecorder:5,MediaEncoder:5,TrackEncoder:5,VP8TrackEncoder:5,Muxer:5,GetUserMedia:5,MediaPipeline:5,PeerConnectionImpl:5,WebAudioAPI:5,webrtc_trace:5,RTCRtpTransceiver:5,ForwardedInputTrack:5,HTMLMediaElement:5,HTMLMediaElementEvents:5"</syntaxhighlight> Note that webrtc_trace will not be active until "Enable WebRTC Log Preset" is pressed.
Logging can be enabled through the "Enable WebRTC Log Preset" button at the bottom of [about:webrtc]. Alternatively one can set the following environment variable:<syntaxhighlight lang="sh">MOZ_LOG="jsep:5,sdp:5,signaling:5,mtransport:5,RTCRtpReceiver:5,RTCRtpSender:5,RTCDMTFSender:5,VideoFrameConverter:5,WebrtcTCPSocket:5,CamerasChild:5,CamerasParent:5,VideoEngine:5,ShmemPool:5,TabShare:5,MediaChild:5,MediaParent:5,MediaManager:5,MediaTrackGraph:5,cubeb:5,MediaStream:5,MediaStreamTrack:5,DriftCompensator:5,ForwardInputTrack:5,MediaRecorder:5,MediaEncoder:5,TrackEncoder:5,VP8TrackEncoder:5,Muxer:5,GetUserMedia:5,MediaPipeline:5,PeerConnectionImpl:5,WebAudioAPI:5,webrtc_trace:5,RTCRtpTransceiver:5,ForwardedInputTrack:5,HTMLMediaElement:5,HTMLMediaElementEvents:5"</syntaxhighlight> Note that webrtc_trace will not be active until "Enable WebRTC Log Preset" is pressed.


===Capturing a Firefox Profiles===
===Capturing a Firefox Profiles===
# obtain profiler
 
# enable webrtc logging profile
# Visit https://profiler.firefox.com/ and enable the Profiler toolbar button.
# starting the profiler
# Click the toolbar button down arrow and select 'WebRTC' in the Settings drop down.
# stopping the profiler
# Open a tab and visit the page with the affected media content.
# uploading a profile
# Click the Profiler toolbar main button to start recording.
# Play media until the issue you are seeing manifests.
# Click the Profiler toolbar button again to stop recording.
# When a new Profile tab opens, click the upload profile button on the upper right.
# Copy the resulting profile URL and post this to your Bugzilla report.


===Standard Logging Modules===
===Standard Logging Modules===
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
Confirmed users
1,983

edits

Navigation menu