กล้อง UVC / กล้อง Usb แบบกำหนดเอง แอป สำหรับ Android รีวิว by AndroidFreeware
Android-UVC-Camera
แอปเชื่อมต่อกับกล้อง usb จากอุปกรณ์ Android ของคุณ (ต้องใช้สาย OTG หรือ OTG Hub)
โครงการนี้ถูกสร้างขึ้นเพื่อทำการสตรีมวิดีโอแบบ Isochronous สำหรับอุปกรณ์ Android ทั้งหมด (ตั้งแต่ 4.1 Ice Cream Sandwich ขึ้นไป) (รวมถึงอุปกรณ์ Mediathek) โดยใช้กล้อง UVC โปรแกรมจะใช้ไดรเวอร์ usb ของผู้ใช้ในการทำการถ่ายโอนแบบ isochronous กับอุปกรณ์กล้องของคุณ
ทำตามวิธีนี้เพื่อตั้งค่าไดรเวอร์อุปกรณ์ผู้ใช้ของคุณเอง:
ก่อนอื่นคุณต้องตั้งค่าการตั้งค่ากล้องทั้งหมดสำหรับอุปกรณ์ของคุณ โปรแกรมจะบันทค่าต่าง ๆ และคุณสามารถกู้คืนค่าที่บันทึกไว้หรือเขียนทับด้วยค่าต่าง ๆ ใหม่ ใช้ปุ่ม Edit/Save/Restore เพื่อปรับค่าต่าง ๆ ใช้การค้นหากล้องอัตโนมัติเพื่อค้นหาและตั้งค่ากล้อง
คำอธิบาย:
เมื่อการค้นหาอัตโนมัติประสบความสำเร็จ คุณจะต้องตั้งค่าขนาดแพ็กเกจสูงสุดก่อน หากอุปกรณ์ของคุณเป็นอุปกรณ์ mediathek คุณอาจต้องลดค่าขนาดแพ็กเกจสูงสุด ค่าที่ชื่อว่า PACKETS PER REQUEST กำหนดจำนวนแพ็กเกจที่ส่งไปยังอุปกรณ์: หนึ่งแพ็กเกจมีขนาด 3000 ไบต์และคุณใช้ 16 แพ็กเกจในครั้งเดียวในการส่ง ที่นี่คุณกำหนดจำนวนไบต์ที่ถูกส่ง
สิ่งถัดไปคือ USB REQUEST BLOCKS (activeUrb): ซึ่งมีความสัมพันธ์กับขนาดแพ็กเกจสูงสุด คุณต้องค้นหาค่าที่ถูกต้องสำหรับอุปกรณ์ของคุณและควบคุมการแสดงผลบนหน้าจอภายใต้เมนู Isoread ค่าปกติสำหรับอุปกรณ์ Qualcom ได้แก่: 8 สำหรับ activeUrbs และ 16 แพ็กเกจต่อคำขอ....
สิ่งแรกของวิธีการ Isoread คือการถ่ายโอนควบคุมไปยังอุปกรณ์กล้อง:
หากการถ่ายโอนควบคุมสำเร็จ คุณก็พร้อมที่จะดำเนินการต่อ
ต่อไปให้ดูที่เฟรม
เมื่อคุณได้รับเฟรมที่เหมือนกันและยาว คุณสามารถดำเนินการต่อไปยังวิธี Isostream ซึ่งจะมีการแสดงเฟรมบนหน้าจอของคุณ
เพื่อทราบว่าเฟรมควรมีขนาดเท่าใด คุณสามารถดูที่ผลลัพธ์ของการถ่ายโอนควบคุมของกล้องในบันทึก: maxVideoFrameSize ค่านี้ถูกส่งคืนจากกล้องและควรเป็นขนาดเฟรมที่ถูกต้อง (ค่าจะคำนวณจากความกว้างของภาพ x ความสูงของภาพ x 2)
คลาส IsochronousRead1 แสดงให้คุณเห็นว่าเฟรมถูกจัดโครงสร้างโดยกล้องอย่างไร การตั้งค่ากล้องที่แตกต่างกัน == โครงสร้างเฟรมที่แตกต่างกัน ลองใช้การตั้งค่าที่แตกต่างกันและดูที่ผลลัพธ์ คำแนะนำ eof แสดงขนาดเฟรมในบันทึก สำหรับการตั้งค่ากล้องที่ถูกต้อง ขนาดควรจะเหมือนกับค่าของ maxFrameSize จากการถ่ายโอนควบคุม
วิธีการส่งออก Isoread: (การถ่ายโอนควบคุม) ก่อนอื่นโปรแกรมจะส่งการถ่ายโอนควบคุมไปยังอุปกรณ์กล้องของคุณ ผลลัพธ์ของมันมีลักษณะดังนี้:
พารามิเตอร์การสตรีมเริ่มต้น: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=0 maxPayloadTransferSize=0
พารามิเตอร์การสตรีมที่สำรวจ: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
พารามิเตอร์การสตรีมสุดท้าย: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
บรรทัดแรกคือค่าที่คุณตั้งไว้ในโปรแกรมเพื่อต่อเชื่อมกับกล้อง (พารามิเตอร์การสตรีมเริ่มต้น)
บรรทัดที่สองคือค่าจากกล้อง ซึ่งกล้องส่งคืนจากค่าของคุณ
และในบรรทัดที่สามคือค่าที่ใหม่ที่บันทึกไว้และค่าที่สุดท้ายจากกล้อง usb
ผลลัพธ์จากวิธีแรก: isoRead:
EOF frameLen=10436. --> ตัวอย่างเช่น เฟรมที่นี่สิ้นสุดด้วยความยาว 10436 ซึ่งไม่ใช่ 614400 ตามที่เราคาดหวังจากการถ่ายโอนควบคุม ดังนั้นคุณอาจต้องเปลี่ยนค่าบางอย่างในโปรแกรมของคุณเพื่อให้ได้ขนาดเฟรมที่ถูกต้อง








