Sau khi ghi lại hình ảnh riêng lẻ bằng webcam/camera (USB), chắc hẳn bạn cũng muốn xem hình ảnh trực tiếp. Điều này có thể diễn ra trên điện thoại thông minh hoặc trên PC từ bên ngoài mạng gia đình. Bài viết sẽ chỉ cho bạn cách cấu hình livestream camera an ninh Raspberry Pi.
Điều tuyệt vời là hầu hết mọi camera USB (cũng như webcam) đều có thể được sử dụng. Tùy thuộc vào vị trí, ví dụ, một camera không có bộ lọc hồng ngoại có thể hữu ích hơn trong việc ghi hình ban đêm.
Thiết bị cần có
Nếu muốn kết nối camera USB, Raspberry Pi rõ ràng phải có cổng USB trống. Tuy nhiên, bạn cũng có thể sử dụng camera chính thức, có sẵn trong hai phiên bản:
- Phiên bản Standard màu xanh lục có 8MP: Có thể ghi video ở 1080p. Vì được trang bị bộ lọc hồng ngoại, nó đặc biệt thích hợp để ghi ánh sáng ban ngày hoặc tại những nơi có đủ bức xạ ánh sáng.
- Phiên bản NoIR màu đen: Các thông số kỹ thuật (độ phân giải, v.v...) giống nhau, nhưng không có bộ lọc IR nào được cài đặt, giúp các bản ghi có điều kiện ánh sáng xấu trở nên tốt hơn. Tùy chọn này đặc biệt được khuyến nghị cho những cảnh tối.
Cả hai camera có thể được kết nối trực tiếp thông qua đầu nối CSI và không sử dụng cổng USB. Các model Zero mới hơn (từ thế hệ 2) hiện cũng có cổng CSI.
Ngoài ra, mọi webcam USB đều có thể được sử dụng miễn là các driver tương ứng cho Linux có sẵn. Nếu Raspberry Pi không có WiFi adapter tích hợp, thì cần trang bị thêm vì không thể tránh được việc phải kết nối mạng hoặc Internet.
Chuẩn bị cho livestream
Trước khi kích hoạt stream camera Raspberry Pi hoặc webcam USB, bạn cần cập nhật các gói:
sudo apt-get update
sudo apt-get upgrade
Sau đó, bạn có thể cài đặt công cụ Motion, giúp cho việc livestream trở nên khả thi.
sudo apt-get install motion -y
Việc cài đặt sẽ mất một chút thời gian.
Nếu mọi thứ vẫn hoạt động cho đến nay, camera có thể được kết nối. Nếu đang sử dụng webcam USB, bạn có thể kiểm tra xem nó đã được phát hiện chưa:
lsusb
Nếu không có driver đặc biệt được yêu cầu, tất cả các camera/thiết bị video đã kết nối sẽ được hiển thị bằng lệnh sau:
ls /dev/video*
Nếu bạn đang sử dụng một trong các mô-đun camera chính thức, điều quan trọng là phải làm như sau để camera được hiển thị ngay lập tức.
sudo modprobe bcm2835-v4l2
Nếu chỉ một camera Raspberry Pi/webcam duy nhất được kết nối, bằng cách sử dụng /dev/video0, thiết bị sẽ được chỉ định. Nếu có một vài thiết bị được kết nối, bạn phải chọn thiết bị để truyền stream.
Cấu hình livestream Raspberry Pi
Đối với các bước thiết lập một số cài đặt tiếp theo, ta cần xem chi tiết camera:
v4l2-ctl -V
Đối với webcam USB ví dụ, tác giả bài viết đã nhận được đầu ra sau đây. Chúng tôi sẽ ngay lập tức chỉ định thông tin cho độ phân giải, v.v... trong file cấu hình.
pi@raspberrypi:~ $ v4l2-ctl -V
Format Video Capture:
Width/Height : 640/480
Pixel Format : 'YUYV'
Field : None
Bytes per Line: 1280
Size Image : 614400
Colorspace : SRGB
Flags :
Hãy để chỉnh sửa file cấu hình của Motion:
sudo nano /etc/motion/motion.conf
Các dòng sau phải được điều chỉnh (biến có thể được tìm kiếm bằng CTRL
+W
):
# Start in daemon (background) mode and release terminal (default: off)
daemon on
...
# Restrict stream connections to localhost only (default: on)
stream_localhost off
...
# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
target_dir /home/pi/Monitor
Các dòng sau cũng nên được thay đổi:
v4l2_palette 15 # Nummer aus der Tabelle davor entnehmen, 15 enstpricht YUYV
...
# Image width (pixels). Valid range: Camera dependent, default: 352
width 640
# Image height (pixels). Valid range: Camera dependent, default: 288
height 480 # Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
framerate 10
Lưu lại thay đổi bằng phím tắt CTRL
+O
và đóng bằng CTRL
+X
. Các tùy chọn khác (cổng, v.v...) cũng có thể được điều chỉnh sau đó (yêu cầu khởi động lại).
Bây giờ, bạn phải kích hoạt daemon để có thể chạy service sau đó:
sudo nano /etc/default/motion
Thay thế No bằng Yes trong lệnh sau:
start_motion_daemon=yes
Bây giờ, bạn phải tạo thư mục mà trước đây được chỉ định là vị trí lưu trữ cho các khung hình đã chụp và cung cấp cho nó quyền ghi cần thiết:
mkdir /home/pi/Monitor
sudo chgrp motion /home/pi/Monitor
chmod g+rwx /home/pi/Monitor
Sau đó, bạn có thể bắt đầu service:
sudo service motion start
Thử nghiệm livestream camera giám sát Raspberry Pi
Để kiểm tra xem camera có thực sự gửi hình ảnh trực tiếp hay không, về cơ bản có hai tùy chọn: Một cách đơn giản là sử dụng trình duyệt (Mozilla Firefox, Chrome, v.v...) và tên của Raspberry Pi theo sau là cổng (mặc định: 8081). Nếu bạn chưa thay đổi hostname và cổng, bạn sẽ có thể thấy stream: http://raspberrypi:8081/ (Ngoài ra, địa chỉ IP cục bộ có thể được sử dụng, chẳng hạn như 192.168.1.51:8081).
Một số trình duyệt cũ hơn (như Internet Explorer) không hỗ trợ stream này. Những người dùng đó có thể chọn livestream trên VLC Player chẳng hạn. Để thực hiện việc này, chỉ cần mở VLC Player và chỉ định trong menu Media > Open Network Stream (CTRL
+N
) địa chỉ trên. Điều này cũng có thể thực hiện trong VLC Player dành cho điện thoại thông minh và máy tính bảng (Android, Apple): Chọn Open Media Address trong menu và địa chỉ IP bao gồm cổng.
Tùy thuộc vào framerate được chỉ định (trong file cấu hình), hình ảnh có thể tốt hơn hoặc không. Tất nhiên, camera cũng phải hỗ trợ tốc độ khung hình đó.
Làm cho livestream có sẵn bên ngoài mạng gia đình
Vì việc xem camera trong mạng riêng không có nhiều ý nghĩa, nên mọi người thường muốn truy cập nó từ bên ngoài. Để làm điều này, bạn cần một IP cố định hoặc dịch vụ DNS.
Lưu ý: Về mặt lý thuyết, bạn cũng có thể không sử dụng địa chỉ IP tĩnh, nhưng điều này có nhược điểm là sau mỗi lần kết nối lại, bạn sẽ nhận được một địa chỉ IP mới. Vì nhà cung cấp (khoảng một lần mỗi ngày, thường là vào ban đêm) buộc phải kết nối lại router, nên dịch vụ DNS rất được khuyến khích, vì địa chỉ DNS không thay đổi.
Ngoài ra, bạn phải mở cổng đã chọn (ví dụ 8081) trong router để thực hiện port forwarding (chuyển tiếp cổng). Điều này có nghĩa là bạn có thể chỉ định đến cổng này từ bên ngoài mạng và kết nối với nó.
Trong tiêu đề Port forwarding hoặc tương tự, bạn có thể chỉ định cổng được mở cho một địa chỉ IP cục bộ cụ thể. Router ví dụ trông như sau:
Menu của hầu hết router có thể truy cập thông qua 192.168.1.1 hoặc 192.168.0.1 bằng trình duyệt.
Nếu bạn sử dụng VLC Player, tất nhiên, bây giờ, bạn phải thay thế địa chỉ IP cục bộ mà bạn đã chỉ định trước đó bằng DNS hoặc địa chỉ IP tĩnh (cổng vẫn giống nhau). Một số router có thể thất bại khi làm điều này trong mạng gia đình.
Để kiểm tra tại nhà, bạn có thể sử dụng dữ liệu di động trên điện thoại chẳng hạn. Hãy tắt WiFi và kiểm tra xem bạn có thể xem livestream camera giám sát Raspberry Pi không. Tùy thuộc vào kết nối Internet (tốc độ upload), hình ảnh có thể bị chậm một chút.