วิธีการสตรีมวิดีโอโดยใช้ Raspberry Pi
Raspberry Pi เป็นคอมพิวเตอร์ขนาดพกพาราคาประหยัดที่ต้องใช้อุปกรณ์พื้นฐานบางอย่างในการสร้างโปรเจ็กต์ที่น่าสนใจ ซึ่งสามารถนำไปใช้ในชีวิตประจำวันเพื่อทำให้ชีวิตของเราง่ายขึ้น อัน การ์ด SD ฝังลงในช่องเสียบการ์ดบนบอร์ดทำหน้าที่เป็น ฮาร์ดไดรฟ์ สำหรับ Raspberry Pi Raspberry Pi รุ่นล่าสุดมักจะมีพอร์ต Universal Serial Bus (USB) สามถึงสี่พอร์ตพอร์ตอีเธอร์เน็ตหนึ่งพอร์ตและอินเทอร์เฟซมัลติมีเดียความละเอียดสูง (HDMI) หนึ่งพอร์ต สามารถทำทุกอย่างที่คุณคาดหวังว่าสถานีงานควรทำเช่นการเล่นวิดีโอคุณภาพเยี่ยมการสร้างสเปรดชีตสถานีวิทยุ FM และการเล่นเกม ฯลฯ กล้องวิดีโอสตรีมมิงแบบสดสามารถใช้เพื่อความปลอดภัยหรือวัตถุประสงค์ส่วนบุคคล เว็บแคมกล้องวิดีโอ DSLR และกล้องมิเรอร์เลสสำหรับการสตรีมวิดีโอสดนั้นหาซื้อได้ง่ายในตลาด แต่มีค่าใช้จ่ายสูง ในโครงการนี้เราจะสร้างกล้องถ่ายทอดสดโดยใช้ Raspberry Pi ซึ่งเป็นอุปกรณ์ราคาประหยัดที่สามารถเข้าถึงได้ Wifi เกินไป. เราจะสามารถดูการสตรีมวิดีโอสดบนโทรศัพท์มือถือแท็บเล็ตและเดสก์ท็อปพีซีของเราได้
วิธีการตั้งค่ากล้อง Pi สำหรับการสตรีมสด
แนวทางที่ดีที่สุดในการเริ่มต้นโครงการคือการสร้างรายการส่วนประกอบเนื่องจากไม่มีใครต้องการติดอยู่ตรงกลางของโครงการเพียงเพราะส่วนประกอบที่ขาดหายไป
ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
ขั้นตอนที่ 2: การเลือกรุ่น Raspberry Pi
การเลือก Raspberry Pi เป็นงานที่ต้องใช้เทคนิคมากและควรทำอย่างระมัดระวังเพื่อที่คุณจะได้ไม่ต้องทนทุกข์ทรมานในอนาคต Raspberry Pi Zero ไม่เป็นที่ต้องการเนื่องจากเป็นรุ่นที่เก่าแก่ที่สุดในตลาดโดยมีข้อกำหนดจำนวน จำกัด และการตั้งค่าเครือข่ายเป็นงานที่เหนื่อยมาก รุ่นล่าสุดเช่น 3A+, 3B+ สามารถซื้อได้ Raspberry Pi 3 เป็นอุปกรณ์ที่เร็วและโดดเด่นที่สุดที่ Raspberry Pi Foundation เปิดตัวจนถึงปัจจุบัน ดังนั้นในโครงการนี้เราจะใช้ Raspberry Pi 3B +
ขั้นตอนที่ 3: การตั้งค่า Raspberry Pi
มีสองตัวเลือกสำหรับการตั้งค่า Raspberry Pi อันดับแรกคือการเชื่อมต่อ Pi ของคุณกับ LCD และเชื่อมต่ออุปกรณ์ต่อพ่วงที่จำเป็นทั้งหมดและเริ่มทำงาน อย่างที่สองคือการตั้งค่า Pi ด้วยแล็ปท็อปและเข้าถึงจากระยะไกล ขึ้นอยู่กับความพร้อมใช้งานของ LCD หากคุณมีที่บ้านคุณสามารถตั้งค่า Pi ได้โดยใช้ LCD เชื่อมต่อ LCD เข้ากับพอร์ต HDMI ของ Raspberry โดยใช้อะแดปเตอร์ HDMI เป็น VGA หากคุณต้องการเข้าถึง Pi ของคุณจากระยะไกลให้ทำตามบทความของฉันที่ชื่อ “ วิธีเข้าถึงอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ของ Raspberry Pi โดยใช้ SSH และ VNC Viewer”ในบทความนี้มีการอธิบายการตั้งค่า Pi ด้วยแล็ปท็อปโดยละเอียดและหลังจากเข้าสู่ระบบคุณจะสามารถเข้าถึง Pi จากระยะไกลได้
ขั้นตอนที่ 4: ตรวจสอบให้แน่ใจว่า Raspberry Pi ทันสมัยแล้ว
หลังจากตั้งค่า Raspberry Pi แล้วเราจะตรวจสอบให้แน่ใจว่า Pi ของเราทำงานได้ดีและติดตั้งแพ็คเกจล่าสุดทั้งหมดแล้ว เปิดหน้าต่างคำสั่งและพิมพ์คำสั่งสองคำสั่งต่อไปนี้เพื่ออัปเดต Pi
sudo apt-get update
จากนั้น
sudo apt-get อัพเกรด
หากติดตั้งการอัปเดตใด ๆ ให้กด ย จากนั้นกด ป้อน เพื่อดาวน์โหลดการอัปเดตต่อไป
ขั้นตอนที่ 5: เปิดใช้งานโมดูลกล้อง Raspberry Pi
เราจำเป็นต้องเปิดใช้งานโมดูลกล้อง Raspberry Pi ก่อนใช้งาน ปิดหน้าต่างคำสั่งหลังจากอัปเดตแพ็คเกจแล้วคลิกไอคอน Raspberry ที่มุมบนซ้ายของหน้าจอเดสก์ท็อป เลื่อนลงไปที่ Raspberry Pi Preferences คลิกที่ตัวเลือก Interfaces และเปิดใช้งานไฟล์ กล้อง จากที่นั่น.
นอกจากนี้ยังสามารถเปิดใช้งานได้โดยพิมพ์คำสั่งต่อไปนี้ในไฟล์ เทอร์มินอลหน้าต่าง:
sudo raspi-config
หลังจากพิมพ์คำสั่งนี้เราจะเห็นว่า เครื่องมือกำหนดค่าซอฟต์แวร์ Raspberry Pi จะเปิดขึ้นและเลื่อนลงไปที่ Interfacing Options แล้วกด ป้อน.
หน้าจอใหม่จะปรากฏขึ้นและเราจะเห็นไฟล์ กล้อง กล่าวไว้ที่ด้านบน กดปุ่มตกลง:
หลังจากเปิดใช้งานกล้อง Pi จะต้องรีบูตเพื่อให้การเปลี่ยนแปลงมีผล เราจะรีบูต Pi ของเราก่อนที่จะดำเนินการต่อไปและสามารถทำได้โดยพิมพ์คำสั่งต่อไปนี้
sudo รีบูต
ขั้นตอนที่ 6: จดบันทึกที่อยู่ IP ของ Pi
เราจำเป็นต้องเข้าถึงเว็บเซิร์ฟเวอร์สตรีมมิ่งวิดีโอในภายหลังดังนั้นเราจึงจำเป็นต้องทราบที่อยู่ IP ที่กำหนดให้กับ Raspberry Pi เนื่องจากเราได้พบที่อยู่ IP แล้วในขณะตั้งค่า Pi เราจะจดบันทึกไว้และดำเนินการต่อไป มีวิธีอื่นในการค้นหาที่อยู่ IP ด้วยเช่นกันนั่นคือการพิมพ์คำสั่งต่อไปนี้ในหน้าต่าง Terminal หลังจากตั้งค่า Wifi บน Pi ของเรา
ifconfig
ในกรณีของฉันที่อยู่ IP ที่กำหนดให้กับ Pi ของฉันคือ "192.168.1.14“.
ขั้นตอนที่ 7: การเชื่อมต่อโมดูลกล้อง
ตอนนี้เราพร้อมที่จะเสียบโมดูลกล้องของเราเข้ากับ Pi แล้ว แต่ก่อนที่จะทำเช่นนั้นโปรดทราบว่ากล้องอาจได้รับอันตรายจากกระแสไฟฟ้าที่เกิดจากประจุไฟฟ้าสถิต ก่อนที่จะนำกล้องออกจากแพ็คเก็ตสีเทาให้แน่ใจว่าคุณได้ปลดปล่อยตัวเองโดยการสัมผัสวัสดุที่ต่อสายดิน ในขณะที่ติดตั้งกล้องปิด Pi และเชื่อมต่อกล้องเข้ากับ CSI พอร์ตของ Pi และตรวจสอบให้แน่ใจว่ากล้องเชื่อมต่อในทิศทางที่ถูกต้องโดยให้แถบตัวอักษรสีน้ำเงินหันขึ้นตามที่แสดงในรูปด้านล่าง
ขั้นตอนที่ 8: ค้นหารูปแบบที่เหมาะสมสำหรับการสตรีมเว็บ
เป็นงานที่ค่อนข้างยากเนื่องจากไม่มีรูปแบบวิดีโอที่เว็บเบราว์เซอร์ทั้งหมดรองรับ HTTP ได้รับการออกแบบมาเพื่อให้บริการหน้าเว็บในตอนแรกและตั้งแต่เปิดตัวมีการเพิ่มจำนวนมากสำหรับการดาวน์โหลดไฟล์การสตรีมแบบสดและอื่น ๆ ด้วยเหตุนี้เราจะสตรีมวิดีโอของเราในรูปแบบง่ายๆที่ชื่อเป็น MJPEG. รหัสที่กล่าวถึงในขั้นตอนถัดไปใช้ในตัว http.serverโมดูลเพื่อให้การสตรีมวิดีโอง่ายขึ้นมาก สามารถดูรูปแบบที่เหมาะสมพร้อมรหัสได้ที่ทางการ Picamera เว็บไซต์.
ขั้นตอนที่ 9: การเขียนสคริปต์สำหรับการสตรีมวิดีโอ
เราจำเป็นต้องเขียนสคริปต์สำหรับการสตรีมวิดีโอและสามารถพบได้ในทางการ PiCameraเว็บไซต์. ประการแรกสร้างไฟล์ใหม่ชื่อเป็นrpi_video_streaming.py โดยพิมพ์คำสั่งต่อไปนี้ในหน้าต่าง Terminal:
sudo nano rpi_video_streaming.py
หลังจากสร้างไฟล์แล้ว ให้คัดลอกโค้ดที่ระบุด้านล่างหรือดาวน์โหลดโค้ดจากที่นี่ หากคุณกำลังดาวน์โหลดรหัสจากลิงค์ให้เลื่อนหน้าเว็บลงมาและตรวจสอบ 4.10. เว็บสตรีมมิ่ง ส่วน.
นำเข้า io นำเข้า picamera นำเข้าบันทึกการนำเข้า socketserver จากเธรดการนำเข้าเงื่อนไขจากเซิร์ฟเวอร์นำเข้า http PAGE = "" "\การสาธิตการสตรีม Picamera MJPEG PiCamera MJPEG สตรีมมิ่งสาธิต
"" "class StreamingOutput (object): def __init __ (self): self.frame = ไม่มี self.buffer = io BytesIO () self.condition = Condition () def เขียน (self, buf): if buf.startswith (b '\xff\xd8'): # เฟรมใหม่ คัดลอกเนื้อหาของบัฟเฟอร์ที่มีอยู่และแจ้งไคลเอ็นต์ # ทั้งหมดว่าพร้อมใช้งาน self.buffer.truncate() ด้วย self.condition: self.frame = self.buffer.getvalue() self.condition .notify_all () self.buffer.seek (0) ส่งคืนคลาส self.buffer.write (buf) StreamingHandler (server.BaseHTTPRequestHandler): def do_GET (ตนเอง): if self.path == '/': self.send_response (301 ) self.send_header ('Location', '/index.html') self.end_headers () elif self.path == '/index.html': content = PAGE.encode ('utf-8') self.send_response ( 200) self.send_header ('Content-Type', 'text / html') self.send_header ('Content-Length', len (content)) self.end_headers () self.wfile.write (content) elif self.path == '/stream.mjpg': self.send_response(200) self.send_header('Age', 0) self.send_header('Cache-Control', 'no-cache, private') self.send_header('P ragma ',' no-cache ') self.send_header (' Content-Type ',' multipart / x-mixed-replace; ขอบเขต = FRAME ') self.end_headers () ลอง: ในขณะที่ True: with output.condition: output.condition.wait () frame = output.frame self.wfile.write (b' - FRAME \ r \ n ') self .send_header ('Content-Type', 'image / jpeg') self.send_header ('Content-Length', len (frame)) self.end_headers () self.wfile.write (frame) self.wfile.write (b '\ r \ n') ยกเว้น Exception เป็น e: logging.warning ('Removed streaming client% s:% s', self.client_address, str (e)) else: self.send_error (404) self.end_headers () class StreamingServer (socketserver.ThreadingMixIn, server.HTTPServer): allow_reuse_address = True daemon_threads = True with picamera.PiCamera (resolution = '640x480', framerate = 24) as camera: output = StreamingOutput () camera.start_recording (output, format = 'mjpeg ') ลอง: address = (' ', 8000) เซิร์ฟเวอร์ = StreamingServer (ที่อยู่, StreamingHandler) server.serve_forever () ในที่สุด: camera.stop_recording ()
หลังจากวางรหัสในไฟล์ใหม่ที่สร้างขึ้น press Ctrl + X ชนิด ย แล้วกด ป้อน
ขั้นตอนที่ 10: เรียกใช้การสตรีมวิดีโอ
หลังจากบันทึกสคริปต์แล้วเราจะเรียกใช้โดยใช้ Python3 โดยพิมพ์คำสั่งต่อไปนี้:
python3 rpi_video_streaming.py
หลังจากเขียนคำสั่งนี้สคริปต์ของเราจะเริ่มทำงานและตอนนี้เราสามารถเข้าถึงเว็บเซิร์ฟเวอร์ของเราได้ที่ http://
ขั้นตอนที่ 11: ให้สัมผัสสุดท้าย
จากการที่เราได้ทดสอบกล้อง Pi ของเราและรู้ว่ามันใช้งานได้ดีเราก็พร้อมที่จะติดตั้งในสถานที่ที่เหมาะสม อาจติดตั้งไว้ใกล้ประตูบ้านเพื่อให้ตรวจสอบทุกคนที่เข้าหรือออกจากบ้านได้ ทั้งหมดที่เราต้องการคือพลัง บนกล้องของเราโดยใช้อะแดปเตอร์และจะดีกว่าถ้าใส่ไว้ในปลอกและเปิดด้านข้างของกล้องไว้เพื่อสตรีมวิดีโอ
แอพพลิเคชั่น
- สามารถติดตั้งในบ้านเพื่อความปลอดภัย
- สามารถใช้ในสำนักงานเพื่อตรวจสอบความเคลื่อนไหวของพนักงาน
- สามารถติดตั้งในห้างสรรพสินค้าสถานีรถไฟ ฯลฯ และเจ้าหน้าที่ธุรการสามารถเข้าถึงได้เพื่อตรวจสอบและถ่วงดุลในพื้นที่เฉพาะ