Mobile Development 21 min read

Comprehensive Guide to iOS Live Streaming App Development: Architecture, Protocols, and Implementation

This article provides a detailed walkthrough of building an iOS live‑streaming application, covering the end‑to‑end workflow from video/audio capture, encoding, and transmission to playback, while explaining key protocols, container formats, GPUImage processing, and code examples for developers.

Baidu Intelligent Testing
Baidu Intelligent Testing
Baidu Intelligent Testing
Comprehensive Guide to iOS Live Streaming App Development: Architecture, Protocols, and Implementation

The article begins with an overview of the evolution of live‑streaming platforms and classifies various app types (video sites, bullet‑screen video, live platforms, online shows, short‑video, mobile live) to highlight the market context for iOS live‑streaming development.

Basic Framework : A complete live‑streaming pipeline includes data collection, processing, encoding, packetizing, pushing, transmission, transcoding, distribution, pulling, decoding, and playback. Lower latency across these stages improves user experience.

iOS Live‑Streaming App Development Process :

1. Data Collection : Cameras (CCD/CMOS) and microphones capture raw video and audio.

2. Data Encoding : Use hardware/software to encode raw streams (e.g., H.264/H.265 for video, AAC/G.711 for audio) and package them (TS, MKV, MP4, FLV, etc.).

3. Data Transmission : Transmit encoded streams via protocols such as RTP/RTCP, RTSP, RTMP, HTTP, HLS.

4. Data Decoding : Corresponding decoders (or third‑party plugins) reverse the encoding.

5. Playback : Render video on displays and output audio through speakers/headphones.

Video Push (Streaming to Server) :

Pre‑push work: capture, processing, compression (see Figure 4).

Push work: packetizing and uploading (see Figure 7).

Typical iOS push implementation uses AudioToolbox (AudioConverter API) for audio and VideoToolbox for video encoding. Example code snippets are shown below:

AudioStreamBasicDescription ... // create converter
AudioConverterFillComplexBuffer(...); // perform conversion

GPUImage is used for real‑time video beautification before encoding. Key classes include GPUImageVideoCamera, GPUImageView, GPUImageFilter, GPUImageFilterGroup, and GPUImageBeautifyFilter.

Encoding Formats :

Video: H.265, H.264, MPEG‑4, containers TS, MKV, AVI, MP4.

Audio: G.711µ, AAC, Opus, containers MP3, OGG, AAC.

Streaming Protocols :

RTMP : Flash‑based, widely supported in China, higher latency (2‑5 s).

HTTP‑FLV : Simpler TCP‑based streaming, lower latency than RTMP.

HLS : Apple’s HTTP‑based protocol, works in browsers and mobile browsers, higher latency but firewall‑friendly.

RTP : UDP‑based, used for real‑time video conferencing and surveillance.

Comparison of protocols (RTMP, HTTP‑FLV, HLS) is illustrated in Figure 2.

Container Formats :

FLV structure includes a file header, multiple tags (audio, video, script), and previous‑tag‑size fields. Detailed tag fields (type, data size, timestamp, stream ID) are described with tables and diagrams (Figures 1, 8, 9).

Pull (Playback) Process :

Parse protocol (RTMP, HTTP‑FLV, HLS) from URL.

Demux (de‑containerize) to separate audio and video streams.

Decode using software (FFmpeg) or hardware (VideoToolbox on iOS, MediaCodec on Android).

Render video with OpenGL (YUV) and audio with AudioQueue.

Example HLS playback code for mobile browsers:

<video controls autoplay>
  <source src="xxx.m3u8" type="application/vnd.apple.mpegurl"/>
</video>

The article concludes with a summary of key quality metrics (bitrate, frame rate, resolution) and a preview of the next installment, which will dive into a real‑world case study of Baidu Tieba live streaming.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

mobile developmentiOSVideo EncodinghlsRTMPaudio video processing
Baidu Intelligent Testing
Written by

Baidu Intelligent Testing

Welcome to follow.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.