Eu sou novo no Raspberry Pi e ainda novo na câmera Raspberry Pi. Eu já vi muitos tutoriais on-line para a câmera Raspberry Pi, mas ainda não encontrei o que me permite transmitir diretamente da câmera Raspberry Pi como você pode com uma webcam (usando SimpleCV ou OpenCV). Esperava que alguém pudesse me apontar na direção certa.
93
ssh raspberrypi raspivid -o - -t 0 -fps 25 -w 640 -h 360 | mpv - --speed 2 --fps 25
(o "--speed 2" impede muito o atraso).Respostas:
A solução sugerida por Diego é boa, exceto que é bem lenta e tem um grande atraso de vídeo, já que o vlc re-transmite um fluxo do raspvid. Desde 12/2013, existe um driver oficial v4l2 disponível: http://www.ics.com/blog/raspberry-pi-camera-module#.VJFhbyvF-b8 Isso torna obsoleto o mencionado retransmissão. Basta carregar o módulo e usá-lo:
Isso cria um fluxo http na porta 12345, você também pode usar outros formatos, como o rtcp da resposta de Diego. Leia mais aqui: https://web.archive.org/web/20151012014829/http://www.videolan.org:80/doc/streaming-howto/en/ch03.html
fonte
:demux=264
a CVLC porque o fluxo é h264 RAW e você precisa definir o demuxer:cvlc v4l2:///dev/video0 --v4l2-width 1920 --v4l2-height 1080 --v4l2-chroma h264 --sout '#standard{access=http,mux=ts,dst=0.0.0.0:12345}' :demux=264
. Isso possibilita assistir ao stream no VLC para Android, por exemplo.autoreconf -vfi
você deve agora usar #./bootstrap.sh
Existem várias opções que você pode escolher. No meu trabalho, estamos usando o VLC para transmitir vídeos capturados pelo Raspberry Pi Camera de nossas salas de servidores para o escritório. Uma desvantagem disso é que há um atraso de cerca de 5 segundos e eu não encontrei uma solução para isso. A seguir, nossa configuração:
Tenha o raspbian instalado e atualizado e verifique se a câmera está ativada (você pode habilitá-lo executando sudo raspi-config e escolha Ativar câmera)
Instale o vlc
Crie um script para iniciar o fluxo com o seguinte conteúdo ou execute o comando (você não poderá fazer mais nada se apenas executar o comando).
Tornar o script executável
Se você deseja iniciar o fluxo automaticamente, adicione o script ao crontab. Para fazer isso funcionar, tive que criar outro script executado pelo cron (o OBS! VLC não pode ser executado como sudo, portanto, verifique se você está no cron certo).
sudo nano myscript2.sh
:Então:
Para assistir ao fluxo de vídeo, abra o VLC em um computador na mesma rede que o raspberry pi que você está usando para streaming. Pressione Mídia -> Abrir fluxo de rede e cole o seguinte no campo:
Se você não se importa com o FPS (quadros por segundo) e não deseja nenhum atraso, pode usar o MJPEG. Você pode ler mais sobre isso AQUI
Assista ESTE wiki sobre Módulo de câmara Raspberry Pi. Espero que você encontre o que está procurando.
fonte
Eu tentei algumas opções. No entanto, encontrei o melhor resultado usando esse projeto: RPi-Cam-Web-Interface da comunidade eLinux
o fluxo tem atraso quase zero.
boa sorte :)
fonte
A maneira mais fácil de encontrar, para obter um vídeo ao vivo de um raspberry pi sem cabeça, com uma câmera raspberry pi.
Essa solução funciona imediatamente, sem a instalação de software adicional no PI.
No PI:
No computador, é possível transmitir com o VLC:
(supondo que 192.168.66.154 é o endereço IP do PI)
fonte
Postei uma possível solução no fórum raspberry usando um servidor RTSP leve, baseado no live555, alimentado com um driver V4L2 que suporta a captura H264:
Em seguida, você poderá acessar o fluxo RTSP usando:
fonte
--network-caching 300
O UV4L (também) suporta vídeo padrão HTML5 e streaming de áudio sem configuração necessária. Outras opções também são possíveis, como MJPEG sobre http.
Atualizar:
O UV4L agora também suporta transmissão de áudio e vídeo ao vivo para o Jitsi Meet Rooms pela Web. Nenhuma configuração especial é necessária. É tão fácil quanto preencher seu nome, quarto e clicar em Iniciar .
2ª Atualização:
O UV4L agora também suporta vídeo codificado em hardware H264, em full fps, HD e possivelmente Full HD no futuro.
fonte
Ambos
mjpeg_streamer
emotion
parecem ter uma latência melhor que o cvlc.Usando
mjpg_streamer
mjpeg_streamer
requer compilação, mas as instruções no github são diretas.Após a compilação, ela pode ser executada iniciando
start.sh
no diretório do projeto ou executando diretamente (no diretório do projeto):onde
8090
está a porta TCP. Se não especificado, a porta8080
será usada por padrão. Ostart.sh
script contém alguns exemplos de uso com opções extras.Usando
motion
O Motion inclui um serviço systemd que facilita a inicialização automática na inicialização, parada ou reinicialização.
Para usá-lo no modo de webcam IP, as seguintes configurações devem ser definidas em
/etc/motion/motion.conf
:Em seguida, no
/etc/default/motion
conjunto:Para fazer o serviço iniciar automaticamente na inicialização:
Use
systemctl start/stop/restart motion
para a ação correspondente.A porta de streaming padrão é
8081
. A porta está configuradastream_port
em/etc/motion/motion.conf
.fonte
Não sei se você está procurando um software de vigilância, mas consegui instalar e executar
motion
um detector de movimento de software. Você deve dar uma olhada no guia oficial .fonte
Consegui transmitir vídeo usando o uv4l WebRTC no Raspberry Pi 2. É super fácil. Basta seguir este tutorial. Espero que isso ajude.
fonte
Eu estava tendo problemas para obter o fluxo de vídeo no Windows 7. Havia muitas soluções Linux, não consegui replicá-las no Windows até agora. Eu tenho uma solução bastante rápida eventualmente:
No raspberry pi:
Na máquina Windows:
Assim, eu acho que nada é reembalado ou restaurado, remuxado ou o que seja. O fluxo binário do raspvid é alimentado no mpc e mostrado. Minha framboesa opera por wifi, então, a princípio, recebo um atraso razoável, que é em questão de meio minuto reduzido para o atraso de 0,2-0,3 segundos.
Infelizmente, não pude usar o vlc da mesma maneira, pois
nc -l -p 5001 | vlc -
apenas abre a janela do vlc sem nenhum vídeo.fonte
Usei o Nginx com suporte RTMP para transmitir para o mundo, juntamente com o avconv para processar a entrada da câmera. O código está disponível no Github .
fonte
Embora o código de Peter Hansen possivelmente funcione bem em uma LAN, para garantir a integridade: o TCP trata da integridade dos dados e em tempo real. Em um fluxo em tempo real, algumas perdas de dados podem ser aceitáveis por uma exibição oportuna. Nesse caso, o UDP pode ser melhor. Eu não testei esse código.
Se for uma câmera de segurança, o multicast pode ser considerado. Os roteadores modernos podem fazer isso até nos modelos de US $ 100.
fonte
Instalei uma solução ONVIF em https://github.com/BreeeZe/rpos no meu pi, seguindo as instruções em README.md .
A única diferença é que eu instalei
node v8.4.0
. Isso me permite ver a saída da minha câmera em um NVR conectado na mesma rede. Além disso, a câmera pode ser reproduzida diretamente pelo fluxo de rede do VLC player usando o endereçortsp://192.168.1.3:8554/h264
fonte
Algum tempo depois, um problema teve um problema semelhante:
https://www.npmjs.com/package/ws-avc-player
É mais básico do que outras soluções propostas, mas acho que funciona bem se a baixa latência na Web é a prioridade.
Funciona na maioria dos navegadores (mesmo móveis a 480p) sem nenhum plug-in necessário no navegador.
fonte
raspivid
feed da câmera. Porffmpeg
outro lado, estou apenas obtendo o décimo de quadros por segundo. Eu usei um Raspbian limpo e um Pi Zero. Você tem algumas dicas para mim?node example/index.js raspivid
Ele deve funcionar fora da caixa se você tiver problemas tente executar apenasnode example/index.js
e, separadamente,/opt/vc/bin/raspivid -pf baseline -ih -t 0 -w 640 -h 480 -hf -fps 15 -g 30 -o - | nc localhost 5000
e veja se você obter quaisquer erros de raspivid