Làm thế nào để thực hiện phát trực tuyến video bằng Raspberry Pi?

Raspberry Pi là một máy tính bỏ túi giá rẻ, đòi hỏi một số thiết bị cơ bản để thực hiện các dự án hấp dẫn có thể được sử dụng trong cuộc sống hàng ngày của chúng ta để làm cho cuộc sống của chúng ta trở nên đơn giản hơn. An thẻ SD được nhúng vào khe cắm thẻ trên bảng hoạt động như Ổ cứng cho Raspberry Pi. Các mẫu Raspberry Pi mới nhất thường có ba đến bốn cổng Universal Serial Bus (USB), một cổng ethernet và một Giao diện Đa phương tiện Độ nét cao (HDMI). Nó có thể làm tất cả những gì bạn dự đoán mà một trạm làm việc nên làm, như phát video chất lượng cao, tạo bảng tính, đài FM và chơi game, v.v. Máy quay phát trực tiếp có thể được sử dụng cho mục đích bảo mật hoặc cá nhân. Webcam, máy quay phim, máy ảnh DSLR và máy ảnh không gương lật để phát video trực tiếp dễ dàng có sẵn trên thị trường nhưng chúng có giá thành cao. Trong dự án này, chúng tôi sẽ tạo một camera phát trực tiếp bằng Raspberry Pi, một thiết bị tiết kiệm có thể được truy cập qua wifi quá. Chúng tôi có thể xem video phát trực tiếp trên điện thoại di động, máy tính bảng và máy tính để bàn của chúng tôi.

Làm thế nào để thiết lập camera Pi để phát trực tiếp?

Cách tiếp cận tốt nhất để bắt đầu bất kỳ dự án nào là lập danh sách các thành phần bởi vì không ai sẽ muốn dính vào giữa một dự án chỉ vì thiếu một thành phần.

Bước 1: Các thành phần cần thiết

Bước 2: Chọn Mô hình Raspberry Pi

Việc lựa chọn Raspberry Pi là một nhiệm vụ rất kỹ thuật và nó cần được thực hiện cẩn thận để bạn không bị ảnh hưởng trong tương lai. Raspberry Pi Zero không được ưa chuộng vì nó là mẫu máy cũ nhất hiện có trên thị trường với số lượng thông số kỹ thuật hạn chế và việc thiết lập mạng trên đó là một công việc rất mệt mỏi. Có thể mua các mẫu mới nhất như 3A +, 3B +. Raspberry Pi 3 là tiện ích nhanh nhất và chiếm ưu thế nhất mà Raspberry Pi Foundation đã phát hành cho đến nay. Vì vậy, trong dự án này, chúng tôi sẽ sử dụng Raspberry Pi 3B +.

Bước 3: Thiết lập Raspberry Pi

Có hai tùy chọn để thiết lập Raspberry Pi. Đầu tiên, một là kết nối Pi của bạn với LCD và kết nối tất cả các thiết bị ngoại vi cần thiết và bắt đầu hoạt động. Cách thứ hai là thiết lập Pi với máy tính xách tay và truy cập nó từ xa. Nó phụ thuộc vào tình trạng sẵn có của màn hình LCD, nếu bạn có nó ở nhà thì bạn có thể thiết lập Pi của mình bằng cách sử dụng màn hình LCD. Kết nối màn hình LCD với cổng HDMI của Raspberry bằng cách sử dụng bộ chuyển đổi HDMI sang VGA. Nếu bạn muốn truy cập Pi của mình từ xa, hãy làm theo bài viết của tôi có tên “Làm thế nào để truy cập giao diện người dùng đồ họa (GUI) của Raspberry Pi bằng SSH và VNC Viewer?”.Trong bài viết này, mô tả thiết lập chi tiết của Pi với máy tính xách tay và sau khi đăng nhập, bạn sẽ có thể truy cập từ xa vào Pi.

Bước 4: Đảm bảo rằng Raspberry Pi đã được cập nhật

Sau khi thiết lập Raspberry Pi, chúng tôi sẽ đảm bảo rằng Pi của chúng tôi đang hoạt động tốt và tất cả các gói mới nhất đã được cài đặt trên đó. Mở Cửa sổ Lệnh và gõ hai lệnh sau để cập nhật Pi.

