Streaming video dari kamera Android ke server

286

Saya telah melihat banyak info tentang cara streaming video dari server ke perangkat android, tetapi tidak banyak tentang cara lain, ala Qik. Bisakah seseorang mengarahkan saya ke arah yang benar di sini, atau memberi saya nasihat tentang cara mendekati ini?

JCL
sumber
9
Saya ingin melihat jawaban untuk ini juga. Sudahkah Anda menemukan sesuatu?
Jeremy White
Tidak, menyerah pada streaming. Mengalahkan API MediaRecorder hanya dalam pengiriman sudah cukup sulit. Anda bisa melihat kode sipdroid, mereka sepertinya sudah berfungsi.
JCL
Kode Video tidak ada dalam sumber Sipdroid online :(
Donal Rafferty
1
Anda dapat melihat komponen ffserver di ffmpeg.
Vinay
1
Saya punya pertanyaan terkait dengan ini yang mungkin menarik bagi Anda juga. Ini tentang mendorong aliran video lebih dari 3g setelah Anda memiliki pengambilan video dan bagian kontainer selesai. bit.ly/vYpWGy
michael

Jawaban:

123

Saya telah meng-host proyek open-source untuk mengaktifkan ponsel Android ke kamera IP:

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

Data video mentah diambil dari LocalSocket, dan MDAT MOOV dari MP4 diperiksa terlebih dahulu sebelum streaming. Video langsung dikemas dalam format FLV, dan dapat diputar melalui pemutar video Flash dengan build in web server :)

Zhou Chang
sumber
26
Klik tombol "Sumber". Juga, siapa pun yang menurunkan orang ini adalah alat.
Nicholi
3
Ini memberi saya Kesalahan .. seperti, java.lang.UnsatisfiedLinkError: Tidak dapat memuat hanya teh: findLibrary dikembalikan nol .. Jika ada yang punya solusi, silakan bagikan. Terima kasih
anddev
1
@mpp: Aplikasi ini memiliki kode NDK. Anda dapat mengompilasinya sendiri, atau mengambil file .so dari apk yang ada di proyek Google Code di bawah "Unduhan".
Turnsole
1
Saya juga mendapatkan kesalahan java.lang.UnsatisfiedLinkError. Harap sebutkan secara singkat langkah-langkah untuk menghapus kesalahan itu.
1
Bagi mereka yang tidak memahami UnsatisfiedLinkError: Anda harus membuat kode C dengan NDK. Sederhananya, jalankan ndk-build. Untuk informasi lebih lanjut, baca dokumentasi NDK .
Paul Lammertsma
70

Butuh beberapa waktu, tapi akhirnya saya berhasil membuat aplikasi yang melakukan hal itu. Periksa halaman kode google jika Anda tertarik: http://code.google.com/p/spydroid-ipcamera/ Saya menambahkan banyak komentar dalam kode saya (terutama, lihat CameraStreamer.java), jadi seharusnya Cukup jelas. Bagian yang sulit sebenarnya adalah untuk memahami RFC 3984 dan mengimplementasikan algoritma yang tepat untuk proses paketisasi. (Algoritma ini benar-benar mengubah aliran mpeg4 / h.264 yang dihasilkan oleh MediaRecorder menjadi aliran rtp yang bagus, menurut rfc)

Sampai jumpa

Simon
sumber
2
Terima kasih banyak! Saat ini saya tidak dapat membuatnya berfungsi dengan baik h264 .. dan saya tidak bisa mengubahnya ke h263 (saya tidak tahu bagaimana melakukannya). ngomong-ngomong, terima kasih kawan!
Yotes
1
Saya menggunakan yang sama tetapi ketika datang untuk streaming di Android dengan rtsp, katanya Video tidak bisa diputar. Saya menggunakan VideoView. Bisakah Anda membantu?
Rohit Mandiwal
1
Bekerja sangat baik (sejauh ini!) Saya menggunakannya untuk melakukan streaming video dari Glass (setelah sedikit kerja / pengeditan / mencari tahu), tapi sejauh ini saya hanya bisa menghubungkannya dari browser berbasis Windows (Chrome) dengan plugin vlc. VLC di Android / iPad atau pemutar rtsp lainnya tidak akan mengambil aliran (salah satunya terlihat bagus, tetapi sedang mencoba mendapatkan aliran berdasarkan nama perangkat, yang kode ini dikembalikan sebagai 0 dan karenanya tidak dapat dihindarkan). Tetap saja, mendapatkan hasil setelah seharian pengkodean terima kasih, terima kasih banyak!
MacD
@ Macd Apakah Anda menggunakan kode spydroid-ipcamera (semua proyek atau hanya beberapa kelas? Bisakah Anda memberi tahu saya?) Atau perpustakaan ini github.com/fyhertz/libstreaming untuk streaming di Google Glass? Terima kasih banyak!!
Bae
Hai, bisakah Anda menjelaskan cara mengimplementasikan proyek ini di studio android yang tidak dapat saya jalankan
utdev
24

Saya melihat ini juga, dan sementara saya tidak punya solusi yang baik untuk Anda, saya berhasil menggali kode video SIPDroid:

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

ObsidianX
sumber
Apa yang telah mereka lakukan di sana adalah mereka streaming menggunakan paket RTP ke server. Sekarang pertanyaannya adalah apa yang sedang dilakukan di server? apa yang dimaksud dengan trans-coding dan bagaimana cara dialirkan
Azlam
Tidak .. Saya tidak pergi untuk Pendekatan SIPDroid, itu terlalu kompleks .. Saya kemudian melakukan sesuatu dengan MJPEGServer
Azlam
19

