2010-03-31 16 views
249

Widziałem mnóstwo informacji o tym, jak strumień wideo z serwera do urządzenia z Androidem, ale nie wiele o inny sposób, ala Qik. Czy ktoś może wskazać mi właściwy kierunek, czy może doradzi, jak do tego podejść?Streaming wideo z kamery do serwera Android

+6

Chciałbym zobaczyć odpowiedź na to również. Czy udało ci się jeszcze coś wymyślić? –

+0

Nie, zrezygnował z przesyłania strumieniowego. Samo pokonanie API MediaRecorder do zgłoszenia było wystarczająco trudne. Możesz sprawdzić kod sipdroida, ale wydaje się, że działa. – JCL

+0

Kod wideo nie znajduje się w Internecie w źródle Sipdroid :( –

Odpowiedz

21

Patrzę na to jak dobrze, a ja nie mam dobre rozwiązanie dla was udało się wykopać Sipdroid za kod filmu:

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

+0

To, co oni tam zrobili, to przesyłać strumieniowo za pomocą protokołu RTP pakiety na serwer. Teraz pytanie brzmi, co dzieje się na serwerze? co to jest trans-kodowanie i jak jest ono przesyłane? – Azlam

+0

Nie. Nie podchodziłem do podejścia SIPDroid, było to zbyt skomplikowane. Następnie zrobiłem coś z MJPEGServer – Azlam

116

mam gospodarzem open source projekt umożliwiający telefon z Androidem do kamery IP:

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

surowych danych wideo jest pobierany od LocalSocket i MDAT MOOV z MP4 był najpierw sprawdzany przed streamingu. Wideo na żywo jest spakowane w formacie FLV i można je odtwarzać za pomocą odtwarzacza wideo Flash z wbudowanym serwerem sieciowym :)

+22

Kliknij przycisk "Źródło". Również ten, kto zajął się tym facetem, jest narzędziem. – Nicholi

+3

Daje mi błędy .. jak, java.lang.UnsatisfiedLinkError: Nie można załadować teaonly: findLibrary zwróciło zero .. Jeśli ktoś ma rozwiązanie, prosimy o udostępnienie go. Dzięki – anddev

+1

@mpp: aplikacja ma kod NDK. Możesz ją skompilować samodzielnie lub pobrać pliki .so z pliku apk znajdującego się w tym projekcie Google Code w sekcji "Pobieranie". – Turnsole

65

Zajęło mi to trochę czasu, ale w końcu udało mi się zrobić aplikację, która właśnie to robi. Sprawdź stronę Google Code, jeśli jesteś zainteresowany: http://code.google.com/p/spydroid-ipcamera/ dodałem mnóstwo komentarzy w kodzie (głównie patrzeć na CameraStreamer.java), więc powinno być całkiem oczywiste. Najtrudniejszą częścią było zrozumienie RFC 3984 i wdrożenie odpowiedniego algorytmu dla procesu pakietowania. (Ten algorytm faktycznie zamienia strumień MPEG4/H.264 wytwarzanego przez MediaRecorder w ładnym strumienia RTP, zgodnie z RFC)

Bye

+1

Wielkie dzięki! Obecnie nie mogę sprawić, żeby działało poprawnie z h264 .. i nie mogę go zmienić na h263 (nie mam pojęcia, jak to zrobić). w każdym razie, dzięki człowieku! – Yotes

+1

Używam tego samego, ale jeśli chodzi o przesyłanie strumieniowe na Androidzie za pomocą rtsp, oznacza to, że wideo nie można odtworzyć. Używam VideoView. Czy możesz mi pomóc? –

+1

Działa świetnie (jak dotąd!) Używam go do streamowania wideo ze Glassa (po odrobinie pracy/edycji/odkrywania), ale do tej pory mogę go podłączyć tylko z przeglądarki opartej na systemie Windows (Chrome) z wtyczka vlc. VLC na Androidzie/iPadzie lub jakimkolwiek innym odtwarzaczu rtsp nie będzie pobierał strumienia (jeden z nich wyglądał dobrze, ale próbował uzyskać strumień na podstawie nazwy urządzenia, który ten kod zwrócił jako 0, a tym samym nie był możliwy do wykorzystania). Mimo to, otrzymuję wyniki po dniu kodowania dzięki tobie, więc kudos! – MacD

