eXport-it, android  UPnP Client/Server

eXport-it android UPnP/HTTP Client/Server

Android


en Android-fildeling ansøgning til video, lyd, billeder og ebøger




eXport-it FFmpeg



Hvad er FFmpeg-biblioteket?

FFmpeg (https://www.ffmpeg.org/) er en komplet løsning på tværs af platforme til at optage, konvertere og streame lyd og video. FFmpeg er den førende multimedieramme, der er i stand til at afkode, kode, transkode, mux, demux, streame, filtrere og afspille stort set alt, hvad mennesker og maskiner har skabt. Det understøtter de mest obskure gamle formater op til forkant. Lige meget om de er designet af en standardkomité, samfundet eller et selskab.

Det er også meget bærbart: FFmpeg kompilerer, kører og videregiver vores testinfrastruktur FATE på tværs af Linux, Mac OS X, Microsoft Windows, BSD'erne, Solaris osv... under en lang række byggemiljøer, maskinarkitekturer, og konfigurationer.

Selve FFmpeg-biblioteket er under LGPL 2.1-licens. Aktivering af visse eksterne biblioteker (såsom libx264) ændrer licensen til at være GPL 2 eller nyere.

Hvordan er dette bibliotek integreret i Android-applikationen

Jeg brugte ffmpeg-android-maker-scriptet (bidragydere: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) til at kompilere bibliotekerne. Dette script downloader kildekoden til FFmpeg fra https://www.ffmpeg.org og bygger biblioteket og samler det til Android. Scriptet producerer delte biblioteker (*.so-filer) samt header-filer (*.h-filer).

Hovedfokus for ffmpeg-android-maker er at forberede delte biblioteker til problemfri integration i et Android-projekt. Scriptet forbereder 'output'-biblioteket, der er beregnet til at blive brugt. Og det er ikke det eneste, dette projekt gør. ffmpeg-android-producentens kildekode er tilgængelig under MIT-licensen. Se LICENSE.txt-filen for flere detaljer på https://github.com/Javernaut/ffmpeg-android-maker/ eXport-it FFmpeg-bibliotekerne er netop kompileret med libaom, libdav1d, liblame, libopus og libtwolame...men ikke alle tilknyttede biblioteker.

For at udvikle Java-understøttelsen til FFmpeg og køre den på Android 7.1 til 12, startede jeg fra MobileFFmpeg-projektet dokumenteret på https://github.com/tanersener/mobile-ffmpeg/ af Taner Sener, som ikke længere vedligeholdes ... og er licenseret under LGPL 3.0 ...

Til sidst forberedte jeg et JNI Android Studio-projekt med bibliotekerne, inkluderer filer og Java-supportkode og genererer en .aar-biblioteksfil til at integrere som et ekstra bibliotek i mine eksisterende projekter.


Sådan starter du en multicast-kanal

For at starte en multicast-kanal skal du bruge en klient for at få adgang til en UPnP-server på dit lokale netværk (Wi-Fi) med FFmpeg-understøttelse. Denne server skal svare med listen over de filer, den eksporterer. Hvis denne server har FFmpeg-understøttelse, skal en lille tekst "Som en kanal" vises i rødt i slutningen af ​​den øverste linje på listesiden. Når teksten er "rød", fungerer et klik på "afspil"-knappen som før med UPnP-protokollen. Hvis du klikker på teksten, skulle den blive "grøn", og klik på "afspil"-knappen, efter at have valgt video- eller lydfiler, skulle starte en "kanal".

De valgte mediefiler afspilles tilsyneladende på samme måde som gennem UPnP, bortset fra at startforsinkelsen er længere på grund af yderligere opgaver. Du skal lade denne klient afspille mediefilerne for at holde pipen aktiv.

Brug af dette rør på andre enheder

IP-multicast virker ikke over internettet, det virker kun på lokalt netværk og derfor hovedsageligt på Wi-Fi. En multicast-datakanal kan deles af mange klienter samtidigt. Du sender et mediedataflow på dit Wi-Fi-netværk og viser disse data på tilsluttede enheder, næsten synkront, kun forsinkelsesforskellen.

Med UPnP- eller HTTP-streaming kræver hver enhed båndbredden af ​​den viste video, og den globale båndbredde er summen af ​​begge trafik. Med multicast-streaming sender vi ét dataflow på LAN, som deles mellem flere klienter.

Hvis du bruger en anden klient på dit netværk efter at have startet en kanal, bør du se en ekstra linje i klientens hovedvindue. Bare et klik på denne linje skulle starte showet.

Det er også muligt at bruge andre produkter som VLC, SMplayer, ... til at vise en video eller lytte til musik distribueret over en multicast-kanal ved blot at bruge "UDP"-URL'en vist på eXport-it-klienten.

For at stoppe en multicast-kanal

Den gode måde at stoppe en multicast-kanal på er at stoppe den på den klient, som du startede den på, fordi denne kanal styres der. Afspilning til slutningen af ​​streamede mediefiler bør også give slutningen på showet.