Как выполнять потоковое видео с помощью Raspberry Pi?'' 'классStreamingOutput(объект):def__в этом__(я):я.Рамказнак равноНиктоя.буферзнак равноя.BytesIO()я.состояниезнак равноСостояние()defзаписывать(я,бух):еслибух.начинается с(б' xff xd8'):# Новый кадр, скопируйте содержимое существующего буфера и уведомите всех# клиента доступноя.буфер.обрезать()с участиемя.состояние:я.Рамказнак равноя.буфер.получить значение()я.состояние.notify_all()я.буфер.стремиться(0)возвращениея.буфер.записывать(бух)классStreamingHandler(сервер.BaseHTTPRequestHandler):defполучить(я):еслия.путь=='/':я.send_response(301)я.send_header('Расположение','/index.html')я.end_headers()Элифя.путь=='/index.html':содержаниезнак равноСТРАНИЦА.кодировать('utf-8')я.send_response(200)я.send_header('Тип содержимого','текст / HTML')я.send_header('Content-Length',len(содержание))я.end_headers()я.wfile.записывать(содержание)Элифя.путь=='/stream.mjpg':я.send_response(200)я.send_header('Возраст',0)я.send_header('Кэш-контроль','без кеширования, частный')я.send_header(«Прагма»,'без кеша')я.send_header('Тип содержимого','multipart / x-mixed-replace; border = FRAME ')я.end_headers()пытаться:в то время какПравда:с участиемвывод.состояние:вывод.состояние.Подождите()Рамказнак равновывод.Рамкая.wfile.записывать(б'--РАМКА г п')я.send_header('Тип содержимого','изображение / JPEG')я.send_header('Content-Length',len(Рамка))я.end_headers()я.wfile.записывать(Рамка)я.wfile.записывать(б' г п')КромеИсключениев видеявляется:протоколирование.предупреждение('Удален потоковый клиент% s:% s',я.client_address,ул(является))еще:я.send_error(404)я.end_headers()классStreamingServer(сокетсервер.ThreadingMixIn,сервер.HTTPServer):allow_reuse_addressзнак равноПравдаdaemon_threadsзнак равноПравдас участиемпикамера.PiCamera(разрешающая способностьзнак равно640 x 480,частота кадровзнак равно24)в видекамера:выводзнак равноStreamingOutput()камера.начать запись(вывод,форматзнак равно'mjpeg')пытаться:адресзнак равно('',8000)серверзнак равноStreamingServer(адрес,StreamingHandler)сервер.serve_forever()Ну наконец то:камера.stop_recording()
После вставки кода в новый созданный файл нажмите Ctrl + X, тип И и нажмите Войти.
Шаг 10: Запуск потокового видео
После сохранения скрипта мы запустим его на Python3, набрав следующую команду:
python3 rpi_video_streaming.py
После написания этой команды наш скрипт запустится, и теперь мы можем получить доступ к нашему веб-серверу по адресу http: //: 8000 . Мы откроем браузер, вставим в него ссылку и будем использовать IP-адрес, назначенный нашему Pi маршрутизатором. Мы можем получить потоковое видео через наш мобильный телефон, планшет и т. Д., На котором установлен браузер и который связан с такой же сетью, как и наш Pi. Я написал, '192.168.1.14:8000' для запуска потокового видео.
Шаг 11: последние штрихи
Поскольку мы протестировали нашу камеру Pi и узнали, что она работает нормально, мы готовы установить ее в подходящем месте. Его можно установить возле ворот дома, чтобы мы могли контролировать каждого человека, который входит или выходит из дома. Все, что нам нужно, это власть НА нашу камеру с помощью адаптера, и было бы лучше поместить ее в корпус и просто оставить камеру открытой для потоковой передачи видео.
Приложения
Его можно устанавливать в домах в целях безопасности.
Его можно использовать в офисах для наблюдения за перемещениями сотрудников.
Он может быть установлен в торговых центрах, на вокзалах и т. Д., А администрация может получить к нему доступ для проверки и балансировки в определенной области.