sudo apt-get cập nhật

Sau đó,

sudo apt-get nâng cấp

Nếu bất kỳ bản cập nhật nào được cài đặt, hãy nhấn Y và sau đó nhấn Đi vào để tiếp tục tải xuống các bản cập nhật.

Bước 5: Bật mô-đun máy ảnh Raspberry Pi

Chúng ta cần kích hoạt mô-đun máy ảnh Raspberry Pi trước khi sử dụng nó. Đóng cửa sổ lệnh sau khi cập nhật các gói và nhấp vào biểu tượng Raspberry ở góc trên cùng bên trái của Màn hình nền. Cuộn xuống Tùy chọn Raspberry Pi, nhấp vào tùy chọn Giao diện và bật Máy ảnh từ đó.

Nó cũng có thể được kích hoạt bằng cách gõ lệnh sau vào Thiết bị đầu cuốicửa sổ:

sudo raspi-config

Sau khi gõ lệnh này, chúng ta sẽ thấy rằng Công cụ cấu hình phần mềm Raspberry Pi được mở và cuộn xuống Tùy chọn Giao diện và nhấn Đi vào.

Một màn hình mới sẽ xuất hiện và chúng ta sẽ thấy Máy ảnh được đề cập ở trên cùng. Nhấn nút Enter:

Sau khi bật máy ảnh, Pi cần được khởi động lại để các thay đổi có hiệu lực. Chúng tôi sẽ khởi động lại Pi của mình trước khi tiếp tục và có thể thực hiện bằng cách gõ lệnh sau.

khởi động lại sudo

Bước 6: Ghi xuống địa chỉ IP của Pi

Chúng tôi cần truy cập máy chủ web phát trực tuyến video sau đó, do đó chúng tôi cần biết địa chỉ IP được gán cho Raspberry Pi. Vì chúng tôi đã tìm ra địa chỉ IP trong khi thiết lập Pi của mình, chúng tôi sẽ ghi chú lại và tiến hành thêm. Có một cách khác để tìm ra địa chỉ IP đó là nhập lệnh sau vào cửa sổ Terminal sau khi thiết lập Wifi trên Pi của chúng tôi.

ifconfig

Trong trường hợp của tôi, Địa chỉ IP được gán cho Pi của tôi là “192.168.1.14“.

Bước 7: Kết nối mô-đun máy ảnh

Bây giờ, chúng tôi đã sẵn sàng cắm mô-đun máy ảnh của mình vào Pi nhưng trước khi làm như vậy, hãy lưu ý rằng máy ảnh có thể bị tổn hại bởi điện được tạo ra qua các điện tích tĩnh. Trước khi lấy máy ảnh ra khỏi gói màu xám, hãy đảm bảo rằng bạn đã phóng điện bằng cách chạm vào một số vật liệu nối đất. Trong khi cài đặt máy ảnh, hãy tắt Pi và kết nối máy ảnh với CSI của Pi và đảm bảo máy ảnh được liên kết theo đúng hướng với các dải chữ màu xanh lam hướng lên trên như thể hiện trong hình bên dưới.

Bước 8: Tìm kiếm định dạng phù hợp cho phát trực tuyến web

Đó là một nhiệm vụ hơi khó khăn vì không có định dạng video nào được hỗ trợ phổ biến bởi tất cả các trình duyệt web. HTTP được thiết kế để phục vụ các trang web ban đầu và kể từ khi ra mắt, nhiều bổ sung đã được thực hiện để phục vụ tải xuống tệp, phát trực tiếp, v.v. Do đó, để ý vấn đề này, chúng tôi sẽ phát trực tuyến video của mình ở định dạng đơn giản có tên là MJPEG. Mã được đề cập trong bước tiếp theo sử dụng http.servermô-đun giúp phát trực tuyến video dễ dàng hơn nhiều. Một định dạng phù hợp với mã có thể được tìm thấy tại chính thức Picamera trang mạng.

Bước 9: Viết kịch bản cho phát trực tuyến video

