Android video chat project

I owned a project from my manager, which is an Android video chat application. The application is the same as in Fring or Qik video chat. But this is new to me, so can anyone give me some advice or send points?

Thanks!

0
source share
1 answer

I'm confused - did you inherit an existing project or were you asked to launch it? If you are asked to launch it, I have one comment: video conferencing is not for the faint of heart.

In particular, you will need:

  • Audio and video capture tool
  • A means of encoding audio and video, which means you need encoders. This means that you need to choose codecs (and codecs implementations!), Switch to licensing and licensing issues, etc. At the very least, you probably want to be familiar with H264 / MPEG4 / MPEG2 for video, and for audio there are tons of possibilities (AAC / MP3 / G.7xx / Speex / etc.).
  • A means of streaming audio and video, which means that you will need some kind of real-time streaming mechanism such as RTP. As Harry said, you will also need some sort of session / initiation protocol, like SIP or RTSP. You will need to both send and receive the code after negotiating the protocols. For example, if you use RTSP / RTP, you can use something like Live555. Or, if you only need RTP, there is JRTPLIB.
  • NAT Transport Tool The easiest way is to stream through an intermediary (i.e. Relay), but this adds delay, requires money in the bandwidth, etc. More complex solutions use ICE / STUN / TURN solutions, so for this you need a library.
  • Lots of glue code to put together all of the above into something that doesn't look like a tangled, nasty mess. You may also need such contacts, presence (for example, notifying the user if he is online, or if he is disconnected), etc.

Note that the above probably describes (approximately) how most video conferencing applications work. Therefore, if you inherit the project, I will start cleaning audio and video capture / encoding, streaming protocols and traffic bypass methods. If you are starting from scratch, I would make sure that the project requirements and scope are reasonable (from scratch, I would set aside at least a year, if not more, for the base implementation, which includes the above).

+7
source

Source: https://habr.com/ru/post/1399331/


All Articles