Android kameradan sunucuya video akışı


286

Sunucudan bir android cihaza video akışı hakkında bol miktarda bilgi gördüm, ancak başka bir şekilde değil, ala Qik. Birisi beni burada doğru yönde gösterebilir mi, yoksa bana nasıl yaklaşacağına dair bir tavsiye verebilir mi?


9
Ben de buna bir cevap görmek istiyorum. Henüz bir şey buldun mu?
Jeremy White

Hayır, akıştan vazgeçti. MediaRecorder API'sını sadece sunulması için yenmek yeterince zordu. Sipdroid kodunu kontrol edebilirsiniz, ancak işe yaramış gibi görünüyorlar.
JCL

Video kodu çevrimiçi Sipdroid kaynağında olmasa da :(
Donal Rafferty

1
Ffserver içinde ffmpeg içindeki bir bileşeni görebilirsiniz.
Vinay

1
Bununla ilgili ilginizi çekebilecek bir sorum var. Video yakalama ve kapsayıcı bölümü tamamlandıktan sonra video akışını 3g'ın üzerine itmekle ilgilidir. bit.ly/vYpWGy
michael

Yanıtlar:


123

Android telefonun IP kameraya etkinleştirilmesi için açık kaynaklı bir projeye ev sahipliği yaptım:

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

Ham video verileri LocalSocket'tan alınır ve akıştan önce MP4'ün MDAT MOOV'u kontrol edilir. Canlı video FLV biçiminde paketlenmiştir ve web sunucusunda yerleşik olarak Flash video oynatıcı ile oynatılabilir :)


26
"Kaynak" düğmesini tıklayın. Ayrıca, bu adamı kim düşürdüyse bir araçtır.
Nicholi

3
Bana Hatalar veriyor .. gibi, java.lang.UnsatisfiedLinkError: Teaonly yüklenemedi: findLibrary null döndürdü .. Herkes çözüm varsa o zaman paylaşın lütfen. Teşekkürler
anddev

1
@mpp: Uygulamanın NDK kodu var. Kendiniz derleyebilir veya .so dosyalarını "İndirilenler" altındaki Google Code projesinde bulunan apk'den alabilirsiniz.
Turnsole

1
Ayrıca java.lang.UnsatisfiedLinkError hatası alıyorum. Lütfen bu hatayı kaldırmak için adımları kısaca belirtin.

1
UnsatisfiedLinkError'ı anlamayanlar için: C kodunu NDK ile oluşturmanız gerekir. Basitçe söylemek gerekirse, çalıştırın ndk-build. Daha fazla bilgi için NDK belgelerini okuyun .
Paul Lammertsma

70

Bana biraz zaman aldı, ama sonunda sadece bunu yapan bir uygulama yapmak yönetmek. İlgileniyorsanız google kod sayfasına bakın: http://code.google.com/p/spydroid-ipcamera/ Koduma bir sürü yorum ekledim (çoğunlukla CameraStreamer.java'ya bakın), bu yüzden olmalı oldukça açıklayıcı. Zor kısım aslında RFC 3984'ü anlamak ve paketleme işlemi için uygun bir algoritma uygulamaktı. (Bu algoritma aslında rfc'ye göre MediaRecorder tarafından üretilen mpeg4 / h.264 akışını güzel bir rtp akışına dönüştürür)

Hoşçakal


2
Çok teşekkürler! Şu anda h264 ile doğru çalışamıyorum .. ve h263 olarak değiştiremiyorum (bunu nasıl yapacağım hakkında hiçbir fikrim yok). Neyse, teşekkürler dostum!
Yotes

1
Aynı kullanıyorum ama rtsp ile Android'de yayın söz konusu olduğunda, Video oynatılamıyor diyor. VideoView kullanıyorum. Lütfen yardım edebilir misin?
Rohit Mandiwal

1
Harika çalışıyor (şimdiye kadar!) Camdan video akışı yapmak için kullanıyorum (biraz çalışma / düzenleme / anlatmadan sonra), ancak şimdiye kadar sadece Windows tabanlı bir tarayıcıdan (Chrome) vlc eklentisi. Android / iPad veya başka bir rtsp oynatıcıdaki VLC akışı almaz (bunlardan biri iyi görünüyordu, ancak bu kodun 0 olarak döndürüldüğü ve böylece uygunsuz olduğu cihaz adına göre bir akış elde etmeye çalışıyordu). Yine de, kodlamadan bir gün sonra sonuçlar elde edersiniz, bu yüzden kudos!
MacD

@MacD Spydroid-ipcamera kodunu (tüm proje mi yoksa sadece bazı sınıflar mı? Bana söyleyebilir misiniz?) Veya bu kütüphaneyi Google Glass'da akış için github.com/fyhertz/libstreaming kullanıyor musunuz? Çok teşekkürler!!
Bae

Merhaba bu projeyi Android Studio'da nasıl uygulayacağımı açıklayabilir miyim? Çalıştıramıyorum
utdev


19

Android'den akan videoyu acısız bir deneyim haline getirmek için Kickflip adlı açık kaynaklı bir SDK oluşturdum .

SDK , cihaz donanım kodlayıcısının paketlerini doğrudan RTMP için FFmpeg'e (librtmp ile) veya H.264 / AAC HLS akışına yönlendirmek için Android 4.3'ün MediaCodec API'sinin kullanımını gösterir . Ayrıca gerçek zamanlı OpenGL Efektleri (başlık, renk tuşu, solmalar) ve arka plan kaydını gösterir.

Teşekkürler SO, ve özellikle, soluk .


HLS özellikli herhangi bir istemciye akış sağlayabilir (yalnızca sunucunuza değil)?
4ntoine

4
@ dbro Hizmetiniz hakkında bilgi edinmeye çalışıyorum, ancak fiyatlandırmanızı görmeden önce giriş bilgilerime ihtiyacınız var. Sanki e-posta adresleri topluyorsunuz. Amacınız bu değilse, fiyatlandırma bilgilerini kullanılabilir hale getirmelisiniz: Parse ve App Engine ve diğerlerinin yaptığı gibi.
Öğrenci

Bir Video kamera Kickflip için bir video göndermek mümkün mü o zaman android telefon gidiyor? Bunun için uygun olan Video Kamera türü es ise
Lutaaya Huzaifah Idris

11

İşte bir web sayfasına android kamera video akışı hakkında tam bir makale.

Android Canlı Kamera Videosu Web Sayfasına Akış

  1. Android uygulamasında kullanılan libstreaming
  2. Sunucu tarafında video akışının kodunu çözmek için Wowza Media Engine kullanılır
  3. Sonunda jWplayer videoyu bir web sayfasında oynatmak için kullanılır.

Bu, kapalı kaynak bileşenleri kullanır. Herhangi bir açık kaynak alternatifi var mı?
Raj

Bunun için JavaCV kullanabilirsiniz wowza medya sunucusuna android cihazdan canlı akış yapmak için projemde kullandım Ayrıca github.com/begeekmyfriend/yasea
Chinthaka Devinda

akış ücretsiz mi?
Akrramo

ses kartı cihazını, girişte mikrofon olarak değil, ses kaynağı olarak kullanabilir miyiz?
user2980181

5

Canlı kamera videosunu mobil cihazdan sunucuma gönderebiliyorum. Bu bağlantıyı kullanarak bağlantıya bakın

Yukarıdaki bağlantıya bakın. Bu bağlantıda örnek bir uygulama var. Hizmet URL'nizi RecordActivity.class içinde ayarlamanız yeterlidir.

Örnek olarak: ffmpeg_link = "rtmp: // yourserveripaddress: 1935 / live / venkat";

bu bağlantıyı kullanarak H263 ve H264 tipi videolar gönderebiliriz.


Yukarıdaki bağlantıyı kullanarak kodu kullandım, ancak kaydetmeye bile başlayamadım. "Akış için Video Yok" özel durumu elde ediliyor. Bununla ilgili bir fikrin var mı?
Akhilesh Sk

@AkhileshSk yukarıdaki kodu kullanarak u canlı video rtmp url aracılığıyla sunucunuza gönderebilirsiniz. kayıt amaçlı değildir. Eğer video kaydetmek istiyorsanız u sunucu tarafında kaydetmeniz gerekir.
Venkat

Hey @ Venkat bir
kameradan

@LutaayaHuzaifahIdris evet bu mümkün. Daha önce bunun üzerinde çalıştım.
Venkat

Merhaba @Venkat bana bu konuda yardımcı olabilir, RecordActivity.class dosyasını bulamıyor
sanyam


1

Yasea kütüphanesini kontrol edin

Yasea bir Android akış istemcisidir. Kamera ve mikrofondan H.264 / AAC'ye YUV ve PCM verilerini kodlar, FLV'de kapsüllenir ve RTMP üzerinden iletir.

Özellik:

  1. Android mini API 16.
  2. H.264 / AAC sabit kodlaması.
  3. H.264 yumuşak kodlama.
  4. Durum geri çağrı işleyicisi ile RTMP akışı.
  5. Dikey ve yatay dinamik yönlendirme.
  6. Ön ve arka kamera sıcak anahtarı.
  7. Akış sırasında MP4'e kayıt.

0

Mux (şirketim), kamera ve kullanıcı etkileşimlerini ayarlamak da dahil olmak üzere bir sunucuya RTMP akışı sağlayan açık kaynaklı bir android uygulamasına sahiptir. Mux'in canlı akış API'sına akış sağlamak için üretilmiştir, ancak herhangi bir RTMP giriş noktasına kolayca akış sağlayabilir.


-7

Bütçenize bağlı olarak, sunucuya görüntü gönderebilen bir Raspberry Pi Kamera kullanabilirsiniz. Buraya daha fazla ayrıntı bulabileceğiniz iki öğretici ekliyorum:

Bu eğitimde , Raspberry Pi Kamerasının nasıl kullanılacağı ve Android cihazında görüntülerin nasıl gösterileceği gösterilmektedir

Bu, kamera ve android cihaz arasında gerçek zamanlı video akışı hakkında bir dizi öğretici bulabileceğiniz ikinci öğreticidir.


bağlam dışı
Vikas Kandari
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.