Video-Streaming von der Android-Kamera zum Server

286

Ich habe viele Informationen darüber gesehen, wie man Videos vom Server auf ein Android-Gerät streamen kann, aber nicht viel darüber, ala Qik. Könnte mich hier jemand in die richtige Richtung weisen oder mir einen Rat geben, wie ich das angehen soll?

JCL
quelle
9
Ich würde auch gerne eine Antwort darauf sehen. Hast du dir schon was ausgedacht?
Jeremy White
Nein, habe das Streaming aufgegeben. Nur die MediaRecorder-API in die Einreichung zu schlagen, war hart genug. Sie könnten sich den sipdroid-Code ansehen, sie scheinen ihn zum Laufen gebracht zu haben.
JCL
Der Videocode ist jedoch nicht in der Sipdroid-Quelle online :(
Donal Rafferty
1
Sie können eine Komponente in ffmpeg in ffserver untersuchen.
Vinay
1
Ich habe eine Frage zu diesem Thema, die auch für Sie von Interesse sein könnte. Es geht darum, den Videostream über 3 g zu verschieben, sobald Sie die Videoaufnahme und den Containerteil abgeschlossen haben. bit.ly/vYpWGy
Michael

Antworten:

123

Ich habe ein Open-Source-Projekt gehostet, um das Android-Telefon für die IP-Kamera zu aktivieren:

http://code.google.com/p/ipcamera-for-android

Rohe Videodaten werden von LocalSocket abgerufen, und der MDAT MOOV von MP4 wurde vor dem Streaming zuerst überprüft. Das Live-Video ist im FLV-Format gepackt und kann über einen Flash-Video-Player mit integriertem Webserver abgespielt werden :)

Zhou Chang
quelle
26
Klicken Sie auf die Schaltfläche "Quelle". Wer auch immer diesen Kerl herabgestimmt hat, ist ein Werkzeug.
Nicholi
3
Es gibt mir Fehler .. wie java.lang.UnsatisfiedLinkError: Konnte nicht nur geladen werden: findLibrary hat null zurückgegeben .. Wenn jemand eine Lösung hat, dann teile sie bitte. Danke
anddev
1
@mpp: Die App hat NDK-Code. Sie können es selbst kompilieren oder die .so-Dateien aus der apk in diesem Google Code-Projekt unter "Downloads" herunterladen.
Turnsole
1
Ich erhalte auch den Fehler java.lang.UnsatisfiedLinkError. Bitte erwähnen Sie kurz die Schritte, um diesen Fehler zu beheben.
1
Für diejenigen, die den UnsatisfiedLinkError nicht verstehen: Sie müssen den C-Code mit dem NDK erstellen. Einfach gesagt, lauf ndk-build. Weitere Informationen finden Sie in der NDK-Dokumentation .
Paul Lammertsma
70

Ich habe einige Zeit gebraucht, aber ich schaffe es endlich, eine App zu erstellen, die genau das tut. Schauen Sie sich die Google-Codepage an, wenn Sie interessiert sind: http://code.google.com/p/spydroid-ipcamera/ Ich habe meinem Code viele Kommentare hinzugefügt (siehe hauptsächlich CameraStreamer.java), also sollte es so sein ziemlich selbsterklärend. Der schwierige Teil bestand darin, den RFC 3984 zu verstehen und einen geeigneten Algorithmus für den Paketierungsprozess zu implementieren. (Dieser Algorithmus verwandelt den vom MediaRecorder erzeugten mpeg4 / h.264-Stream laut rfc in einen schönen rtp-Stream.)

Tschüss

Simon
quelle
2
Vielen Dank! Derzeit kann ich es mit h264 nicht richtig machen .. und ich kann es nicht in h263 ändern (ich habe keine Ahnung, wie das geht). Trotzdem, danke Mann!
Yotes
1
Ich benutze das gleiche, aber wenn es darum geht, auf Android mit RTSP zu streamen, heißt es, dass Video nicht abgespielt werden konnte. Ich benutze VideoView. Können Sie bitte helfen?
Rohit Mandiwal
1
Funktioniert großartig (bis jetzt!) Ich verwende es, um Videos von Glass zu streamen (nach ein wenig Arbeit / Bearbeiten / Herausfinden), aber bisher kann ich es nur über einen Windows-basierten Browser (Chrome) mit dem verbinden VLC-Plugin. VLC auf Android / iPad oder einem anderen RTSP-Player nimmt den Stream nicht auf (einer von ihnen sah gut aus, versuchte jedoch, einen Stream basierend auf dem Gerätenamen zu erhalten, den dieser Code als 0 zurückgab und daher nicht auffindbar war). Trotzdem erhalten Sie nach einem Tag des Codierens dank Ihnen Ergebnisse, also ein großes Lob!
MacD
@MacD Verwenden Sie den Spydroid-IPcamera-Code (das gesamte Projekt oder nur einige Klassen? Können Sie es mir sagen?) Oder diese Bibliothek github.com/fyhertz/libstreaming für das Streaming in Google Glass? Vielen Dank!!
Bae
Hallo, kannst du erklären, wie man dieses Projekt in Android Studio implementiert
?
24

Ich beschäftige mich auch damit, und obwohl ich keine gute Lösung für Sie habe, habe ich es geschafft, den Videocode von SIPDroid zu finden:

http://code.google.com/p/sipdroid/source/browse/trunk/src/org/sipdroid/sipua/ui/VideoCamera.java

ObsidianX
quelle
Was sie dort getan haben, ist, dass sie mithilfe von RTP-Paketen auf einen Server streamen. Nun stellt sich die Frage, was auf dem Server getan wird. Was macht die
Transcodierung
Nein. Ich habe mich nicht für den SIPDroid-Ansatz entschieden, er war zu komplex. Ich habe dann etwas mit einem MJPEGServer gemacht
Azlam
19

