Streaming video dalla videocamera Android al server


286

Ho visto molte informazioni su come trasmettere video dal server a un dispositivo Android, ma non molto sull'altro modo, ala Qik. Qualcuno potrebbe indicarmi la giusta direzione qui, o darmi qualche consiglio su come affrontare questo?


9
Mi piacerebbe vedere una risposta anche a questo. Hai già trovato qualcosa?
Jeremy White,

No, ho rinunciato allo streaming. È stato abbastanza difficile battere l'API MediaRecorder nella presentazione. Potresti controllare il codice sipdroid, tuttavia, sembrano averlo fatto funzionare.
JCL,

Il codice video non è nella fonte Sipdroid online però :(
Donal Rafferty

1
Puoi vedere in ffserver un componente in ffmpeg.
Vinay,

1
Ho una domanda relativa a questa che potrebbe interessarti anche a te. Si tratta di spingere il flusso video su 3g una volta terminata l'acquisizione del video e la parte del contenitore. bit.ly/vYpWGy
michael

Risposte:


123

Ho ospitato un progetto open source per abilitare il telefono Android alla telecamera IP:

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

I dati video non elaborati vengono recuperati da LocalSocket e il MOOV MDAT di MP4 è stato verificato prima dello streaming. Il video live è confezionato in formato FLV e può essere riprodotto tramite il lettore video Flash con un server Web incorporato :)


26
Fai clic sul pulsante "Sorgente". Inoltre, chiunque abbia votato a favore di questo ragazzo è uno strumento.
Nicholi

3
Mi dà errori .. come, java.lang.UnsatisfiedLinkError: impossibile caricare teaonly: findLibrary restituito null .. Se qualcuno ha una soluzione, condividila. Grazie
anddev

1
@mpp: l'app ha il codice NDK. Puoi compilarlo da solo o estrarre i file .so dall'apk che si trova nel progetto Google Code sotto "Download".
Turnsole

1
Ricevo anche l'errore java.lang.UnsatisfiedLinkError. Si prega di menzionare brevemente i passaggi per rimuovere tale errore.

1
Per coloro che non capiscono UnsatisfiedLinkError: devi costruire il codice C con NDK. In poche parole, corri ndk-build. Per ulteriori informazioni, leggi la documentazione NDK .
Paul Lammertsma,

70

Mi ci è voluto un po 'di tempo, ma alla fine riesco a creare un'app che fa proprio questo. Dai un'occhiata alla pagina del codice di Google se sei interessato: http://code.google.com/p/spydroid-ipcamera/ Ho aggiunto un sacco di commenti nel mio codice (principalmente, guarda CameraStreamer.java), quindi dovrebbe essere abbastanza autoesplicativo. La parte difficile era in realtà comprendere RFC 3984 e implementare un algoritmo adeguato per il processo di pacchettizzazione. (Questo algoritmo in realtà trasforma il flusso mpeg4 / h.264 prodotto da MediaRecorder in un piacevole flusso rtp, secondo l'rfc)

Ciao


2
Molte grazie! Attualmente non riesco a farlo funzionare correttamente con h264 .. e non posso cambiarlo in h263 (non ho idea di come farlo). comunque grazie amico!
Yotes,

1
Sto usando lo stesso ma quando si tratta di streaming su Android con rtsp, dice che il video non può essere riprodotto. Sto usando VideoView. Potete per favore aiutare?
Rohit Mandiwal,

