Eine mobile Plattform für die Erstellung von Medieninhalten

Eine mobile Plattform für die Erstellung von Medieninhalten

Itransition hat Technologieforschung betrieben, ein Proof-of-Concept erstellt und mobile iOS- und Android-Apps für die Erstellung von Medieninhalten entwickelt, um dem Kunden zu einer Serie-B-Finanzierung zu verhelfen.

Kontext

Unser Kunde, ein europäisches Start-up-Unternehmen, hatte die Idee für eine mobile Audio- und Videobearbeitungs-App, die die Erstellung, Betrachtung und Verbreitung von Medien ermöglicht. Die App richtet sich an Musikkünstler und -produzenten und ermöglicht es ihnen, unabhängig von ihrer Erfahrung und ihrem Hintergrund, Audio- und Videoinhalte zu erstellen, zu veröffentlichen und zu vertreiben. Und dank der Funktionen der Lösung für soziale Netzwerke könnten Künstler entdeckt und ihre Inhalte wiederverwendet werden, wodurch sie an Popularität und Monetarisierung gewinnen würden.

Der Kunde beschloss, mit der Entwicklung von Audiobearbeitungsfunktionen zu beginnen, um diese Hypothese zu testen, da er der Meinung war, dass dies für die Zielgruppe der App wichtiger sei. Sie wollten mit der Audiobearbeitung in Echtzeit beginnen, um das Produkt zu bewerben und den Kreis der Beteiligten zu erweitern. Später wurde die Videobearbeitungsfunktionalität in den Projektumfang aufgenommen.

Der Kunde brauchte einen Technologiepartner für Forschung und Entwicklung und wandte sich aufgrund einer Empfehlung eines Kunden von Itransition an uns. In Anbetracht unserer Erfahrung in der Entwicklung kundenspezifischer mobiler Anwendungen und im Medien- und Unterhaltungsbereich entschied man sich, uns mit dem Projekt zu beauftragen.

Lösung

Entdeckungsphase & POC-Lieferung

Audio-Funktionen für die iOS-App

Wir schlugen vor, einen PoC der Audiofunktionalität für iOS zu erstellen, da die Idee der App die Integration neuer Technologien beinhaltete und die Bedürfnisse der Zielgruppe unklar waren und iOS am besten geeignet war, beides zu testen. In nur sechs Wochen führte unser Team eine Geschäftsanalyse durch, dokumentierte die Anforderungen des Kunden, führte eine Technologierecherche durch und lieferte den PoC.

Die meisten Funktionen konnten mit bestehenden Bibliotheken und gelegentlichem Feintuning implementiert werden, aber unser Team musste die Autotune-Implementierung recherchieren und wählte AudioKit als die am besten geeignete Bibliothek.

Nach der Erkundungsphase erstellten wir einen PoC mit den wichtigsten Funktionen und dem beabsichtigten Look and Feel. Zu den implementierten Funktionen gehörten Sprachautotuning, Rauschunterdrückung, Änderung der Tonqualität sowie Echo- und Hoch- oder Tieftoneffekte. Der Kunde bewertete den POC und genehmigte die Entwicklung der iOS-Videobearbeitungsfunktionalität sowie der vollständigen Android-App-Version.

Recording a song and editing lyrics

Haftungsausschluss: Gemäß der Geheimhaltungsvereinbarung, die wir unterzeichnet haben, können wir die Screenshots des echten Systems nicht veröffentlichen. Für diese Fallstudie haben wir ähnliche Screenshots erstellt, um dem Leser einen Eindruck von der Lösung zu vermitteln.

Hauptentwicklungsphase

Funktionen für die Verwaltung von Audioinhalten in der iOS-App

Während AudioKit für den PoC ausreichend war, sind wir für die eigentliche Anwendung auf die Superpowered-Bibliothek mit C++ und Swift umgestiegen. Wir fügten auch Funktionen für die Aufnahme, Autorisierung und Videoabstimmung mit Masken hinzu, die über die Banuba-API integriert wurden. Darüber hinaus bereitete der Designer des Kunden JSON-Dateien für Animationen vor, die wir mit Hilfe des Lottie SDK herunterluden und verknüpften.

Zu den weiteren Funktionen, die in dieser Phase geliefert wurden, gehören:

  • Aufnahme von Tracks mit Beats aus dem Katalog und optionaler Anwendung von Audioeffekten
  • Veröffentlichen von Tracks
  • Ansehen und Anhören der in der Anwendung veröffentlichten Tracks, einschließlich derer im Haupt-Feed, in den Profilen anderer Nutzer und auf dem Beat-Bildschirm
  • Reagieren auf veröffentlichte Musikvideos in allen Feeds
  • Erstellen und Bearbeiten von Text
  • Jedes veröffentlichte Musikvideo in der Anwendung als Datei ohne Wasserzeichen teilen oder die Dateien herunterladen und mit anderen Nutzern teilen

