eXport-it, android  UPnP Client/Server

eXport-it android UPnP/HTTP Client/Server

Android


ein Android-Filesharing-Anwendung für Video, Audio, Bilder und E-Books




eXport-it FFmpeg



Was ist die FFmpeg-Bibliothek?

FFmpeg (https://www.ffmpeg.org/) ist eine vollständige, plattformübergreifende Lösung zum Aufnehmen, Konvertieren und Streamen von Audio und Video. FFmpeg ist das führende Multimedia-Framework, das so ziemlich alles decodieren, codieren, transcodieren, muxen, demuxen, streamen, filtern und wiedergeben kann, was Menschen und Maschinen erstellt haben. Es unterstützt die obskursten alten Formate bis hin zu den modernsten. Egal, ob sie von einem Standardkomitee, der Community oder einem Unternehmen entworfen wurden.

Es ist auch sehr portabel: FFmpeg kompiliert, führt aus und übergibt unsere Testinfrastruktur FATE über Linux, Mac OS X, Microsoft Windows, die BSDs, Solaris usw. unter einer Vielzahl von Build-Umgebungen, Maschinenarchitekturen, und Konfigurationen.

Die FFmpeg-Bibliothek selbst steht unter der LGPL 2.1-Lizenz. Das Aktivieren bestimmter externer Bibliotheken (wie libx264) ändert die Lizenz auf GPL 2 oder höher.

Wie wird diese Bibliothek in die Android-Anwendung integriert

Ich habe das ffmpeg-android-maker-Skript (Beitragende: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) verwendet, um die Bibliotheken zu kompilieren. Dieses Skript lädt den Quellcode von FFmpeg von https://www.ffmpeg.org herunter und erstellt die Bibliothek und assembliert sie für Android. Das Skript erstellt gemeinsam genutzte Bibliotheken (*.so-Dateien) sowie Header-Dateien (*.h-Dateien).

Das Hauptaugenmerk von ffmpeg-android-maker liegt auf der Vorbereitung gemeinsam genutzter Bibliotheken für die nahtlose Integration in ein Android-Projekt. Das Skript bereitet das `output`-Verzeichnis vor, das verwendet werden soll. Und das ist nicht das einzige, was dieses Projekt tut. Der Quellcode des ffmpeg-Android-Herstellers ist unter der MIT-Lizenz verfügbar. Siehe die LICENSE.txt-Datei für weitere Details auf https://github.com/Javernaut/ffmpeg-android-maker/ Die eXport-it FFmpeg-Bibliotheken sind nur mit libaom, libdav1d, liblame, libopus und libtwolame kompiliert ... aber nicht mit allen zugehörigen Bibliotheken.

Um die Java-Unterstützung für FFmpeg zu entwickeln und auf Android 7.1 bis 12 auszuführen, habe ich mit dem MobileFFmpeg-Projekt begonnen, das auf https://github.com/tanersener/mobile-ffmpeg/ von Taner Sener dokumentiert ist und nicht mehr gepflegt wird ... und ist lizenziert unter LGPL 3.0 ...

Schließlich habe ich ein JNI-Android-Studio-Projekt mit den Bibliotheken vorbereitet, Dateien und Java-Unterstützungscode eingeschlossen und eine .aar-Bibliotheksdatei generiert, um sie als zusätzliche Bibliothek in meine bestehenden Projekte zu integrieren.


So starten Sie einen Multicast-Kanal

Um einen Multicast-Kanal zu starten, müssen Sie einen Client verwenden, um auf einen UPnP-Server in Ihrem lokalen Netzwerk (Wi-Fi) mit FFmpeg-Unterstützung zuzugreifen. Dieser Server sollte mit der Liste der Dateien antworten, die er exportiert. Wenn dieser Server über die FFmpeg-Unterstützung verfügt, muss am Ende der obersten Zeile der Listenseite ein kleiner Text „As a channel“ in Rot angezeigt werden. Wenn der Text "rot" ist, funktioniert das Klicken auf die Schaltfläche "Play" wie zuvor mit dem UPnP-Protokoll. Wenn Sie auf den Text klicken, sollte er "grün" werden und ein Klick auf die Schaltfläche "Play", nachdem Sie Video- oder Audiodateien ausgewählt haben, sollte einen "Kanal" starten.

Die ausgewählten Mediendateien werden anscheinend auf die gleiche Weise wie über UPnP abgespielt, außer dass die Startverzögerung aufgrund zusätzlicher Aufgaben länger ist. Sie müssen diesen Client die Mediendateien abspielen lassen, damit die Pipe aktiv bleibt.

Diese Pipe auf anderen Geräten verwenden

IP-Multicast funktioniert nicht über das Internet, es funktioniert nur im Local Area Network, also hauptsächlich über Wi-Fi. Ein Multicast-Datenkanal kann von vielen Clients gleichzeitig gemeinsam genutzt werden. Sie senden einen Mediendatenstrom über Ihr Wi-Fi-Netzwerk und zeigen diese Daten auf verbundenen Geräten nahezu synchron an, nur die Latenzverzögerungsdifferenz.

Bei UPnP- oder HTTP-Streaming benötigt jedes Gerät die Bandbreite des angezeigten Videos und die globale Bandbreite ist die Summe aus beiden Datenverkehr. Beim Multicast-Streaming senden wir einen Datenfluss über das LAN, der von mehreren Clients geteilt wird.

Wenn Sie nach dem Starten eines Kanals einen anderen Client in Ihrem Netzwerk verwenden, sollten Sie eine zusätzliche Zeile im Hauptfenster des Clients sehen. Ein Klick auf diese Zeile sollte die Show starten.

Es ist auch möglich, andere Produkte wie VLC, SMplayer, ... zu verwenden, um ein Video anzuzeigen oder Musik zu hören, die über einen Multicast-Kanal verteilt wird, indem einfach die "UDP"-URL verwendet wird, die auf dem eXport-it-Client angezeigt wird.

p>

Um einen Multicast-Kanal zu stoppen

Die beste Methode zum Stoppen eines Multicast-Kanals besteht darin, ihn auf dem Client zu stoppen, auf dem Sie ihn gestartet haben, da dieser Kanal dort gesteuert wird. Das Abspielen bis zum Ende von gestreamten Mediendateien sollte auch das Ende der Show anzeigen.