Saya telah membangun SDK open-source yang disebut Kickflip untuk membuat streaming video dari Android menjadi pengalaman yang tidak menyakitkan.

SDK menunjukkan penggunaan API MediaCodec Android 4.3 untuk mengarahkan paket enkode perangkat keras perangkat langsung ke FFmpeg untuk RTMP (dengan librtmp) atau streaming HLS dari H.264 / AAC. Ini juga menunjukkan Efek OpenGL realtime (titling, kunci chroma, fade) dan perekaman latar belakang.

Terima kasih SO, dan khususnya, fadden .

dbro
sumber
dapatkah itu dialirkan ke klien berkemampuan HLS (bukan hanya ke server Anda)?
4ntoine
4
@ deb Saya mencoba mempelajari tentang layanan Anda, tetapi Anda memerlukan informasi login saya sebelum saya dapat melihat harga Anda. Seolah kalian sedang mengumpulkan alamat email. Jika itu bukan niat Anda, Anda harus membuat info harga tersedia: dengan cara yang sama dengan Parse dan App Engine dan banyak lainnya.
pelajar
Mungkinkah kamera video mengirim video ke Kickflip kemudian masuk ke ponsel Android? Jika jenis Kamera Video apa yang cocok untuk ini
Lutaaya Huzaifah Idris
11

Berikut ini adalah artikel lengkap tentang streaming video kamera android ke halaman web.

Android Streaming Video Kamera Langsung ke Halaman Web

  1. Libstreaming yang digunakan pada aplikasi android
  2. Di sisi server Wowza Media Engine digunakan untuk mendekode aliran video
  3. Akhirnya jWplayer digunakan untuk memutar video di halaman web.
Antek
sumber
Ini menggunakan komponen sumber tertutup. Adakah alternatif sumber terbuka?
Raj
Anda dapat menggunakan JavaCV untuk ini saya menggunakannya dalam proyek saya untuk membuat streaming langsung dari perangkat android ke server media wowza juga Anda dapat menggunakan github.com/begeekmyfriend/yasea
Chinthaka Devinda
Apakah lib streaming gratis?
Akrramo
dapatkah kita menggunakan perangkat kartu suara sebagai sumber audio input dan bukan mic dalam libstreaming.
user2980181
5

Saya dapat mengirim video kamera langsung dari ponsel ke server saya. Dengan menggunakan tautan ini, lihat tautannya

Lihat tautan di atas. Ada contoh aplikasi di tautan itu. Hanya Anda perlu mengatur url layanan Anda di RecordActivity.class.

Contoh sebagai: ffmpeg_link = "rtmp: // yourserveripaddress: 1935 / live / venkat";

kita dapat mengirim video tipe H263 dan H264 menggunakan tautan itu.

Venkat
sumber
Saya telah menggunakan kode menggunakan tautan di atas, tetapi bahkan tidak dapat mulai merekam. mendapatkan pengecualian "No Video to Stream". Apakah Anda punya ide tentang ini?
Akhilesh Sk
@AkhileshSk dengan menggunakan kode di atas, Anda dapat mengirim video langsung melalui rtmp url ke server Anda. ini bukan untuk tujuan perekaman. jika Anda ingin merekam video, Anda harus merekamnya di sisi server.
Venkat
Hai @ Venkat, mungkinkah mengirim video langsung dari Kamera ke ponsel Android, apakah Anda memiliki beberapa tautan kode, seperti menggunakan Youtube, dll.
Lutaaya Huzaifah Idris
@LutaayaHuzaifahIdris ya itu mungkin. Saya bekerja sebelumnya dalam hal ini.
Venkat
Hai @ Venkat dapatkah Anda membantu saya dengan ini, tidak dapat menemukan file
RecordActivity.class
1

Periksa perpustakaan Yasea

Yasea adalah klien streaming Android. Ini mengkode data YUV dan PCM dari kamera dan mikrofon ke H.264 / AAC, merangkum dalam FLV dan mentransmisikan melalui RTMP.

Fitur:

  1. Android mini API 16.
  2. H.264 / AAC hard encoding.
  3. Pengkodean lunak H.264.
  4. Streaming RTMP dengan penangan panggilan balik negara.
  5. Potret dan orientasi dinamis lanskap.
  6. Sakelar panas kamera depan dan belakang.
  7. Merekam ke MP4 saat streaming.
Hamed Ghadirian
sumber
0

Mux (perusahaan saya) memiliki aplikasi android open source yang mengalirkan RTMP ke server, termasuk mengatur kamera dan interaksi pengguna. Itu dibangun untuk melakukan streaming ke API streaming langsung Mux tetapi dapat dengan mudah melakukan streaming ke entri RTMP apa pun.

heff
sumber
-7

Tergantung pada anggaran Anda, Anda dapat menggunakan Kamera Raspberry Pi yang dapat mengirim gambar ke server. Saya menambahkan dua tutorial di sini di mana Anda dapat menemukan lebih banyak detail:

Tutorial ini menunjukkan kepada Anda cara menggunakan Kamera Raspberry Pi dan menampilkan gambar pada perangkat Android

Ini adalah tutorial kedua di mana Anda dapat menemukan serangkaian tutorial tentang streaming video real-time antara kamera dan perangkat android

Ezu
sumber
di luar konteks
Vikas Kandari