Private Betatests

Bevor der Wechsel zur Android-App-Entwicklung führte der Kunde Beta-Tests für iOS-Nutzer über TestFlight durch den Apple Store durch. Er lud 100 Musikkünstler und Inhaltskonsumenten ein, die Lösung zu testen.

Wir verwendeten Google Analytics, um die Metriken zu sammeln und die durchschnittliche Sitzungszeit, das Engagement der Nutzer, die Pfade und andere Daten zu verfolgen. Auf der Grundlage der gesammelten Informationen traf der Produktverantwortliche Entscheidungen zur Feinabstimmung des App-Konzepts, um die UX zu verbessern und die aktive Sitzungszeit zu verlängern. Beispielsweise optimierte der Kunde die Herausforderungsfunktion und konnte die aktive Sitzungszeit um das Dreifache erhöhen.

Entwicklung einer Android-App

Wir haben die Superpowered-Bibliothek sowohl für die Android- als auch für die iOS-App-Entwicklung verwendet. Wir haben auch die Oboe-Bibliothek verwendet, um niedrige Latenzzeiten für Android-Geräte zu ermöglichen. Sie half dabei, die vom Betriebssystem benötigte Zeit für die Tonverarbeitung zu reduzieren und den Ton vom Mikrofon des Benutzers sofort zu erfassen.

Um die Videobearbeitungsfunktionen bereitzustellen, untersuchte das Team von Itransition Mediencodecs. Wir wählten die Codecs VP8, VP9, H.264 und H.265 aus und verglichen sie anhand der Codierungs-/Decodierungszeit, der für die Codierung/Decodierung benötigten Prozessor- und Speicherressourcen, des Komprimierungsgrads und der Videoqualität. Am Ende haben wir uns für H.264 entschieden, da es alle unsere Anforderungen erfüllt.

Für ein besseres Nutzererlebnis sollten Videos sofort abgespielt werden, wenn der App-Feed gescrollt wird, aber einige Nutzer können eine geringe Internet-Bandbreite haben. Um diesen potenziellen Nachteil abzumildern, haben wir eine dynamische Codec-Auswahl auf den Geräten für die Aufnahme eines Videos implementiert und ein CDN eines Drittanbieters verwendet, das Videodateien durch Transkodierung im laufenden Betrieb liefert und sie je nach den Bandbreitenkonfigurationen der Nutzer in ein einheitliches Format bringt.

Wir definierten die Parameter als HD-Video, Bitrate 2,3-3,5 Mbit/s, 60 fps und Codec H.264. Für die volle HD-Auflösung mit dem H.264-Codec erlaubt Google die Verwendung von bis zu sechs Decodern, was bedeutet, dass sechs Videoströme gleichzeitig decodiert werden können.

Wenn Nutzer durch den Inhalt der App scrollen, sehen sie mindestens drei Videos: das Hauptvideo in der Bildschirmmitte, das vorherige und das nächste Video. Jeder Videostream erfordert eine Neuinitialisierung des Decoders, was Zeit kostet und eine reibungslose Videodarstellung behindert. Außerdem wünschte der Kunde eine zweidimensionale Darstellung mit Scrollen nach oben und unten oder nach links und rechts. Für das Vorladen verwendeten wir das Cache-System von ExoPlayer, das Decoder einsetzt, um ein reibungsloses Laden der Medien zu gewährleisten.

Ein weiteres Problem lag in der CDN-Nutzung. Der Video-Editor muss den bereits heruntergeladenen Cache bekommen, um reibungslos zu starten, aber der Videoinhalt kann aufgrund der geringen Bandbreite von schlechter Qualität sein. Wir haben die anfänglichen Cache-Dateien durch qualitativ hochwertigere ersetzt, während der Benutzer das Video bearbeitet.

Während iOS über fortschrittliche Tools wie das AVFoundation-Framework zur Dekodierung von Videos verfügt, gibt es solche Instrumente für Android nicht. Daher haben wir ein brandneues Google-Repository für Chrome OS verwendet, das einen Ansatz für grundlegende Videokompositions-/Bearbeitungsvorgänge auf Android und Chrome OS bietet. Es zeigte die Überlagerung eines Videos mit einem anderen und deren Verschiebung während der Wiedergabe, wobei jedes Video eine andere Auflösung hat. Dieser Prozess basiert auf ExoPlayer und erfordert keine manuelle Dekodierung.