5

I am able to send the live camera video from mobile to my server.using this link see the link

Refer the above link.there is a sample application in that link. Just you need to set your service url in RecordActivity.class.

Przykład: ffmpeg_link = "rtmp: // yourserveripaddress: 1935/live/venkat";

możemy stanie wysłać H263 i H264 filmy typu przy użyciu tego linku.

+0

Użyłem kodu używając powyższego linku, ale nie mogłem nawet rozpocząć nagrywania. uzyskanie wyjątku "Brak wideo do strumieniowania". Czy masz jakiś pomysł na ten temat? –

+0

@AkhileshSk przy użyciu powyższego kodu możesz wysłać wideo na żywo poprzez adres URL rtmp na twój serwer. nie jest to celem nagrywania. jeśli chcesz nagrać wideo, musisz go nagrać po stronie serwera. – Venkat

+0

Hej @ Venkat to możliwe, aby wysłać wideo na żywo z aparatu do telefonu z Androidem, czy masz jakieś linki do kodu, takie jak używanie Youtube na żywo itp. –

17

I został zbudowany open-source SDK nazwie Kickflip zrobić streaming video z Androidem bezbolesny doświadczenie.

SDK demonstruje wykorzystanie Androida 4.3 za MediaCodec API do kierowania pakietów kodera sprzętowego urządzenia bezpośrednio do FFmpeg dla RTMP (z librtmp) lub HLS streaming H.264/AAC. Pokazuje również efekty OpenGL w czasie rzeczywistym (tytułowanie, kluczowanie chromatyczne, zanikanie) i nagrywanie w tle.

Dzięki tak, zwłaszcza, fadden.

+0

czy można przesyłać strumieniowo do dowolnego klienta obsługującego HLS (nie tylko do serwera)? – 4ntoine

+3

@dbro Próbuję uzyskać informacje na temat Twojej usługi, ale przed odebraniem ceny musisz podać moje dane logowania. To tak, jakbyście zbierali adresy e-mail. Jeśli to nie jest Twoja intencja, powinieneś udostępnić informacje o cenach: w taki sam sposób, jak Parse and App Engine i wiele innych. – learner

+0

Czy kamera wideo może przesłać wideo do programu Kickflip, a następnie przejść do telefonu z Androidem? Jeśli taki typ kamery wideo jest odpowiedni do tego –

9

Oto kompletny artykuł o strumieniowego androida kamery wideo na stronie internetowej.

Android Streaming Live Camera Video to Web Page

  1. Używane libstreaming na Android App
  2. Na stronie serwera Wowza Media Engine służy do dekodowania strumienia wideo
  3. Wreszcie jWplayer służy do odtwarzania wideo na stronie internetowej.
+0

To wykorzystuje komponenty o zamkniętym kodzie źródłowym. Wszelkie alternatywy open-source? – Raj

+0

Możesz użyć JavaCV do tego użyłem go w moim projekcie, aby streaming na żywo z urządzenia z Androidem na serwer mediów Wowza również można użyć https://github.com/begeekmyfriend/yasea –

+0

jest libs streaming za darmo? –

2

Sprawdź Yasea biblioteka

Yasea is an Android streaming client. It encodes YUV and PCM data from camera and microphone to H.264/AAC, encapsulates in FLV and transmits over RTMP.

Cecha:

  1. Android mini API 16.
  2. H.264/AAC ciężko kodowania.
  3. Kodowanie miękkie H.264.
  4. Przesyłanie strumieniowe RTMP z obsługą stanu oddzwaniania.
  5. Orientacja dynamiczna pionowa i pozioma.
  6. Przełącznik gorącej kamery przedniej i tylnej.
  7. Nagrywanie do MP4 podczas przesyłania strumieniowego.
Powiązane problemy