Typical questions for licode


I am evaluating licode for a project. I have some questions about it. If you can answer all or some of them I would really appreciate it. Thanks

  1. Which codecs does it support?

  2. Here (http://licode.readthedocs.io/en/stable/client_api/#start-recording) it says that ‘The recording will stored in a .mkv file using VP8 codec for video and PCMU or OPUS for audio, depending on the server configuration.’ So does it transcode the incoming stream if it is h264. And does it transcode it even if it is VP8?

  3. Can we start and stop recording while stream is available? If we can then is it going be a single file with recorded segments in it or are there going to be multiple files one for each recorded duration? Lastly can anyone in the room start and stop recording? Can it be done through a server api without being in the room?

  4. Does it use the chromium repo in its core? How does it keep up with the latest changes to webrtc? Is everything implemented from scratch or is is using some other repo(s).

  5. Does it support tcp and udp and can it be run on a single tcp port?

  6. Does it support both plan b and unified plan?

  7. Does it have android and ios sdks? It looks like there’s a client api for javascript if we want to implement our own native js or some other language implementation is there a documentation about it or do we need to trace api call and implement them?

Best regards,

  1. vp8 & h264 for video and pcmu or opus for audio. you can configure them in the room properties. not that if you use h264 you won’t benefit of the simulcast support. I’ll consider using vp8 and opus as seems the standard right now.
  2. mkv is a container, it doesn’t transcode the video, it stores in the mkv the codec you are using in your room. you have to manually transcode them after the recording is done (with ffmpeg) or maybe implement your transcode logic in the c++ code of externalOutput.cpp
  3. you’ll end up with multiple files. anyone in the room can start, stop the stream recording. it cannot be done serverside api I think but it will be easy to implement. also you can create new roles to manage this and customize the permissions.
  4. everything but some minor modules (as the sender bandwidth estimation) are done from scratch, so no chromium core is used.
  5. I think it will only support udp, you need a TURN to ensure the support for tcp.
  6. no, It’s currently a wip
  7. there are some projects like zevarito’s iOS sdk https://github.com/zevarito/Licode-ErizoClientIOS

Thank you very much Francesco.

One more follow up regarding “Does it support both plan b and unified plan?”

So it does not support multicasting each stream needs to be delivered via a separate peerconnection to/from clients right?

Thanks again,

each stream has a peerconnection but if you use Simulcast, you can send differents quality of each stream in the same peerconnection.