Medien und Streaming ist eine der wichtigsten Kompetenzen der modernen mobilen Entwicklung. Laut Statista (2025) wird der globale Video-Streaming-Markt bis 2027 die 100-Milliarden-Dollar-Marke überschreiten. Mobile Geräte machen über 60 % des gesamten Datenverkehrs von Streaming-Plattformen aus. Ein Entwickler muss Protokolle, Player, Content-Schutzmechanismen und Funktionen wie Picture-in-Picture verstehen. Hochwertiges Streaming in mobilen Apps erfordert die Beherrschung all dieser Technologien.
Das Wichtigste
HTTP Live Streaming (HLS) ist ein von Apple entwickeltes Protokoll für Streaming in mobilen Apps. Es teilt Video in kleine Segmente (normalerweise 6–10 Sekunden) und überträgt sie über normales HTTP. Der Player lädt eine Playlist (.m3u8) herunter und lädt nacheinander Segmente, wobei er die Qualität an die Verbindungsgeschwindigkeit anpasst. HLS bietet zuverlässiges Streaming in mobilen Apps auf allen Apple-Geräten und ist der De-facto-Standard für iOS.
DASH (Dynamic Adaptive Streaming over HTTP) ist ein offener MPEG-Standard für die Auslieferung von Medien an mobile Apps. Im Gegensatz zu HLS verwendet DASH das MP4-Format für Segmente und ein XML-Manifest (MPD) anstelle von .m3u8. DASH bietet mehr Kontrolle über Codecs und unterstützt mehr Formate. Die Wahl zwischen HLS und DASH ist eine entscheidende Entscheidung bei der Entwicklung von Streaming für mobile Geräte. Der Vergleich der Protokolle ist in der folgenden Tabelle dargestellt.
| Parameter | HLS | DASH |
|---|---|---|
| Entwickler | Apple | MPEG (offener Standard) |
| Playlist-Format | .m3u8 | .mpd (XML) |
| Segmente | .ts oder fMP4 | fMP4 (beliebiger Codec) |
| Native Unterstützung | iOS, macOS, tvOS | Android, Web |
| Adaptive Bitrate | Ja (avc1, mp4a) | Ja (beliebiger Codec) |
| Niedrige Latenz | LL-HLS (2–5 s) | LL-DASH (2–5 s) |
In der Praxis wählen iOS-Apps HLS — AVPlayer arbeitet nativ damit. Für Android wird DASH dank ExoPlayer bevorzugt. Beide Protokolle sind für Medien-Streaming auf mobilen Geräten geeignet. Bei IT Sectr verwenden wir beide Technologien und empfehlen, das Protokoll basierend auf der Zielplattform zu wählen.
Adaptive Bitrate (ABR) ist ein Mechanismus, bei dem der Player automatisch die Videoqualität basierend auf der Verbindungsgeschwindigkeit auswählt. Der Stream wird in mehreren Bitraten (360p, 720p, 1080p, 4K) codiert. Der Player wechselt ohne Pausen zwischen ihnen. Codecs: H.264 (AVC) — Basis, H.265 (HEVC) — 50% effizienter, VP9 und AV1 — offene Alternativen für Android.
Für Hardware-Dekodierung in mobilen Apps ist es wichtig, den richtigen Codec zu wählen. Hardware Decoding nutzt den GPU/Videoprozessor des Geräts und verbraucht weniger Akku. Software Decoding läuft auf der CPU — wird verwendet, wenn Hardware-Dekodierung nicht verfügbar ist. IT Sectr empfiehlt, die Codec-Unterstützung immer über MediaCodec (Android) oder AVAssetTrack (iOS) zu prüfen, um eine optimale Medienwiedergabe auf mobilen Geräten zu gewährleisten.
ExoPlayer ist ein Media-Player von Google für Android, optimiert für die Medienwiedergabe in mobilen Apps. Im Gegensatz zu MediaPlayer ist ExoPlayer nicht an Hardware-Dekodierung gebunden und unterstützt benutzerdefinierte Schemata über Erweiterungsmodule. Er funktioniert mit HLS, DASH, SmoothStreaming und RTSP. ExoPlayer ist der Hauptplayer für YouTube, Google TV und Android TV.
AVPlayer und AVPlayerViewController sind die Player von Apple für iOS, macOS, tvOS. AVPlayer ist eine Low-Level-API, AVPlayerViewController ein fertiger UI-Wrapper mit PiP und AirPlay. Hauptunterschiede: ExoPlayer bietet volle Kontrolle über Pufferung und Rendering, AVPlayerViewController schnelle Integration mit minimalem Code. Die Wahl des Players beeinflusst direkt die Qualität des Streamings in mobilen Apps.
// ExoPlayer — grundlegende Player-Einrichtung auf Android
val player = ExoPlayer.Builder(this)
.setMediaSource(ProgressiveMediaSource.Factory(DefaultHttpDataSource.Factory()))
.build()
val mediaItem = MediaItem.fromUri("https://example.com/stream.m3u8")
player.setMediaItem(mediaItem)
player.prepare()
player.playWhenReady = true
Der Code zeigt die minimale ExoPlayer-Initialisierung: Instanzerstellung, Medienelement setzen und Wiedergabe starten. ExoPlayer behandelt den Activity-Lebenszyklus automatisch durch player.release() in onStop. Für Android TV oder PiP ist eine zusätzliche Lebenszyklusbehandlung über PlayerView erforderlich — dies ist besonders wichtig beim Einrichten von Streaming für mobile Apps.
Transcoding ist die Konvertierung von Video von einem Format in ein anderes. Es wird verwendet, um Medienströme für verschiedene mobile Geräte zu optimieren (z. B. H.264 → H.265). Auf mobilen Geräten ist Transcoding über MediaCodec (Android) oder AVAssetExportSession (iOS) möglich. Transcoding ist ressourcenintensiv und entlädt den Akku — führen Sie es im Hintergrund über WorkManager oder BGTaskScheduler durch.
Digital Rights Management (DRM) sind Systeme zum Schutz von Medieninhalten vor unbefugtem Kopieren. Für das Streaming von Premium-Medien in mobilen Apps werden drei Haupttechnologien verwendet: Widevine (Google), FairPlay (Apple) und PlayReady (Microsoft). Ohne DRM können Premium-Dienste (Netflix, Spotify, Disney+) keine Inhalte verbreiten.
Widevine ist der DRM-Schutzstandard für Android, verfügbar in drei Stufen: L3 (Software-Verschlüsselung), L2, L1 (Hardware-Verschlüsselung, nur Trusted Execution Environment). FairPlay ist Apples exklusives System und verwendet SVP (Secure Video Pipeline) auf Chipebene. PlayReady ist Microsofts System, verbreitet auf Xbox- und Windows-Geräten.
Multi-DRM ist ein Ansatz, bei dem Sie eine einzige Plattform zur Verwaltung aller DRM-Schlüssel verwenden. Beispiel: EZDRM oder Verimatrix. Sie geben Lizenzen für Widevine, FairPlay und PlayReady über eine einheitliche API aus. Multi-DRM ist besonders relevant für Premium-Medien auf mobilen Geräten. Bei IT Sectr implementieren wir Multi-DRM über Aggregatoren — das spart Zeit und Geld im Vergleich zur Integration jedes einzelnen DRM.
Audio Focus (Android) ist ein Audiostream-Verwaltungssystem für die Medienwiedergabe in mobilen Apps. Wenn Ihre App Audio Focus anfordert, pausieren andere Apps (Musik, Podcasts) oder reduzieren ihre Lautstärke (Ducking). Ohne Audio Focus würden zwei Apps gleichzeitig abspielen und Lärm verursachen.
Android unterteilt Audioströme in Typen: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Für einen Media-Player müssen Sie AudioManager.AUDIOFOCUS_GAIN anfordern. Bei Fokusverlust (eingehender Anruf) müssen Sie die Medienwiedergabe pausieren und nach Rückkehr des Fokus fortsetzen. Implementierung über AudioManager.OnAudioFocusChangeListener.
Audio Session (iOS) ist das Äquivalent zu Audio Focus für Medien-Apps auf Apple-Mobilgeräten. Es wird über AVAudioSession.sharedInstance() konfiguriert. Kategorien: .playback (erforderlich für Video), .soloAmbient (Standard, stumm bei Sperrung), .playAndRecord (für Aufnahme). Für Streaming verwenden Sie .playback mit der Option .allowAirPlay.
Picture-in-Picture (PiP) ist ein Modus, bei dem Medieninhalte in einem kleinen schwebenden Fenster weiter abgespielt werden, wenn die App minimiert oder zu einem anderen Bildschirm navigiert wird. PiP ist zum Standard für Medien-Apps auf mobilen Geräten geworden — iOS (seit iPadOS 13) und Android (seit Android 8.0).
Auf Android wird PiP über Activity.isInPictureInPictureMode() und PictureInPictureParams.Builder aktiviert. Die App muss sich im Multi-Window-Modus befinden. MediaSession wird zur Steuerung der Medienwiedergabe aus dem PiP-Fenster benötigt. Geben Sie im Manifest android:supportsPictureInPicture="true" an.
AirPlay ist Apples Protokoll zum Streamen von Medien auf Apple TV, HomePod und kompatible Smart-TVs. Auf iOS wird es über AVRoutePickerView oder MPNowPlayingInfoCenter implementiert. Auf Android ist das Äquivalent Google Cast SDK (Chromecast). Beide Technologien erfordern Konfiguration in der Binärdatei und Player-Unterstützung. Hochwertiges Streaming in mobilen Apps ist ohne eine davon nicht möglich.
Häufig gestellte Fragen
Für iOS ist HLS besser — es wird nativ von AVPlayer unterstützt. Für Android und plattformübergreifende Apps ist DASH vorzuziehen, da ExoPlayer eine bessere DASH-Unterstützung und flexiblere Pufferungskontrolle bietet. Die Wahl des Protokolls beeinflusst direkt das Streaming in mobilen Apps.
DRM ist obligatorisch nur wenn Sie Premium-Medieninhalte (Filme, Musik, Kurse) verbreiten. Für benutzergenerierte Inhalte oder Free-to-Air-Übertragungen ist DRM nicht erforderlich. IT Sectr empfiehlt, ohne DRM zu beginnen und es nur bei Bedarf hinzuzufügen.
ExoPlayer ist ein anpassbarer Media-Player für Android mit Unterstützung für DASH, HLS und SmoothStreaming. AVPlayerViewController ist ein nativer iOS-Player für HLS mit PiP und AirPlay. ExoPlayer bietet mehr Kontrolle, AVPlayerViewController benötigt weniger Code. Beide bieten eine hochwertige Medienwiedergabe in mobilen Apps.
PiP ist ein Modus, bei dem Medieninhalte in einem kleinen Fenster weiter abgespielt werden, wenn die App minimiert wird. Auf iOS wird es über den AVPlayerViewController-Delegaten aktiviert, auf Android über PictureInPictureParams. Erfordert Manifest-Konfiguration und Lebenszyklus-Behandlung.
Audio Focus (Android) und Audio Session (iOS) verwalten die gleichzeitige Audiowiedergabe aus verschiedenen Quellen. Sie stellen sicher, dass Ihre Medien-App korrekt auf Anrufe, Benachrichtigungen und das Starten anderer Audio-Apps reagiert.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.