Das Repository ermöglicht auch optionale Videoeffekte wie Rotation, Transparenz, Skalierung, Farbfilter, Beschleunigung, Verlangsamung und deren Kombination in Echtzeit. Wir haben die Grundidee des Repositorys auf die Videobearbeitungsfunktionen des Kunden übertragen. Unser Team nahm auch Änderungen am Szenenmodell vor, während der Editor die Änderungen automatisch für alle neuen Frames zusammen mit der Anzeige von Tracking-Frames implementierte. Im Gegensatz zu Google verwendete unser Team denselben Code für die Vorschau und die Erstellung von Ausgabedateien und wendete Swappy an, die Android-Bibliothek für Frame-Pacing, um ein reibungsloses Rendering und ein korrektes Frame-Pacing zu erreichen.

Zu diesem Zeitpunkt mussten wir noch die Funktionalität für Videoeffekte bereitstellen. Wir nutzten das Android SDK für die grundlegende Videobearbeitung, wie das Kombinieren von Dateien, Ändern der Größe, Neupositionieren, Drehen und Überlagern von Bildern/Videos/GIFs auf Videos. Zum Starten von OpenGL-Shadern, die Bilder entsprechend der Überlagerungsgrafik ändern, verwendete unser Team die MediaPipe-Bibliothek.

Video editing

Funktionalität sozialer Netzwerke

Als Nächstes haben wir die Funktionalität sozialer Netzwerke entwickelt, um den Nutzern der App zu ermöglichen:

  • Liken, kommentieren und teilen von Inhalten
  • Für ihre Inhalte werben
  • Die von anderen Nutzern erstellten Inhalte wiederverwenden
  • Teilnahme an Herausforderungen
  • Monetarisierung der erstellten Inhalte
Creating threads
Content for reuse
Participating in content reuse

Technologien

Java und Spring

Die Backends der Anwendungen

Firebase

Push-Benachrichtigungen und App-Absturzwarnungen

GitLab

Kontinuierliche Integration

Firebase App Distribution

Kontinuierliche Bereitstellung

PostgreSQL

Relationale Datenbank

Tarantool, Redis und Hazelcast

In-Memory-Datenbank

Die generierten Audio- und Videoinhalte sowie Autorisierungs- und Social-Media-Daten werden im Backend über REST API gespeichert.

Verfahren

Das Projekt wurde von einem gemischten Entwicklungsteam durchgeführt. Das Team des Kunden war für das Konzept der Lösung verantwortlich, forderte die Entwicklung von Funktionen und traf Entscheidungen über Änderungen, während unser Team technische Lösungen auswählte und für die technischen Aspekte verantwortlich war.

Übergang

Kunde

  • iOS-Entwicklungsteam
  • Android-Entwicklungsteam
  • Projektleiter
  • iOS-Entwicklungsteam
  • Backend-Entwicklungsteam
  • Designer
  • Stakeholder
  • Projektleiter
  • Produktinhaber
  • Tonerzeuger

Da es sich bei dem Kunden um ein sich schnell entwickelndes Startup handelt, mussten wir in einem hohen Tempo arbeiten und mit wechselnden Anforderungen und neuen Ideen umgehen. Aus diesem Grund haben wir Scrum mit einwöchigen Sprints praktiziert und Planungen, Vorplanungen/Groomings und Retros eingeführt.

Aufgrund des hohen Arbeitstempos zögerte der Kunde zunächst, Continuous Integration einzuführen und einen statistischen Code-Analyzer zu verwenden, weil er befürchtete, dass dies die Entwicklung verlangsamen würde. Nach der PoC-Auslieferung führten wir jedoch die CI und den statistischen Code-Analyzer in Übereinstimmung mit den besten Entwicklungspraktiken ein

Ergebnisse

Das Team von Transition lieferte mobile iOS- und Android-Apps für die Erstellung und Verteilung von Audio- und Videoinhalten für Benutzer. Mit unserer Unterstützung testete der Kunde die Machbarkeit der Lösung, lieferte einen Proof of Concept und entwickelte die Anwendungen. Als Ergebnis haben wir Folgendes erreicht:

  • Nachweis der Machbarkeit der Lösung mit dem PoC in sechs Wochen
  • Die Technologieforschung für die besten Tools zur Bereitstellung der Anwendungen wurde durchgeführt
  • Entwicklung der mobilen iOS- und Android-Apps, die eine Finanzierung der Serie B ermöglichten
  • Synchronisierte die Arbeit eines gemischten Teams und richtete Arbeitsprozesse ein, darunter Planungen, Retrospektiven, Schätzungen und kontinuierliche Bereitstellung