วิดีโอสตรีมมิ่งจากกล้อง Android ไปยังเซิร์ฟเวอร์


286

ฉันได้เห็นข้อมูลมากมายเกี่ยวกับวิธีการสตรีมวิดีโอจากเซิร์ฟเวอร์ไปยังอุปกรณ์ Android แต่ไม่ได้เกี่ยวกับวิธีอื่น Ala Qik ใครช่วยชี้ฉันในทิศทางที่ถูกต้องที่นี่หรือให้คำแนะนำเกี่ยวกับวิธีการนี้


9
ฉันต้องการเห็นคำตอบสำหรับสิ่งนี้เช่นกัน คุณเกิดอะไรขึ้นหรือยัง
Jeremy White

ไม่ยอมแพ้กับการสตรีม เพียงแค่ตี API ของ MediaRecorder เพื่อส่งก็ยากพอ คุณสามารถตรวจสอบรหัส sipdroid ได้ แต่ดูเหมือนว่ามันจะทำงานได้
JCL

รหัสวิดีโอไม่ได้อยู่ในแหล่งที่มาของ Sipdroid ทางออนไลน์ :(
Donal Rafferty

1
คุณสามารถดู ffserver ส่วนประกอบใน ffmpeg
Vinay

1
ฉันมีคำถามที่เกี่ยวข้องกับคำถามนี้ที่คุณอาจสนใจเช่นกัน มันเกี่ยวกับการผลักสตรีมวิดีโอมากกว่า 3g เมื่อคุณมีการจับภาพวิดีโอและส่วนคอนเทนเนอร์แล้ว bit.ly/vYpWGy
ไมเคิล

คำตอบ:


123

ฉันได้โฮสต์โครงการโอเพนซอร์ซเพื่อเปิดใช้งานโทรศัพท์ Android กับกล้อง IP:

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

ข้อมูลวิดีโอดิบถูกดึงมาจาก LocalSocket และตรวจสอบ MDAT MOOV ของ MP4 ก่อนที่จะสตรีม วิดีโอสดบรรจุในรูปแบบ FLV และสามารถเล่นผ่าน Flash Video Player พร้อมบิลด์ในเว็บเซิร์ฟเวอร์ :)


26
คลิกปุ่ม "ที่มา" นอกจากนี้ใครก็ตามที่ลงคะแนนผู้ชายคนนี้เป็นเครื่องมือ
Nicholi

3
มันทำให้ฉันมีข้อผิดพลาด .. เช่น, java.lang.UnsatisfiedLinkError: ไม่สามารถโหลด teaonly: findLibrary คืนค่า null .. ถ้าใครมีวิธีแก้ปัญหากรุณาแชร์มัน ขอบคุณ
anddev

1
@mpp: แอปมีรหัส NDK คุณสามารถรวบรวมได้ด้วยตนเองหรือหยิบไฟล์. so ออกจาก apk ที่อยู่ในโครงการ Google Code นั้นภายใต้ "ดาวน์โหลด"
Turnsole

1
ฉันยังได้รับข้อผิดพลาด java.lang.UnsatisfiedLinkError โปรดพูดถึงขั้นตอนสั้น ๆ เพื่อลบข้อผิดพลาดนั้น

1
สำหรับผู้ที่ไม่เข้าใจลิงก์ UnsatisfiedLinkError: คุณต้องสร้างรหัส C ด้วย NDK ndk-buildใส่เพียงแค่การทำงาน สำหรับข้อมูลเพิ่มเติมโปรดอ่านเอกสาร NDK
พอลแลมเมอร์มา

70

ใช้เวลาสักพัก แต่ในที่สุดฉันก็จัดการทำแอพที่ทำอย่างนั้นได้ ลองดูหน้ารหัส Google หากคุณสนใจ: http://code.google.com/p/spydroid-ipcamera/ ฉันเพิ่มความคิดเห็นจำนวนมากในรหัสของฉัน (ส่วนใหญ่ดูที่ CameraStreamer.java) ดังนั้นควรเป็น สวยอธิบายตนเอง ส่วนที่ยากคือการเข้าใจ RFC 3984 และใช้อัลกอริธึมที่เหมาะสมสำหรับกระบวนการสร้างแพ็กเก็ต (อัลกอริทึมนี้เปลี่ยนกระแส mpeg4 / h.264 ที่ผลิตโดย MediaRecorder เป็นกระแส rtp ที่ดีตาม rfc)

บาย


2
ขอบคุณมาก! ปัจจุบันฉันไม่สามารถใช้งานได้กับ h264 .. และฉันไม่สามารถเปลี่ยนเป็น h263 ได้ (ฉันไม่มีเงื่อนงำว่าจะทำอย่างไร) ต่อไปขอบคุณชาย!
Yotes

1
ฉันกำลังใช้งานเหมือนกัน แต่เมื่อพูดถึงการสตรีมบน Android ด้วย rtsp แสดงว่าวิดีโอไม่สามารถเล่นได้ ฉันใช้ VideoView คุณช่วยได้ไหม
Rohit Mandiwal

