Video streaming and playback over bare sockets and codecs

Day 2 /  / Track 1  /  RU / Hardcore. Really hard and demanding talk, you'll understand only if you're an experienced engineer.

Many developers take video players for granted (AVPlayer or ExoPlayer/MediaPlayer). Those are good, but you can achieve better results using bare socket and codec.

In this talk, we'll see how to diminish video launch delay, delay between streamer and viewer, and CPU utilization in the process of streaming and playback. We'll improve AVPlayer and then replace it with our own DASH player. We'll show how to cook ExoPlayer properly and make our own Android RTMP player. We'll discuss streaming protocols HLS/DASH/RTMP/webRTC/rawUDP.

As an example we'll use Odnoklassniki mobile client and OK Live application — first Android application for 1080p mobile streaming.