Pessoal tenho uma camera ip aqui, ela ja faz a transferencia de imagem, eu poderia ler os bytes e converter para video, mas voces conhecem algo que me ajude, isso vai dar muito trabalho por nada, se alguem conhecer obrigado.
tem que saber o protocolo de transmissão da câmera. Normalmente é um stream mpeg por rtp. Você vai precisar implementar um codec porque essas câmeras normalmente usam um formato de imagem proprietário(medida de segurança)
A maioria dessas câmeras ip’s mais baratinhas transmite em H264, ou jpeg mesmo…
A maioria delas (as mais baratinhas) tem um servidorzinho http embarcado, e fica escrevendo os frames em uma resposta http normal. Vc teria que identificar o começo de cada frame, no caso de jpg é “ff”.
Abraço
[quote=diogopontual]A maioria dessas câmeras ip’s mais baratinhas transmite em H266, ou jpeg mesmo…
A maioria delas (as mais baratinhas) tem um servidorzinho http embarcado, e fica escrevendo os frames em uma resposta http normal. Vc teria que identificar o começo de cada frame, no caso de jpg é “ff”.
Abraço[/quote]
Todas tem um servidor http embarcado. Você usa ele para configurar a câmera. A codificação da imagem é uma coisa, outra coisa é o protocolo de transmissão. Para conseguir saber como as imagens chegam você precisa saber como ele funciona, depois saber como decodificar as imagens.
Bem, não sei se todas tem um servidor http para configuração, é possível que sim mas eu não conheço todas.
Em 2 casos de câmeras ip’s vagabundinhas (custam abaixo de R$300 no mercado livre), as características que encontrei foram as seguintes:
- Geram H264 e JPG;
- Possuem um servidor http. Você faz uma requisição à esse servidor e elas começam a escrever os quadros na resposta.
As câmeras melhores (Pelco, Axis…), também costumam gerar JPG e H264, algumas também transmitem as imagens em YUV. Algumas já trabalham com JPEG 2000. Trocando em miúdos, você vai abrir um socket, e ficar recebendo quadros, em algum formato suportado pela câmera.
Não encontrei ainda câmeras que trabalham com formatos de imagem e/ou vídeo proprietários, o que não significa que não existam, apenas não conheço. Algumas delas encriptam os dados, para prover segurança…
No caso dos servidores http das câmeras que mencionei, basta você ler cada quadro da e enviá-lo para o componente que você quer que consuma a imagem.
Ficou claro agora?
[quote=diogopontual]Bem, não sei se todas tem um servidor http para configuração, é possível que sim mas eu não conheço todas.
Em 2 casos de câmeras ip’s vagabundinhas (custam abaixo de R$300 no mercado livre), as características que encontrei foram as seguintes:
- Geram H264 e JPG;
- Possuem um servidor http. Você faz uma requisição à esse servidor e elas começam a escrever os quadros na resposta.
As câmeras melhores (Pelco, Axis…), também costumam gerar JPG e H264, algumas também transmitem as imagens em YUV. Algumas já trabalham com JPEG 2000. Trocando em miúdos, você vai abrir um socket, e ficar recebendo quadros, em algum formato suportado pela câmera.
Não encontrei ainda câmeras que trabalham com formatos de imagem e/ou vídeo proprietários, o que não significa que não existam, apenas não conheço. Algumas delas encriptam os dados, para prover segurança…
No caso dos servidores http das câmeras que mencionei, basta você ler cada quadro da e enviá-lo para o componente que você quer que consuma a imagem.
Ficou claro agora? [/quote]
Dentro do sistema de arquivos normalmente a câmera codifica em um formato proprietário para impedir um ladrão de roubar a câmera e recuperar as imagens. O streaming normalmente é h264 ou uma variante do mpeg.
O jpeg é transmitido via http como download. Então se você dar um get na url correta você recupera em quadro. Mas não é um streming.
Existe o mjpeg que é um streaming de vídeo, em que todos os quadros são uma sequência de imagens jpeg, mas é muito ruim, pois o protocolo transmite imagens inteiras.
O h264 codifica quadros chaves e fatias de quadros, ou seja, somente a parte onde exista movimento. Por isso ele é tão eficiente para compressão.