Hi,

In the past days I've been trying to display an H.264 stream generated by 
Gstreamer 0.10 in Firefox Nightly (35.0a1), using WebRTC. I'm in Ubuntu 12.04.

I've enabled the "media.peerconnection.video.h264_enabled" flag, and from there 
on I have tried several paths.

1) First, tried the H.264 SDP demo from the WebRTC book [1] and I was able to 
run it using two Firefox Nightly's in different computers and successfully make 
a call between them. From this demo, I think the important parameters in the 
SDP offer were:

  a=rtpmap:126 H264/90000
  a=fmtp:126 profile-level-id=42e00c;packetization-mode=1

Also based in the "H.264 as Mandatory to Implement Video Codec for WebRTC" 
draft [2].

2) Janus WebRTC Gateway

The Janus Gateway has a demo [3] where a gstreamer pipeline based on Opus/VP8 
is displayed in the browser. My goal was to modify this demo in order to use an 
H.264 gstreamer pipeline as the stream generator. In concept, Janus doesn't 
mind about codecs but just negotiation. So I've modified that demo in Janus to 
change the SDP offer to H.264, setting the rtpmap and fmtp lines parameters as 
in 1) above, and running a gstreamer pipeline that (I think) would comply to 
those parameters (especially payload type and profile-level-id):

gst-launch videotestsrc ! video/x-raw-rgb,width=320,height=240,framerate=15/1 ! 
 videoscale ! videorate ! ffmpegcolorspace ! timeoverlay !  x264enc ! 
rtph264pay pt=126 profile-level-id=42e00c ! udpsink host=127.0.0.1 port=5008

I've been able to start the demo (the negotiation seems to succeed), but 
Firefox doesn't display the video. The details are in [4] from Janus' 
discussion forum.

3) Recenlty, someone had a similar requirement in the stack overflow question 
"WebRTC and gstreamer on linux device" [5], but was thinking on using a node.js 
server instead. I haven't explored that path yet.

So, I think in summary, I have some questions that I will appreciate if you 
help me understand.

Q1) What is the state of H.264 WebRTC support in the latest Firefox Nightly - 
what are the profiles, levels, supported?
Q2) Has anyone tried H.264 WebRTC streaming that is not between two browsers? 
(I.e. my setup of Gstreamer --> WebRTC gateway <--> WebRTC browser)
Q3) Any hint on why my test using Janus Gateway is not working? (See [4] for 
details)

And, overall, I have had a hard time understanding how can I know what 
profile-level-id I must set in the SDP fmtp parameters. Any help on this 
direction is also welcomed.

Thanks much for your help.

[1] http://webrtcbook.com/sdp-h264.html
[2] http://tools.ietf.org/html/draft-burman-rtcweb-h264-proposal-04#section-9
[3] https://janus.conf.meetecho.com/streamingtest.html
[4] https://groups.google.com/forum/#!topic/meetecho-janus/XjjboCTY0Xc
[5] 
http://stackoverflow.com/questions/25463064/webrtc-and-gstreamer-on-linux-device

Regards,
JP
_______________________________________________
dev-media mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-media

Reply via email to