2016-06-30 10 views
1

Problem, das mich für die letzten 7 Tage beschäftigte, ist die Implementierung von Live-Video-Streaming von Android zu WowzaMediaEngine.Wie Live-Video von Android zu Wowza über RTMP streamen

Ich habe meine Forschung auf offiziellen Wowza-Seiten begonnen und war begeistert von der Existenz der GoCoderSDK-Bibliothek für Android und IOS. „Small“ Problem ist der Preis (10k erstes Jahr 2k jährlich) und da ich Anwendung am Bau für „kleinen“ Client, habe ich andere Bibliotheken versucht:

  • libstreaming ok ist, meiner Meinung nach hässlich codierte (keine harten Gefühle), mit vielen Bugs zu beheben, aber mit ziemlich komplizierten Techniken (gut gemacht bei denen). Ich habe auf Nexus 5 Marshmallow getestet und es funktionierte nach einer Weile mit MediaCodec und niedriger Videoauflösung. Die Erhöhung der Auflösung würde zu MediaRecorder wechseln, was meistens nicht funktioniert. Auf dem KitKat-Gerät konnte ich es überhaupt nicht starten. Nach 3-4 Tagen der Implementierung der Implementierung habe ich aufgegeben. Lib Nähte nicht mehr gepflegt werden

  • Media Broadcasting Library sieht vielversprechend aus, aber habe es noch nicht versucht. Wirklich teuer. 500 $/Monat ist meiner Meinung nach einfach zu viel.

  • KickFlip ist ziemlich codiert, sieht gut aus, tolle Funktionen und sie haben die Unterstützung für RTMP/RTSP entfernt. Versucht, die Unterstützung wiederherzustellen und ist fehlgeschlagen.

  • RealTimeLibs Preis ist akzeptabel. Installierte Broadcast ME (Demo-App) von PlayStore, konnte keinen Stream initiieren. Demo-App stürzt ständig ab. Entmutigt, habe nicht versucht, sie zu kontaktieren.

Was gibt es zu tun GoCoderSDK zu kaufen, Bibliothek neu zu schreiben libstreaming (da ich mit ihm die besten Ergebnisse hatte) oder meine eigene Lösung zu schreiben (ich weiß nicht, wie viel Zeit es dauern würde). Riesige Multimedia-Erfahrung ist erforderlich (was ich nicht habe)?

Antwort

7

Nicht in Frage erwähnt, aber ich bin zufällig auf JavaCV Bibliothek gestolpert, aber Bewertungen waren nicht so toll. Auch ich habe hier einige positive Kommentare zu SO gesehen, also habe ich beschlossen, es auszuprobieren.

Zuerst ist es ziemlich verwirrend (javacv.jar importieren, javacpp.jar importieren, ffmpeg.jar importieren, eine Menge .so-Dateien zu jniLibs mit passenden Versionen hinzufügen usw.). Nach dem Betrachten von Beispielen und wenigen wütenden Posts. Die Antwort auf diese Frage (How to f****ing add JavaCV to Android Studio so I can use the f***ing annoying FFmpeg?) half mir wirklich sehr und mit Hilfe von Samuel Audet (zu dem ich wirklich dankbar bin), ist es mir gelungen, Video von Android über RTMP zu Wowza in Qualität und Videooptionen zu streamen, die ich einstellen möchte.

Seit i 7 Tagen nach der Arbeit an diesem und Gemeinschaft i boilerplate (or starterkit) android application for live streaming video to wowza media engine, dass viele andere wowza abhängige Anwendungen in Zukunft viel schneller gebaut werden so geschaffen haben im Gegenzug verloren haben.

+0

Es macht nur Software-Codierung, oder? Haben Sie ein Update über [Hardware-Kodierung mit ffmpeg auf Android] (https://trac.ffmpeg.org/wiki/HWAccelIntro)? Danke für das Teilen von BTW. – kpaxit

+0

@kpaxit Danke, ich weiß es zu schätzen. Ich denke, es ist nicht mit GPU, aber nicht sicher. Ich habe den JavaCV-Quellcode von FFMpegRecoder eingecheckt (https://github.com/bytedeco/javacv/blob/master/src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java) und soweit ich weiß, keine Verwendung von -hwaccel. Es wäre jedoch ein nettes Feature. Vielleicht, um Samuel direkt auf GitHub zu schreiben, wäre es großartig, wenn es durch einen einfachen Methodenaufruf auf der Recorder-Instanz ein- oder ausgeschaltet werden könnte. – bajicdusko

+0

Wie hast du deinen Wowza Server konfiguriert? – hunghd

Verwandte Themen