Ich habe ein Open-Source-SDK namens Kickflip erstellt , um das Streamen von Videos von Android zu einem schmerzlosen Erlebnis zu machen.

Das SDK demonstriert die Verwendung der MediaCodec- API von Android 4.3 , um die Pakete des Gerätehardware-Encoders für RTMP direkt an FFmpeg zu leiten (mit librtmp) oder HLS- Streaming von H.264 / AAC leiten . Es zeigt auch OpenGL-Effekte in Echtzeit (Titel, Chroma Key, Fades) und Hintergrundaufnahmen.

Danke SO und vor allem Fadden .

dbro
quelle
Kann es auf einen HLS-fähigen Client streamen (nicht nur auf Ihren Server)?
4.
4
@dbro Ich versuche, mehr über Ihren Service zu erfahren, aber Sie benötigen meine Anmeldeinformationen, bevor ich Ihre Preise sehen kann. Es ist, als ob ihr E-Mail-Adressen sammelt. Wenn dies nicht Ihre Absicht ist, sollten Sie Preisinformationen zur Verfügung stellen: auf die gleiche Weise wie Parse und App Engine und viele andere.
Lerner
Kann eine Videokamera ein Video an Kickflip senden, dann geht es an ein Android-Handy? Wenn es welche Art von
Videokamera
11

Hier ist ein vollständiger Artikel über das Streaming von Android-Kamera-Videos auf eine Webseite.

Android Streaming Live-Kamera-Video zur Webseite

  1. Verwendetes Libstreaming auf Android App
  2. Auf der Serverseite Wowza Media Engine zum Dekodieren des Videostreams verwendet
  3. Schließlich wird jWplayer verwendet, um das Video auf einer Webseite abzuspielen.
Günstling
quelle
Dies verwendet Closed-Source-Komponenten. Irgendwelche Open-Source-Alternativen?
Raj
Sie können JavaCV dafür verwenden. Ich habe es in meinem Projekt verwendet, um Live-Streaming vom Android-Gerät zum Wowza-Medienserver zu machen. Sie können auch github.com/begeekmyfriend/yasea
Chinthaka Devinda verwenden.
streamen libs kostenlos?
Akrramo
Können wir Soundkarten als Eingangs-Audioquelle und nicht als Mikrofon im Libstreaming verwenden?
user2980181
5

Ich kann das Live-Kamera-Video vom Handy an meinen Server senden. Über diesen Link sehen Sie den Link

Verweisen Sie auf den obigen Link. In diesem Link befindet sich eine Beispielanwendung. Sie müssen lediglich Ihre Service-URL in RecordActivity.class festlegen.

Beispiel als: ffmpeg_link = "rtmp: // yourserveripaddress: 1935 / live / venkat";

Über diesen Link können wir Videos vom Typ H263 und H264 senden.

Venkat
quelle
Ich habe den Code über den obigen Link verwendet, konnte aber nicht einmal mit der Aufnahme beginnen. Ausnahme "Kein Video zum Streamen". Hast du eine Idee dazu?
Akhilesh Sk
@AkhileshSk Mit dem obigen Code können Sie das Live-Video über die RTMP-URL an Ihren Server senden. Es ist nicht für Aufnahmezwecke. Wenn Sie das Video aufnehmen möchten, müssen Sie es auf der Serverseite aufnehmen.
Venkat
Hey @ Venkat ist es möglich, ein Live-Video von einer Kamera auf ein Android-Handy zu senden. Haben Sie einige Code-Links, wie die Verwendung von Youtube Live usw.
Lutaaya Huzaifah Idris
@LutaayaHuzaifahIdris ja es ist möglich. Ich habe vorher daran gearbeitet.
Venkat
Hallo @Venkat, können Sie mir dabei helfen, da ich die Datei
RecordActivity.class
1

Überprüfen Sie die Yasea- Bibliothek

Yasea ist ein Android-Streaming-Client. Es codiert YUV- und PCM-Daten von Kamera und Mikrofon zu H.264 / AAC, kapselt in FLV und überträgt über RTMP.

Feature:

  1. Android Mini API 16.
  2. H.264 / AAC-Hardcodierung.
  3. H.264 Softcodierung.
  4. RTMP-Streaming mit Status-Callback-Handler.
  5. Dynamische Ausrichtung von Porträt und Landschaft.
  6. Heißschalter der vorderen und hinteren Kamera.
  7. Aufnahme auf MP4 während des Streamings.
Hamed Ghadirian
quelle
0

Mux (meine Firma) hat eine Open-Source-Android-App , die RTMP auf einen Server überträgt, einschließlich der Einrichtung der Kamera und der Benutzerinteraktionen. Es wurde für das Streaming zur Live-Streaming-API von Mux entwickelt, kann jedoch problemlos zu jedem RTMP-Einstiegspunkt gestreamt werden.

heff
quelle
-7

Abhängig von Ihrem Budget können Sie eine Raspberry Pi-Kamera verwenden, die Bilder an einen Server senden kann. Ich füge hier zwei Tutorials hinzu, in denen Sie viele weitere Details finden:

Dieses Tutorial zeigt es Ihnen wie eine Raspberry Pi-Kamera verwenden und Bilder auf einem Android-Gerät anzeigen

Dies ist das zweite Tutorial, in dem Sie eine Reihe von Tutorials zum Echtzeit-Video-Streaming zwischen Kamera und Android-Gerät finden

Ezu
quelle
aus dem Zusammenhang
Vikas Kandari