1
ใช้งานได้ดี (จนถึงตอนนี้) ฉันใช้เพื่อสตรีมวิดีโอจาก Glass (หลังจากทำงาน / แก้ไข / หา) แต่จนถึงตอนนี้ฉันสามารถเชื่อมต่อจากเบราว์เซอร์ที่ใช้ Windows (Chrome) ด้วย ปลั๊กอิน vlc VLC บน Android / iPad หรือเครื่องเล่น rtsp อื่น ๆ จะไม่รับสตรีม (หนึ่งในนั้นดูดี แต่พยายามรับสตรีมตามชื่ออุปกรณ์ซึ่งรหัสนี้ส่งคืนเป็น 0 จึงไม่สามารถค้นหาได้) ยังคงได้รับผลลัพธ์หลังจากการเข้ารหัสวันขอบคุณคุณรุ่งโรจน์!
MacD

@MacD คุณใช้รหัส spydroid-ipcamera (โครงการทั้งหมดหรือบางคลาสเท่านั้นคุณบอกฉันได้ไหม) หรือไลบรารีgithub.com/fyhertz/libstreamingสำหรับการสตรีมใน Google Glass? ขอบคุณมาก!!
Bae

สวัสดีคุณสามารถอธิบายวิธีการใช้โครงการนี้ใน android studio ฉันไม่สามารถทำให้มันทำงานได้
utdev

24

ฉันกำลังมองหาสิ่งนี้เช่นกันและในขณะที่ฉันไม่มีวิธีแก้ปัญหาที่ดีสำหรับคุณฉันก็สามารถขุดรหัสวิดีโอของ SIPDroid ได้:

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


สิ่งที่พวกเขาทำที่นั่นคือพวกเขาสตรีมโดยใช้แพ็กเก็ต RTP ไปยังเซิร์ฟเวอร์ตอนนี้คำถามคือสิ่งที่ทำบนเซิร์ฟเวอร์? trans-coding คืออะไรและมีการสตรีมอย่างไร
Azlam

ไม่ .. ฉันไม่ได้ไปหาวิธี SIPDroid มันซับซ้อนเกินไป .. จากนั้นฉันก็ทำอะไรกับ MJPEGServer
Azlam

19

ฉันได้สร้าง SDK โอเพนซอร์สที่เรียกว่าKickflipเพื่อทำให้การสตรีมวิดีโอจาก Android เป็นประสบการณ์ที่ไม่เจ็บปวด

SDK แสดงให้เห็นถึงการใช้MediaCodec API ของ Android 4.3 เพื่อส่งข้อมูลโดยตรงไปยัง FFmpeg สำหรับRTMP (พร้อม librtmp) หรือHLSสตรีมมิ่ง H.264 / AAC นอกจากนี้ยังแสดงผล OpenGL แบบเรียลไทม์ (การเอียง, คีย์สี, จางหาย) และการบันทึกพื้นหลัง

ขอบคุณมากและโดยเฉพาะอย่างยิ่งFadden


สามารถสตรีมไปยังไคลเอนต์ที่สามารถใช้งาน HLS ได้ (ไม่ใช่ไปยังเซิร์ฟเวอร์ของคุณเท่านั้น)?
4ntoine

4
@dbro ฉันพยายามเรียนรู้เกี่ยวกับบริการของคุณ แต่คุณต้องการข้อมูลการเข้าสู่ระบบก่อนที่ฉันจะสามารถดูราคาของคุณได้ ราวกับว่าพวกคุณกำลังรวบรวมที่อยู่อีเมล หากที่ไม่ตั้งใจของคุณคุณควรให้ข้อมูลการกำหนดราคา: วิธีการเดียวกันในการแยกวิเคราะห์และ App Engine และอื่น ๆ อีกมากมายได้ทำ
ผู้เรียน

เป็นไปได้ไหมที่กล้องวิดีโอจะส่งวิดีโอไปยัง Kickflip จากนั้นจะไปที่โทรศัพท์ android? หากกล้องวิดีโอประเภทใดที่เหมาะกับสิ่งนี้
Lutaaya Huzaifah Idris

11

นี่คือบทความที่สมบูรณ์เกี่ยวกับการสตรีมวิดีโอกล้อง android ไปยังหน้าเว็บ

Android สตรีมมิ่งกล้องวิดีโอสดไปยังหน้าเว็บ

  1. ใช้libstreamingบนแอป Android
  2. ที่ฝั่งเซิร์ฟเวอร์Wowza Media Engineจะใช้ในการถอดรหัสวิดีโอสตรีม
  3. ในที่สุดjWplayerจะใช้ในการเล่นวิดีโอบนหน้าเว็บ

สิ่งนี้ใช้องค์ประกอบที่มาปิด ทางเลือกโอเพนซอร์สใด ๆ
ราชา

คุณอาจใช้ JavaCV สำหรับสิ่งนี้ฉันใช้มันในโครงการของฉันเพื่อทำให้การสตรีมสดจากอุปกรณ์ Android ไปยังเซิร์ฟเวอร์สื่อ
wowza

