<div dir="ltr"><div style="" class="markdown-here-wrapper"><p style="margin:0px 0px 1.2em!important">Hello,</p>
<p style="margin:0px 0px 1.2em!important">I am having an issue accessing WebRTC video streams from the Iceweasel browser on the Raspberry Pi. Please let me know if there is a more appropriate place to post my issue. I have a similar post of this issue on Stack Exchange here: <a href="http://raspberrypi.stackexchange.com/posts/36488/edit">http://raspberrypi.stackexchange.com/posts/36488/edit</a></p>
<p style="margin:0px 0px 1.2em!important">I am trying to use my Raspberry Pi 2 and <a href="https://www.adafruit.com/products/1367">Raspberry Pi Camera</a> to join a WebRTC session in the Iceweasel browser. I was able to set up a WebRTC server on my Pi through <a href="https://bloggeek.me/webrtc-raspberripi-nodejs/">this tutorial</a> and I am able to start/join a WebRTC session on any PC with video/audio enabled.</p>
<p style="margin:0px 0px 1.2em!important">Also, I installed <a href="http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14">UV4L</a>, which enables the browser to recognize the Pi camera.</p>
<p style="margin:0px 0px 1.2em!important">When I try to access a WebRTC session on the Pi’s Iceweasel browser, however, the browser is unable to start the video. More specifically, the Javascript Navigator object fails on the <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">navigator.mozGetUserMedia()</code> method to start the video, returning the error “Starting video failed”. The <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">mozGetUserMedia</code> is bound <a href="https://github.com/buildar/getting_started_with_webrtc/blob/master/video_call_with_chat_and_file_sharing.html#L57">in this line of code</a> and the method is called <a href="https://github.com/buildar/getting_started_with_webrtc/blob/master/video_call_with_chat_and_file_sharing.html#L369-L384">here</a>.</p>
<p style="margin:0px 0px 1.2em!important">Can you provide guidance on getting my Pi Camera detected by WebRTC in Iceweasel? Or is there another browser, plug-in, or update, that will properly access my Raspberry Pi Camera’s stream?</p>
<p style="margin:0px 0px 1.2em!important">My browser’s console output is here:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important">"early firefox webrtc implementation" 192.168.0.103:1234:55
"getting user media..." 192.168.0.103:1234:59
"got user media..." 192.168.0.103:1234:61
The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol. <a href="http://192.168.0.103:1234">192.168.0.103:1234</a>
"setting up local video stream" 192.168.0.103:1234:374
"setting up connection to signaling server" 192.168.0.103:1234:153
"you are the Caller" 192.168.0.103:1234:158
"updating UI to loading_state" 192.168.0.103:1234:182
"sending 'join' signal for call token:#1442483208369-4377" 192.168.0.103:1234:172
"Starting video failed" 192.168.0.103:1234:555
</code></pre><p style="margin:0px 0px 1.2em!important">Similarly, when I try to join a Firefox Hello chat in my Pi’s Iceweasel browser, I get these debug console messages:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important">The Components object is deprecated. It will soon be removed. utils.js:9
"No information about this conversation is available. Please request a new link from the person who sent it to you." standaloneRoomViews.js:366

Use of getPreventDefault() is deprecated.  Use defaultPrevented instead. 2768540301.js:92
"OT.Publisher.onStreamAvailableError Starting video failed: Unknown Error while getting user media" sdk.js:3399

"OT.exception :: title: Unable to Publish (1500) msg: GetUserMedia" sdk.js:3399

1500 "Unknown Error while getting user media" sdk.js:3399

"OT.exception :: title: Unable to Publish (1500) msg: Unknown Error while getting user media" sdk.js:3399

Error: HTTP 401 Unauthorized
Stack trace:
failureHandler@<a href="https://hello.firefox.com/js/standaloneMozLoop.js:44:9">https://hello.firefox.com/js/standaloneMozLoop.js:44:9</a>
loop.StandaloneMozLoop</StandaloneMozLoopRooms.prototype._postToRoom/xhrReq.onload<@<a href="https://hello.firefox.com/js/standaloneMozLoop.js:142:11">https://hello.firefox.com/js/standaloneMozLoop.js:142:11</a>
</code></pre><hr>
<p style="margin:0px 0px 1.2em!important">Here are some details on my setup:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important">[pi@raspberrypi]~$ uname -a
Linux raspberrypi 4.1.6-v7+ #2 SMP PREEMPT Fri Sep 4 16:49:07 UTC 2015 armv7l GNU/Linux

