วิธีการสตรีมวิดีโอโดยใช้ 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://:8000. เราจะเปิดเบราว์เซอร์และวางลิงค์ลงในนั้นและใช้ที่อยู่ IP ที่เราเตอร์กำหนดให้กับ Pi ของเรา เราสามารถเข้าสู่การสตรีมวิดีโอผ่านโทรศัพท์มือถือแท็บเล็ตและอื่น ๆ ที่มีเบราว์เซอร์ติดตั้งอยู่และเชื่อมโยงกับเครือข่ายที่คล้ายกันกับ Pi ของเรา ฉันเขียน, “192.168.1.14:8000” สำหรับการเรียกใช้สตรีมมิ่งวิดีโอ

ขั้นตอนที่ 11: ให้สัมผัสสุดท้าย

จากการที่เราได้ทดสอบกล้อง Pi ของเราและรู้ว่ามันใช้งานได้ดีเราก็พร้อมที่จะติดตั้งในสถานที่ที่เหมาะสม อาจติดตั้งไว้ใกล้ประตูบ้านเพื่อให้ตรวจสอบทุกคนที่เข้าหรือออกจากบ้านได้ ทั้งหมดที่เราต้องการคือพลัง บนกล้องของเราโดยใช้อะแดปเตอร์และจะดีกว่าถ้าใส่ไว้ในปลอกและเปิดด้านข้างของกล้องไว้เพื่อสตรีมวิดีโอ

แอพพลิเคชั่น

  1. สามารถติดตั้งในบ้านเพื่อความปลอดภัย
  2. สามารถใช้ในสำนักงานเพื่อตรวจสอบความเคลื่อนไหวของพนักงาน
  3. สามารถติดตั้งในห้างสรรพสินค้าสถานีรถไฟ ฯลฯ และเจ้าหน้าที่ธุรการสามารถเข้าถึงได้เพื่อตรวจสอบและถ่วงดุลในพื้นที่เฉพาะ
Facebook Twitter Google Plus Pinterest