libs คือการสตรีมฟรีหรือไม่
Akrramo

เราสามารถใช้อุปกรณ์การ์ดเสียงเป็นแหล่งสัญญาณเสียงเข้าและไม่ใช่ไมค์ใน libstreaming
2980181

5

ฉันสามารถส่งวิดีโอกล้องถ่ายทอดสดจากมือถือไปยังเซิร์ฟเวอร์ของฉันได้โดยใช้ลิงก์นี้เพื่อ ดูลิงก์

อ้างถึงลิงค์ข้างต้นมีแอปพลิเคชันตัวอย่างในลิงค์นั้น เพียงคุณต้องตั้งค่า URL บริการของคุณใน RecordActivity.class

ตัวอย่างเช่น: ffmpeg_link = "rtmp: // yourserveripaddress: 1935 / live / venkat";

เราสามารถส่งวิดีโอประเภท H263 และ H264 โดยใช้ลิงก์นั้น


ฉันใช้รหัสโดยใช้ลิงก์ด้านบน แต่ไม่สามารถเริ่มการบันทึกได้ ได้รับการยกเว้น "ไม่มีวิดีโอเพื่อสตรีม" คุณมีความคิดใด ๆ เกี่ยวกับเรื่องนี้?
Akhilesh Sk

@AkhileshSk โดยใช้รหัสด้านบนคุณสามารถส่งวิดีโอสดผ่าน rtmp url ไปยังเซิร์ฟเวอร์ของคุณ มันไม่ได้มีไว้สำหรับวัตถุประสงค์ในการบันทึก หากคุณต้องการบันทึกวิดีโอคุณจำเป็นต้องบันทึกไว้ที่ฝั่งเซิร์ฟเวอร์
Venkat

Hey @ Venkat เป็นไปได้หรือไม่ที่จะส่งวิดีโอสดจากกล้องไปยังโทรศัพท์ Android คุณมีลิงค์รหัสเช่นการใช้ Youtube live ฯลฯ
Lutaaya Huzaifah Idris

@LutaayaHuzaifahIdris ใช่มันเป็นไปได้ ฉันเคยทำงานเกี่ยวกับเรื่องนี้มาก่อน
Venkat

สวัสดี @Venkat คุณช่วยฉันด้วยสิ่งนี้ไม่สามารถหาไฟล์
RecordActivity.class

3

นี่เป็นคำตอบที่แทบจะไม่สมบูรณ์ แต่ webRTC อาจเป็นสิ่งที่คุณต้องการ นี่คือตัวอย่างย่อ ๆ ของ webRTC ที่ใช้งานจริง: http://www.webrtc.org/reference-apps

หากคุณต้องการรหัสเฉพาะ Android มันมีอยู่! http://www.webrtc.org/native-code/android


ไม่มีลิงก์ ให้ 404
Shivang

1

ตรวจสอบห้องสมุดYasea

Yasea เป็นไคลเอนต์สตรีมมิ่ง Android มันเข้ารหัสข้อมูล YUV และ PCM จากกล้องและไมโครโฟนไปที่ H.264 / AAC encapsulate ใน FLV และส่งผ่าน RTMP

ลักษณะเฉพาะ:

  1. Android mini API 16
  2. การเข้ารหัสแบบ H.264 / AAC อย่างหนัก
  3. H.264 เข้ารหัสนุ่ม
  4. การสตรีม RTMP พร้อมตัวจัดการการเรียกกลับสถานะ
  5. แนวตั้งและแนวนอนแบบไดนามิก
  6. สวิตช์ร้อนกล้องหน้าและหลัง
  7. บันทึกเป็น MP4 ขณะที่สตรีม

0

Mux (บริษัท ของฉัน) มีแอพพลิเคชั่นโอเพนซอร์สที่ส่งกระแสข้อมูล RTMP ไปยังเซิร์ฟเวอร์รวมถึงการตั้งค่ากล้องและการโต้ตอบกับผู้ใช้ มันถูกสร้างขึ้นเพื่อสตรีมไปยังสตรีมมิ่ง API แบบสดของ Mux แต่สามารถสตรีมไปยังจุดเข้า RTMP ใด ๆ ได้อย่างง่ายดาย


-7

ขึ้นอยู่กับงบประมาณของคุณคุณสามารถใช้กล้อง Raspberry Pi ที่สามารถส่งภาพไปยังเซิร์ฟเวอร์ ฉันเพิ่มที่นี่สองบทเรียนที่คุณสามารถหารายละเอียดเพิ่มเติม:

บทช่วยสอนนี้แสดงวิธีใช้กล้อง Raspberry Piและแสดงภาพบนอุปกรณ์ Android

นี่คือบทช่วยสอนที่สองที่คุณสามารถค้นหาชุดการสอนเกี่ยวกับการสตรีมวิดีโอแบบเรียลไทม์ระหว่างกล้องและอุปกรณ์ Android


นอกบริบท
Vikas Kandari
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.