Chúng tôi cần viết kịch bản cho phát trực tuyến video và nó có thể được tìm thấy trên trang chính thức PiCameratrang mạng. Đầu tiên, tạo một tệp mới có tên làrpi_video_streaming.py bằng cách gõ lệnh sau vào cửa sổ Terminal:

sudo nano rpi_video_streaming.py

Sau khi tạo tệp, hãy sao chép mã được đề cập bên dưới hoặc tải xuống Mã từ đây. Nếu bạn đang tải xuống mã từ liên kết, hãy cuộn xuống trang web và kiểm tra 4.10. Truyền trực tuyến trên web phần.

nhập io nhập picamera nhập ghi nhật ký nhập socketserver từ nhập luồng Điều kiện từ máy chủ nhập http PAGE = "" "\   Bản demo phát trực tuyến picamera MJPEG   

Bản trình diễn phát trực tuyến PiCamera MJPEG

"" "class StreamingOutput (object): def __init __ (self): self.frame = Không self.buffer = io.BytesIO () self.condition = Condition () def write (self, buf): if buf.startswith (b '\ xff \ xd8'): # Khung mới, sao chép nội dung của bộ đệm hiện có và thông báo cho tất cả # khách hàng rằng nó có sẵn self.buffer.truncate () với self.condition: self.frame = self.buffer.getvalue () self.condition .notify_all () self.buffer.seek (0) trả về lớp self.buffer.write (buf) StreamingHandler (server.BaseHTTPRequestHandler): def do_GET (self): if self.path == '/': self.send_response (301 ) self.send_header ('Vị trí', '/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 ',' multiart / x-mix-Replace; border = FRAME ') self.end_headers () try: while 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') ngoại trừ Ngoại lệ là e: logging.warning ('Đã loại bỏ ứng dụng phát trực tuyến% s:% s', self.client_address, str (e)) else: self.send_error (404) self.end_headers () lớp 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 ') try: address = (' ', 8000) server = StreamingServer (address, StreamingHandler) server.serve_forever () cuối cùng: camera.stop_recording ()

Sau khi dán mã vào tệp mới được tạo, nhấn Ctrl + X, kiểu Y và hãy nhấn Đi vào.

Bước 10: Chạy Video Streaming

Sau khi lưu tập lệnh, chúng tôi sẽ chạy nó bằng Python3 bằng cách gõ lệnh sau:

python3 rpi_video_streaming.py

Sau khi viết lệnh này, tập lệnh của chúng tôi sẽ bắt đầu chạy và bây giờ chúng tôi có thể truy cập máy chủ web của mình tại http: //:8000. Chúng tôi sẽ mở trình duyệt và dán liên kết vào đó và sử dụng địa chỉ IP được bộ định tuyến gán cho Pi của chúng tôi. Chúng ta có thể xem video phát trực tuyến qua điện thoại di động, máy tính bảng, v.v. có cài đặt trình duyệt và được liên kết với mạng tương tự như Pi của chúng ta. Tôi đã viết, “192.168.1.14:8000” để chạy video trực tuyến.

Bước 11: Đưa ra những cái chạm cuối cùng

Khi chúng tôi đã kiểm tra máy ảnh Pi của mình và biết rằng nó hoạt động tốt, chúng tôi sẵn sàng lắp đặt nó ở một nơi phù hợp. Nó có thể được lắp đặt gần cổng của ngôi nhà để chúng tôi có thể giám sát mọi người ra vào nhà. Tất cả những gì chúng ta cần là cung cấp năng lượng TRÊNmáy ảnh của chúng tôi bằng cách sử dụng bộ chuyển đổi và sẽ tốt hơn nếu đặt nó bên trong vỏ và chỉ để hở cạnh máy ảnh để phát video.

Các ứng dụng

  1. Nó có thể được cài đặt trong nhà cho các mục đích an ninh.
  2. Nó có thể được sử dụng trong văn phòng để theo dõi sự di chuyển của nhân viên.
  3. Nó có thể được lắp đặt trong các trung tâm mua sắm, nhà ga, v.v. và có thể được nhân viên quản lý truy cập để kiểm tra và cân bằng trong một khu vực cụ thể.
Facebook Twitter Google Plus Pinterest