Как да изпълнявам видео стрийминг с помощта на Raspberry Pi?

Как да изпълнявам видео стрийминг с помощта на Raspberry Pi? ' клас StreamingOutput(обект): деф __в него__(себе си): себе си.кадър = Нито един себе си.буфер = Аз.BytesIO() себе си.състояние = Състояние() деф пиши(себе си, buf): ако buf.започва с(б' xff xd8'): # Нов кадър, копирайте съдържанието на съществуващия буфер и уведомете всички # клиенти е на разположение себе си.буфер.отсече() с себе си.състояние: себе си.кадър = себе си.буфер.getvalue() себе си.състояние.notify_all() себе си.буфер.търси(0) връщане себе си.буфер.пиши(buf) клас StreamingHandler(сървър.BaseHTTPRequestHandler): деф do_GET(себе си): ако себе си.път == '/': себе си.изпрати_отговор(301) себе си.send_header(„Местоположение“, „/index.html“) себе си.end_headers() elif себе си.път == „/index.html“: съдържание = СТРАНИЦА.кодиране(„utf-8“) себе си.изпрати_отговор(200) себе си.send_header('Тип съдържание', „текст / html“) себе си.send_header(„Дължина на съдържанието“, пост(съдържание)) себе си.end_headers() себе си.wfile.пиши(съдържание) elif себе си.път == '/stream.mjpg': себе си.изпрати_отговор(200) себе си.send_header('Възраст', 0) себе си.send_header(„Контрол на кеша“, „без кеш, частно“) себе си.send_header(„Прагма“, „без кеш“) себе си.send_header('Тип съдържание', 'multipart / x-mixed-replace; граница = РАМКА ') себе си.end_headers() опитвам: докато Вярно: с изход.състояние: изход.състояние.изчакайте() кадър = изход.кадър себе си.wfile.пиши(б'--КАДЪР r n') себе си.send_header('Тип съдържание', 'image / jpeg') себе си.send_header(„Дължина на съдържанието“, пост(кадър)) себе си.end_headers() себе си.wfile.пиши(кадър) себе си.wfile.пиши(б' r n') с изключение Изключение като е: сеч.внимание( „Премахнат клиент за стрийминг:', себе си.client_address, ул(е)) друго: себе си.send_error(404) себе си.end_headers() клас StreamingServer(сокет сървър.ThreadingMixIn, сървър.HTTPS сървър): allow_reuse_address = Вярно daemon_threads = Вярно с пикамера.PiCamera(резолюция='640x480', честота на кадрите=24) като камера: изход = StreamingOutput() камера.начало_запис(изход, формат=„mjpeg“) опитвам: адрес = (', 8000) сървър = StreamingServer(адрес, StreamingHandler) сървър.служи_завинаги() накрая: камера.стоп_запис()

След като поставите кода в създадения нов файл, натиснете Ctrl + X, Тип И и натиснете Въведете.



Стъпка 10: Стартиране на видео стрийминг

След като запазим скрипта, ще го стартираме с помощта на Python3, като напишем следната команда:

 python3 rpi_video_streaming.py 

След написването на тази команда нашият скрипт ще започне да работи и вече можем да осъществим достъп до нашия уеб сървър на http: //: 8000 . Ще отворим браузъра и ще поставим връзката в него и ще използваме IP адреса, който е зададен на нашия Pi от рутера. Можем да стигнем до поточното видео чрез нашия мобилен телефон, таблет и т.н., който има инсталиран браузър и е свързан с подобна мрежа като нашата Pi. Написах, „192.168.1.14:8000“ за стартиране на видео стрийминг.



Стъпка 11: Осъществяване на финални щрихи

Тъй като тествахме нашата камера Pi и разбрахме, че работи добре, ние сме готови да я инсталираме на подходящо място. Може да бъде инсталиран близо до портата на къщата, за да можем да наблюдаваме всеки човек, който влиза или излиза от къщата. Всичко, от което се нуждаем, е да захранваме НА нашата камера с помощта на адаптера и би било по-добре да я поставите в корпус и просто да оставите отворената страна на камерата за видео стрийминг.



Приложения

  1. Може да се инсталира в домове за целите на сигурността.
  2. Може да се използва в офиси за наблюдение на движението на служителите.
  3. Той може да бъде инсталиран в търговски центрове, железопътни гари и т.н. и може да бъде достъпен от административния персонал, за да има проверка и баланс в определена област.