Как выполнять потоковое видео с помощью Raspberry Pi?

Как выполнять потоковое видео с помощью 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 и узнали, что она работает нормально, мы готовы установить ее в подходящем месте. Его можно установить возле ворот дома, чтобы мы могли контролировать каждого человека, который входит или выходит из дома. Все, что нам нужно, это власть НА нашу камеру с помощью адаптера, и было бы лучше поместить ее в корпус и просто оставить камеру открытой для потоковой передачи видео.



Приложения

  1. Его можно устанавливать в домах в целях безопасности.
  2. Его можно использовать в офисах для наблюдения за перемещениями сотрудников.
  3. Он может быть установлен в торговых центрах, на вокзалах и т. Д., А администрация может получить к нему доступ для проверки и балансировки в определенной области.