1
Funziona alla grande (finora!) Lo sto usando per trasmettere video da Glass (dopo un po 'di lavoro / editing / capire), ma finora posso solo farlo connettere da un browser basato su Windows (Chrome) con il plugin vlc. VLC su Android / iPad o qualsiasi altro lettore rtsp non raccoglierà lo stream (uno di loro sembrava buono, ma stava cercando di ottenere uno stream in base al nome del dispositivo, che questo codice ha restituito come 0 e quindi non individuabile). Tuttavia, ottenere risultati dopo una giornata di programmazione grazie a te, quindi complimenti!
MacD,

@MacD Utilizzi il codice spydroid-ipcamera (tutto il progetto o solo alcune classi? Me lo sai dire?) O questa libreria github.com/fyhertz/libstreaming per lo streaming in Google Glass? Molte grazie!!
Bae,

Ciao, potresti spiegare come implementare questo progetto in Android Studio non riesco a realizzarlo
utdev

24

Sto esaminando anche questo, e anche se non ho una buona soluzione per te, sono riuscito a scavare il codice video di SIPDroid:

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


Quello che hanno fatto laggiù è lo streaming utilizzando i pacchetti RTP su un server. Ora la domanda è cosa si sta facendo sul server? cosa fa il
transcodifica

No .. Non ho optato per l'approccio SIPDroid, era troppo complesso .. Poi ho fatto qualcosa con un server MJPEG
Azlam

19

Ho creato un SDK open source chiamato Kickflip per rendere lo streaming video da Android un'esperienza indolore.

L'SDK dimostra l'uso dell'API MediaCodec di Android 4.3 per indirizzare i pacchetti dell'encoder hardware del dispositivo direttamente a FFmpeg per RTMP (con librtmp) o streaming HLS di H.264 / AAC. Dimostra anche effetti OpenGL in tempo reale (titolazione, chroma key, dissolvenze) e registrazione in background.

Grazie, e soprattutto, fadden .


può eseguire lo streaming su qualsiasi client compatibile con HLS (non solo sul tuo server)?
4ntoine,

4
@dbro Cerco di conoscere il tuo servizio, ma hai bisogno delle mie informazioni di accesso prima di poter vedere i tuoi prezzi. È come se state raccogliendo indirizzi e-mail. Se questa non è la tua intenzione, dovresti rendere disponibili le informazioni sui prezzi: allo stesso modo di Parse e App Engine e molti altri.
studente

È possibile che una videocamera invii un video a Kickflip e poi vada sul telefono Android? Se es quale tipo di videocamera è adatta a questo
Lutaaya Huzaifah Idris

11

Ecco un articolo completo sullo streaming di video della videocamera Android su una pagina Web.

Streaming Android Video della videocamera in diretta sulla pagina Web

  1. Libstreaming utilizzato sull'app Android
  2. Sul lato server Wowza Media Engine viene utilizzato per decodificare il flusso video
  3. Infine jWplayer viene utilizzato per riprodurre il video su una pagina Web.

Questo utilizza componenti a sorgente chiuso. Qualche alternativa open source?
Raj,

Puoi usare JavaCV per questo l'ho usato nel mio progetto per effettuare lo streaming live dal dispositivo Android al server multimediale wowza, inoltre puoi usare github.com/begeekmyfriend/yasea
Chinthaka Devinda,

lo streaming di libs è gratuito?
Akrramo,

possiamo usare il dispositivo della scheda audio come sorgente audio in ingresso e non il microfono in libstreaming.
user2980181

5

Sono in grado di inviare il video della telecamera live dal cellulare al mio server. Usando questo link vedi il link

Fare riferimento al link sopra. C'è un'applicazione di esempio in quel link. Devi solo impostare l'URL del tuo servizio in RecordActivity.class.

Esempio come: ffmpeg_link = "rtmp: // yourserveripaddress: 1935 / live / venkat";

siamo in grado di inviare video di tipo H263 e H264 utilizzando quel link.


Ho usato il codice usando il link sopra, ma non sono nemmeno riuscito a iniziare la registrazione. ottenendo un'eccezione "Nessun video per lo streaming". Hai qualche idea al riguardo?
Akhilesh Sk,

@AkhileshSk usando il codice sopra puoi inviare il video live tramite l'URL rtmp al tuo server. non è a scopo di registrazione. se vuoi registrare il video devi registrarlo sul lato server.
Venkat,

Hey @ Venkat è possibile inviare un video dal vivo da una fotocamera a un telefono Android, hai qualche link in codice, come usare Youtube live ecc.
Lutaaya Huzaifah Idris

@LutaayaHuzaifahIdris sì, è possibile. Ho lavorato in precedenza su questo.
Venkat,

Ciao @Venkat, puoi aiutarmi con questo, non riesco a trovare il file
RecordActivity.class


1

Controlla la libreria Yasea

Yasea è un client di streaming Android. Codifica i dati YUV e PCM dalla telecamera e dal microfono a H.264 / AAC, incapsula in FLV e trasmette su RTMP.

caratteristica:

  1. Mini API Android 16.
  2. Codifica hardware H.264 / AAC.
  3. Codifica soft H.264.
  4. Streaming RTMP con gestore callback dello stato.
  5. Orientamento dinamico verticale e orizzontale.
  6. Hot switch per telecamere anteriori e posteriori.
  7. Registrazione su MP4 durante lo streaming.

0

Mux (la mia azienda) ha un'app Android open source che trasmette RTMP a un server, inclusa la configurazione della fotocamera e le interazioni dell'utente. È progettato per eseguire lo streaming all'API di streaming live di Mux, ma può facilmente eseguire lo streaming su qualsiasi punto di accesso RTMP.


-7

A seconda del budget, è possibile utilizzare una fotocamera Raspberry Pi in grado di inviare immagini a un server. Aggiungo qui due tutorial in cui puoi trovare molti più dettagli:

Questo tutorial mostra come utilizzare una fotocamera Raspberry Pi e visualizzare le immagini sul dispositivo Android

Questo è il secondo tutorial in cui puoi trovare una serie di tutorial sullo streaming video in tempo reale tra fotocamera e dispositivo Android


fuori dal contesto
Vikas Kandari
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.