Olá.
Há algumas semanas/meses, ganhei uma ipcamera chinesa barata com 3 lentes (duas fixas e uma com capacidade PTZ).
Eu esperava que o Onvif funcionasse perfeitamente como qualquer outro (com apenas uma câmera compatível com PTZ), mas não foi tão fácil.
Para qualquer outro cara que esteja lutando com o ilnk RTSP você pode extrair desse tipo de câmera barata, e mesmo quando você tenta colocar outros canais no link você só consegue ver a câmera ptz principal, este post é para você.
Você provavelmente já tentou muitos truques, como:
nmap -sV --script rtsp-url-bruto (IP)
e/ou
nmap -sV --script método rtsp (IP) -p (porta)
E recebi um URL RTSP como:
rtsp:///user=[NOME DE USUÁRIO]_password=[SENHA]_channel=0_stream=0.sdp?real_stream
Como eu disse no início, mudar o parâmetro do canal não faz nada (mas mudar o stream de 0 para 1 muda para sub stream com baixa resolução.
Também tentei o único truque com o cartão SD, colocando um arquivo chamado ceshi.ini nele com:
[CONST_PARAM]
rtsp = 1
rtsp_enable = 1
rtsp_ctrl = 1
onvif_enable = 1
Mas esse tipo de truque provavelmente só se aplica a câmeras realmente v380 (mesmo que elas também funcionem no aplicativo ICSEE).
Como você pode ver agora, os resultados variam até mesmo no mesmo tipo de câmera, nos mesmos aplicativos ou na mesma marca.
A que ganhei, só estava escrita na caixa como: MultiLens View Yieqin 360, e como “modelo” P15H. Eu olhei no google e em toda a internet e não encontrei nada de útil.
A caixa também diz que uma câmera IP Wifi de 9MP (besteira… a câmera principal é apenas 1280x720 na principal e 640x360 na sub, e as fixas ainda não tenho certeza se também é 640x360 ou 800x(alguma coisa).
Após uma inspeção profunda na câmera (desmontando, e usando outros aplicativos e métodos no linux que não são relevantes para este post, encontrei a especificação real do hardware (exceto as duas câmeras fixas) [Juro, isso será relevante para quem acessar este post e tentar descobrir se funcionará em sua câmera]
P20-SP3-DSCinza(IPG-X3-WE2Q)
SoC: XM535D1
Sensor: XM650V200
Ou seja, é uma câmera XMEye, JFTech ou algo assim
Também acessei o download do firmware para todas as suas câmeras (incluindo esta):
Mas mesmo o nome do download do dfirmware dizendo “ONVIF” não muda nada.
A solução:
Primeiramente, no aplicativo ICSEE (ou XMEYE WebGUI para câmera, sim, funciona na porta 80, mas SOMENTE com o IE antigo (não no Wine, porque precisa de algum plugin estranho, também software VM no Wine roda e encontra a câmera, mas não funciona corretamente para alterar parâmetros e configurações, pelo menos não comigo, mas não insisti nem tentei muito nesta linha).
Bem… no aplicativo ICSEE ou web, encontre o login e senha reais da câmera (não use admin:admin ou admin:admin123456, não funcionará na solução).
Você pode alterar a senha lá (mas ainda não tentei porque demorou tanto para chegar à solução e fazer tudo funcionar corretamente (quase), que tenho medo de mexer em alguma coisa e tudo dá errado.
as credenciais serão algo que parece aleatório, como user=fgaw e pass=orf54g (isso não é meu, mas é mais ou menos assim)
se você encontrar algumas credenciais como admin:(some-randon-8char), também encontrei isso, mas não funcionou para mim na solução.
Bem, agora… você vai precisar do go2rtc (pode ser aquele dentro do FrigateNVR se você já o usa)
A solução estava parcialmente dentro da descrição do icsee-ptz github ha-addon, mas lá orienta apenas o uso para câmera principal (não especificou para câmera de 2 ou 3 lentes), só tentei por sorte e para minha surpresa funcionou.
Em outros tópicos vi alguém dizendo que esse tipo de câmera usa a porta 34567 para mídia com protocolo dvrip, mas tentei sem sorte no início (provavelmente porque tentei com admin:admin ou outra coisa).
De qualquer forma, o complemento ICSEE-PTZ para HA é opcional, mas altamente recomendado.
go2rtc:
streams:
fg_cam_copa3:
- dvrip://fxxxx:[email protected]:34567
- ffmpeg:fg_cam_copa3#audio=copy#async#video=copy#async
fg_cam_copa3_sub: - dvrip://fxxxx:[email protected]:34567?channel=0&subtype=1
- dvrip://fxxxx:[email protected]:34567?backchannel=1
- ffmpeg:fg_cam_copa3#audio=copy#async#video=copy#async
fg_cam_copa3_ch2: - dvrip://fxxxx:[email protected]:34567?channel=1&subtype=0
fg_cam_copa3_ch3: - dvrip://fxxxx:[email protected]:34567?channel=2&subtype=0
a parte async, use apenas se você tiver problemas com vídeo e áudio fora de sincronia (porque este protocolo não é suave como o rtsp)
até agora é só isso, se eu encontrar mais alguma coisa complementarei neste post.