Como realizar streaming de vídeo usando Raspberry Pi?

Como realizar streaming de vídeo usando Raspberry Pi? '' ' classe StreamingOutput(objeto): def __iniciar__(auto): auto.quadro, Armação = Nenhum auto.amortecedor = Eu.BytesIO() auto.doença = Doença() def Escreva(auto, buf): E se buf.começa com(b' xff xd8'): # Novo quadro, copie o conteúdo do buffer existente e notifique todos # clientes está disponível auto.amortecedor.truncar() com auto.doença: auto.quadro, Armação = auto.amortecedor.Obter valor() auto.doença.notificar_todos() auto.amortecedor.procurar(0) Retorna auto.amortecedor.Escreva(buf) classe StreamingHandler(servidor.BaseHTTPRequestHandler): def do_GET(auto): E se auto.caminho == '/': auto.send_response(301) auto.send_header('Localização', '/index.html') auto.end_headers() elif auto.caminho == '/index.html': conteúdo = PÁGINA.codificar('utf-8') auto.send_response(200) auto.send_header('Tipo de conteúdo', 'text / html') auto.send_header('Comprimento do conteúdo', len(conteúdo)) auto.end_headers() auto.wfile.Escreva(conteúdo) elif auto.caminho == '/stream.mjpg': auto.send_response(200) auto.send_header('Era', 0) auto.send_header('Cache-Control', 'no-cache, privado') auto.send_header('Pragma', 'no-cache') auto.send_header('Tipo de conteúdo', 'multipart / x-mixed-replace; limite = FRAME ') auto.end_headers() experimentar: enquanto Verdadeiro: com resultado.doença: resultado.doença.esperar() quadro, Armação = resultado.quadro, Armação auto.wfile.Escreva(b'--QUADRO, ARMAÇÃO r n') auto.send_header('Tipo de conteúdo', 'imagem / jpeg') auto.send_header('Comprimento do conteúdo', len(quadro, Armação)) auto.end_headers() auto.wfile.Escreva(quadro, Armação) auto.wfile.Escreva(b' r n') exceto Exceção Como é: exploração madeireira.Atenção( 'Cliente de streaming removido% s:% s', auto.client_address, str(é)) outro: auto.send_error(404) auto.end_headers() classe StreamingServer(socketserver.ThreadingMixIn, servidor.HTTPServer): allow_reuse_address = Verdadeiro daemon_threads = Verdadeiro com picamera.PiCamera(resolução='640x480', taxa de quadros=24) Como Câmera: resultado = StreamingOutput() Câmera.comece a gravar(resultado, formato='mjpeg') experimentar: endereço = ('', 8000) servidor = StreamingServer(endereço, StreamingHandler) servidor.serve_forever() finalmente: Câmera.pare de gravar()

Após colar o código no novo arquivo criado, pressione Ctrl + X, tipo E e pressione Entrar.



Etapa 10: executando o streaming de vídeo

Depois de salvar o script, iremos executá-lo usando Python3, digitando o seguinte comando:

 python3 rpi_video_streaming.py 

Depois de escrever este comando, nosso script começará a ser executado e agora podemos acessar nosso servidor web em http: //: 8000 . Vamos abrir o navegador, colar o link nele e usar o endereço IP atribuído ao nosso Pi pelo roteador. Podemos obter o streaming de vídeo através do nosso celular, tablet, etc que possui um navegador instalado e está associado a uma rede semelhante ao nosso Pi. Eu escrevi, '192.168.1.14:8000' para executar o streaming de vídeo.



Etapa 11: dar os toques finais

Como testamos nossa câmera Pi e soubemos que está funcionando bem, estamos prontos para instalá-la em um local adequado. Pode ser instalado próximo ao portão da casa para que possamos monitorar cada pessoa que entra ou sai da casa. Tudo o que precisamos é poder EM nossa câmera usando o adaptador e seria melhor colocá-la dentro de uma caixa e apenas deixar o lado da câmera aberto para streaming de vídeo.



Formulários

  1. Pode ser instalado em residências para fins de segurança.
  2. Pode ser usado em escritórios para monitorar a movimentação dos funcionários.
  3. Pode ser instalado em shoppings, estações ferroviárias etc e pode ser acessado pela equipe administrativa para verificação e saldo em área específica.