[pi@raspberrypi]~$ cat /etc/*-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="<a href="http://www.raspbian.org/">http://www.raspbian.org/</a>"
SUPPORT_URL="<a href="http://www.raspbian.org/RaspbianForums">http://www.raspbian.org/RaspbianForums</a>"
BUG_REPORT_URL="<a href="http://www.raspbian.org/RaspbianBugs">http://www.raspbian.org/RaspbianBugs</a>"

[pi@raspberrypi]~$ iceweasel --version
Mozilla Iceweasel 31.8.0
</code></pre><p style="margin:0px 0px 1.2em!important">And my camera is working fine, where I can run <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">raspivid -t 10000</code> which displays the camera’s video for 10 seconds.</p>
<p style="margin:0px 0px 1.2em!important">My Iceweasel install supports WebRTC, which I confirmed here: <a href="http://iswebrtcready.appear.in/">http://iswebrtcready.appear.in/</a></p>
<hr>
<p style="margin:0px 0px 1.2em!important">Any help or suggestions would be appreciated. I am happy to clarify anything as well.</p>
<p style="margin:0px 0px 1.2em!important">Thank you,<br>Luke</p>
<div title="MDH:SGVsbG8sPGJyPjxicj5JIGFtIGhhdmluZyBhbiBpc3N1ZSBhY2Nlc3NpbmcgV2ViUlRDIHZpZGVv
IHN0cmVhbXMgZnJvbSB0aGUgSWNld2Vhc2VsIGJyb3dzZXIgb24gdGhlIFJhc3BiZXJyeSBQaS4g
UGxlYXNlIGxldCBtZSBrbm93IGlmIHRoZXJlIGlzIGEgbW9yZSBhcHByb3ByaWF0ZSBwbGFjZSB0
byBwb3N0IG15IGlzc3VlLiBJIGhhdmUgYSBzaW1pbGFyIHBvc3Qgb2YgdGhpcyBpc3N1ZSBvbiBT
dGFjayBFeGNoYW5nZSBoZXJlOiBodHRwOi8vcmFzcGJlcnJ5cGkuc3RhY2tleGNoYW5nZS5jb20v
cG9zdHMvMzY0ODgvZWRpdDxicj48YnI+SSBhbSB0cnlpbmcgdG8gdXNlIG15IFJhc3BiZXJyeSBQ
aSAyIGFuZCBbUmFzcGJlcnJ5IFBpIENhbWVyYV0oaHR0cHM6Ly93d3cuYWRhZnJ1aXQuY29tL3By
b2R1Y3RzLzEzNjcpIHRvIGpvaW4gYSBXZWJSVEMgc2Vzc2lvbiBpbiB0aGUgSWNld2Vhc2VsIGJy
b3dzZXIuIEkgd2FzIGFibGUgdG8gc2V0IHVwIGEgV2ViUlRDIHNlcnZlciBvbiBteSBQaSB0aHJv
dWdoIFt0aGlzIHR1dG9yaWFsXShodHRwczovL2Jsb2dnZWVrLm1lL3dlYnJ0Yy1yYXNwYmVycmlw
aS1ub2RlanMvKSBhbmQgSSBhbSBhYmxlIHRvIHN0YXJ0L2pvaW4gYSBXZWJSVEMgc2Vzc2lvbiBv
biBhbnkgUEMgd2l0aCB2aWRlby9hdWRpbyBlbmFibGVkLjxicj48YnI+QWxzbywgSSBpbnN0YWxs
ZWQgW1VWNExdKGh0dHA6Ly93d3cubGludXgtcHJvamVjdHMub3JnL21vZHVsZXMvc2VjdGlvbnMv
aW5kZXgucGhwP29wPXZpZXdhcnRpY2xlJmFtcDthcnRpZD0xNCksIHdoaWNoIGVuYWJsZXMgdGhl
IGJyb3dzZXIgdG8gcmVjb2duaXplIHRoZSBQaSBjYW1lcmEuPGJyPjxicj5XaGVuIEkgdHJ5IHRv
IGFjY2VzcyBhIFdlYlJUQyBzZXNzaW9uIG9uIHRoZSBQaSdzIEljZXdlYXNlbCBicm93c2VyLCBo
b3dldmVyLCB0aGUgYnJvd3NlciBpcyB1bmFibGUgdG8gc3RhcnQgdGhlIHZpZGVvLiBNb3JlIHNw
ZWNpZmljYWxseSwgdGhlIEphdmFzY3JpcHQgTmF2aWdhdG9yIG9iamVjdCBmYWlscyBvbiB0aGUg
YG5hdmlnYXRvci5tb3pHZXRVc2VyTWVkaWEoKWAgbWV0aG9kIHRvIHN0YXJ0IHRoZSB2aWRlbywg
cmV0dXJuaW5nIHRoZSBlcnJvciAiU3RhcnRpbmcgdmlkZW8gZmFpbGVkIi4gVGhlIGBtb3pHZXRV
c2VyTWVkaWFgIGlzIGJvdW5kIFtpbiB0aGlzIGxpbmUgb2YgY29kZV0oaHR0cHM6Ly9naXRodWIu
Y29tL2J1aWxkYXIvZ2V0dGluZ19zdGFydGVkX3dpdGhfd2VicnRjL2Jsb2IvbWFzdGVyL3ZpZGVv
X2NhbGxfd2l0aF9jaGF0X2FuZF9maWxlX3NoYXJpbmcuaHRtbCNMNTcpIGFuZCB0aGUgbWV0aG9k
IGlzIGNhbGxlZCBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL2J1aWxkYXIvZ2V0dGluZ19zdGFy
dGVkX3dpdGhfd2VicnRjL2Jsb2IvbWFzdGVyL3ZpZGVvX2NhbGxfd2l0aF9jaGF0X2FuZF9maWxl
X3NoYXJpbmcuaHRtbCNMMzY5LUwzODQpLjxicj48YnI+Q2FuIHlvdSBwcm92aWRlIGd1aWRhbmNl
IG9uIGdldHRpbmcgbXkgUGkgQ2FtZXJhIGRldGVjdGVkIGJ5IFdlYlJUQyBpbiBJY2V3ZWFzZWw/
IE9yIGlzIHRoZXJlIGFub3RoZXIgYnJvd3NlciwgcGx1Zy1pbiwgb3IgdXBkYXRlLCB0aGF0IHdp
bGwgcHJvcGVybHkgYWNjZXNzIG15IFJhc3BiZXJyeSBQaSBDYW1lcmEncyBzdHJlYW0/PGJyPjxi
cj5NeSBicm93c2VyJ3MgY29uc29sZSBvdXRwdXQgaXMgaGVyZTo8YnI+PGJyPsKgwqDCoCAiZWFy
bHkgZmlyZWZveCB3ZWJydGMgaW1wbGVtZW50YXRpb24iIDE5Mi4xNjguMC4xMDM6MTIzNDo1NTxi
cj7CoMKgwqAgImdldHRpbmcgdXNlciBtZWRpYS4uLiIgMTkyLjE2OC4wLjEwMzoxMjM0OjU5PGJy
PsKgwqDCoCAiZ290IHVzZXIgbWVkaWEuLi4iIDE5Mi4xNjguMC4xMDM6MTIzNDo2MTxicj7CoMKg
wqAgVGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgSFRNTCBkb2N1bWVudCB3YXMgbm90IGRl
Y2xhcmVkLiBUaGUgZG9jdW1lbnQgd2lsbCByZW5kZXIgd2l0aCBnYXJibGVkIHRleHQgaW4gc29t
ZSBicm93c2VyIGNvbmZpZ3VyYXRpb25zIGlmIHRoZSBkb2N1bWVudCBjb250YWlucyBjaGFyYWN0
ZXJzIGZyb20gb3V0c2lkZSB0aGUgVVMtQVNDSUkgcmFuZ2UuIFRoZSBjaGFyYWN0ZXIgZW5jb2Rp
bmcgb2YgdGhlIHBhZ2UgbXVzdCBiZSBkZWNsYXJlZCBpbiB0aGUgZG9jdW1lbnQgb3IgaW4gdGhl
IHRyYW5zZmVyIHByb3RvY29sLiAxOTIuMTY4LjAuMTAzOjEyMzQ8YnI+wqDCoMKgICJzZXR0aW5n
IHVwIGxvY2FsIHZpZGVvIHN0cmVhbSIgMTkyLjE2OC4wLjEwMzoxMjM0OjM3NDxicj7CoMKgwqAg
InNldHRpbmcgdXAgY29ubmVjdGlvbiB0byBzaWduYWxpbmcgc2VydmVyIiAxOTIuMTY4LjAuMTAz
OjEyMzQ6MTUzPGJyPsKgwqDCoCAieW91IGFyZSB0aGUgQ2FsbGVyIiAxOTIuMTY4LjAuMTAzOjEy
MzQ6MTU4PGJyPsKgwqDCoCAidXBkYXRpbmcgVUkgdG8gbG9hZGluZ19zdGF0ZSIgMTkyLjE2OC4w
LjEwMzoxMjM0OjE4Mjxicj7CoMKgwqAgInNlbmRpbmcgJ2pvaW4nIHNpZ25hbCBmb3IgY2FsbCB0
b2tlbjojMTQ0MjQ4MzIwODM2OS00Mzc3IiAxOTIuMTY4LjAuMTAzOjEyMzQ6MTcyPGJyPsKgwqDC
oCAiU3RhcnRpbmcgdmlkZW8gZmFpbGVkIiAxOTIuMTY4LjAuMTAzOjEyMzQ6NTU1PGJyPjxicj48
YnI+U2ltaWxhcmx5LCB3aGVuIEkgdHJ5IHRvIGpvaW4gYSBGaXJlZm94IEhlbGxvIGNoYXQgaW4g
bXkgUGkncyBJY2V3ZWFzZWwgYnJvd3NlciwgSSBnZXQgdGhlc2UgZGVidWcgY29uc29sZSBtZXNz
YWdlczo8YnI+PGJyPsKgwqDCoCBUaGUgQ29tcG9uZW50cyBvYmplY3QgaXMgZGVwcmVjYXRlZC4g
SXQgd2lsbCBzb29uIGJlIHJlbW92ZWQuIHV0aWxzLmpzOjk8YnI+wqDCoMKgICJObyBpbmZvcm1h
dGlvbiBhYm91dCB0aGlzIGNvbnZlcnNhdGlvbiBpcyBhdmFpbGFibGUuIFBsZWFzZSByZXF1ZXN0
IGEgbmV3IGxpbmsgZnJvbSB0aGUgcGVyc29uIHdobyBzZW50IGl0IHRvIHlvdS4iIHN0YW5kYWxv
bmVSb29tVmlld3MuanM6MzY2PGJyPsKgwqAgPGJyPsKgwqDCoCBVc2Ugb2YgZ2V0UHJldmVudERl
ZmF1bHQoKSBpcyBkZXByZWNhdGVkLsKgIFVzZSBkZWZhdWx0UHJldmVudGVkIGluc3RlYWQuIDI3
Njg1NDAzMDEuanM6OTI8YnI+wqDCoMKgICJPVC5QdWJsaXNoZXIub25TdHJlYW1BdmFpbGFibGVF
cnJvciBTdGFydGluZyB2aWRlbyBmYWlsZWQ6IFVua25vd24gRXJyb3Igd2hpbGUgZ2V0dGluZyB1
c2VyIG1lZGlhIiBzZGsuanM6MzM5OTxicj7CoMKgIDxicj7CoMKgwqAgIk9ULmV4Y2VwdGlvbiA6
OiB0aXRsZTogVW5hYmxlIHRvIFB1Ymxpc2ggKDE1MDApIG1zZzogR2V0VXNlck1lZGlhIiBzZGsu
anM6MzM5OTxicj7CoMKgIDxicj7CoMKgwqAgMTUwMCAiVW5rbm93biBFcnJvciB3aGlsZSBnZXR0
aW5nIHVzZXIgbWVkaWEiIHNkay5qczozMzk5PGJyPsKgwqAgPGJyPsKgwqDCoCAiT1QuZXhjZXB0
aW9uIDo6IHRpdGxlOiBVbmFibGUgdG8gUHVibGlzaCAoMTUwMCkgbXNnOiBVbmtub3duIEVycm9y
IHdoaWxlIGdldHRpbmcgdXNlciBtZWRpYSIgc2RrLmpzOjMzOTk8YnI+wqDCoCA8YnI+wqDCoMKg
IEVycm9yOiBIVFRQIDQwMSBVbmF1dGhvcml6ZWQ8YnI+wqDCoMKgIFN0YWNrIHRyYWNlOjxicj7C
oMKgwqAgZmFpbHVyZUhhbmRsZXJAaHR0cHM6Ly9oZWxsby5maXJlZm94LmNvbS9qcy9zdGFuZGFs
b25lTW96TG9vcC5qczo0NDo5PGJyPsKgwqDCoCBsb29wLlN0YW5kYWxvbmVNb3pMb29wJmx0Oy9T
dGFuZGFsb25lTW96TG9vcFJvb21zLnByb3RvdHlwZS5fcG9zdFRvUm9vbS94aHJSZXEub25sb2Fk
Jmx0O0BodHRwczovL2hlbGxvLmZpcmVmb3guY29tL2pzL3N0YW5kYWxvbmVNb3pMb29wLmpzOjE0
MjoxMTxicj48YnI+LS0tPGJyPjxicj5IZXJlIGFyZSBzb21lIGRldGFpbHMgb24gbXkgc2V0dXA6
PGJyPjxicj7CoMKgwqAgW3BpQHJhc3BiZXJyeXBpXX4kIHVuYW1lIC1hPGJyPsKgwqDCoCBMaW51
eCByYXNwYmVycnlwaSA0LjEuNi12NysgIzIgU01QIFBSRUVNUFQgRnJpIFNlcCA0IDE2OjQ5OjA3
IFVUQyAyMDE1IGFybXY3bCBHTlUvTGludXg8YnI+PGJyPsKgwqDCoCBbcGlAcmFzcGJlcnJ5cGld
fiQgY2F0IC9ldGMvKi1yZWxlYXNlPGJyPsKgwqDCoCBQUkVUVFlfTkFNRT0iUmFzcGJpYW4gR05V
L0xpbnV4IDcgKHdoZWV6eSkiPGJyPsKgwqDCoCBOQU1FPSJSYXNwYmlhbiBHTlUvTGludXgiPGJy
PsKgwqDCoCBWRVJTSU9OX0lEPSI3Ijxicj7CoMKgwqAgVkVSU0lPTj0iNyAod2hlZXp5KSI8YnI+
wqDCoMKgIElEPXJhc3BiaWFuPGJyPsKgwqDCoCBJRF9MSUtFPWRlYmlhbjxicj7CoMKgwqAgQU5T
SV9DT0xPUj0iMTszMSI8YnI+wqDCoMKgIEhPTUVfVVJMPSJodHRwOi8vd3d3LnJhc3BiaWFuLm9y
Zy8iPGJyPsKgwqDCoCBTVVBQT1JUX1VSTD0iaHR0cDovL3d3dy5yYXNwYmlhbi5vcmcvUmFzcGJp
YW5Gb3J1bXMiPGJyPsKgwqDCoCBCVUdfUkVQT1JUX1VSTD0iaHR0cDovL3d3dy5yYXNwYmlhbi5v
cmcvUmFzcGJpYW5CdWdzIjxicj48YnI+wqDCoMKgIFtwaUByYXNwYmVycnlwaV1+JCBpY2V3ZWFz
ZWwgLS12ZXJzaW9uPGJyPsKgwqDCoCBNb3ppbGxhIEljZXdlYXNlbCAzMS44LjA8YnI+PGJyPkFu
ZCBteSBjYW1lcmEgaXMgd29ya2luZyBmaW5lLCB3aGVyZSBJIGNhbiBydW4gYHJhc3BpdmlkIC10
IDEwMDAwYCB3aGljaCBkaXNwbGF5cyB0aGUgY2FtZXJhJ3MgdmlkZW8gZm9yIDEwIHNlY29uZHMu
PGJyPjxicj5NeSBJY2V3ZWFzZWwgaW5zdGFsbCBzdXBwb3J0cyBXZWJSVEMsIHdoaWNoIEkgY29u
ZmlybWVkIGhlcmU6IGh0dHA6Ly9pc3dlYnJ0Y3JlYWR5LmFwcGVhci5pbi88YnI+PGJyPi0tLTxi
cj48YnI+QW55IGhlbHAgb3Igc3VnZ2VzdGlvbnMgd291bGQgYmUgYXBwcmVjaWF0ZWQuIEkgYW0g
aGFwcHkgdG8gY2xhcmlmeSBhbnl0aGluZyBhcyB3ZWxsLjxicj48YnI+VGhhbmsgeW91LDxicj5M
dWtlPGJyPjxicj48YnI+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div>