A documentação da DJI cobre menus. Não cobre as perguntas que as pessoas realmente procuram: qual codec a transmissão usa, qual é o bitrate real, se os quadros por segundo se sustentam, e qual caminho convém configurar primeiro. Então colocamos um Matrice 4E e um RC Plus 2 na bancada e respondemos direto.
Todo drone enterprise da DJI roda o seu próprio servidor RTSP. Ative em Cloud Services → Customize Live Stream, defina uma conta e uma senha, e o drone passa a servir vídeo na porta 8554. Não exige conexão com a internet, nem conta de terceiros, nem nada para configurar do lado receptor além do usuário e da senha.
Recebemos a transmissão diretamente no ffmpeg pela rede local:
rtsp://<conta>:<senha>@<ip-do-drone>:8554/streaming/live/1Esse formato de URL (o caminho /streaming/live/1, o 1 final como índice de câmera) não aparece em lugar nenhum da documentação da DJI. Nem o que sai do outro lado: H.264 perfil High, 1280×720, cerca de 30 fps, sem faixa de áudio. Medimos tudo diretamente.
RTSP é o ponto de partida certo porque é o caminho de menor atrito até um vídeo funcionando. Se você só quer confirmar que seu drone consegue transmitir, esta é a versão de cinco minutos.
A mesma tela de Customize Live Stream tem uma aba RTMP. Onde o RTSP transforma o drone em um servidor do qual você lê o vídeo, o RTMP o transforma em um cliente que envia o vídeo para a URL que você indicar: um único campo, endereço do servidor e stream key combinados (rtmp://host:porta/caminho, a chave é o último segmento do caminho).
Apontamos o drone para um receptor na nossa bancada e medimos o mesmo codificador: H.264 High, 1280×720, ~30 fps. Aqui a ficha de especificações da DJI fica francamente enganosa. O ajuste de qualidade do app mostra "1.5M" como teto de bitrate. O nosso rodou de forma consistente entre 9,5 e 14 Mbps, e o indicador de taxa ao vivo do próprio app confirmou mais de 13 Mbps sustentados. "Adaptive" faz exatamente o que diz: o 1.5M é um piso que a DJI garante, não um teto do que a transmissão pode usar.
Se você dimensionou banda ou armazenamento pelo número que a DJI publica, dimensione perto de 14 Mbps.
Com essa transmissão RTMP funcionando, apontá-la para a Nebli é o mesmo envio, só que dirigido a uma URL que a Nebli entrega, em vez de um receptor genérico. Adicione o drone no seu painel e a Nebli gera uma URL de ingestão e um stream key de uso único. Cole isso no mesmo campo RTMP do drone e o vídeo aparece ao vivo: detecção, gravação e o resto do pipeline da Nebli rodando sobre ele como com qualquer outra câmera.
Rodamos de ponta a ponta com nosso próprio equipamento: do controle remoto à ingestão da Nebli, da ingestão ao pipeline de vídeo, e do pipeline à vista ao vivo do painel mostrando a câmera real do drone. Ciclo completo, sem buracos.
Uma nota sobre RTSP para a Nebli especificamente: ler o feed RTSP do drone diretamente na Nebli (pulando o passo de envio acima) está no nosso roadmap, ainda não disponível. Se você quer esse caminho hoje, o que funciona é o envio RTMP.
Este artigo cobre o que encontramos. Para os caminhos de menu exatos, capturas de tela e o detalhamento por modelo do que cada equipamento suporta, consulte o guia completo (em inglês):
H.264 perfil High. A DJI não documenta; medimos com ffprobe em um Matrice 4E, nos caminhos RTSP e RTMP. 1280×720, cerca de 30 fps, yuv420p.
Medimos entre 9,5 e 14 Mbps em rede local, embora o ajuste de qualidade do app diga 1.5M. O rótulo de 1.5M é um piso, não um teto: o modo Adaptive sobe muito acima disso quando a banda permite.
Não. A transmissão é apenas vídeo nos caminhos RTSP e RTMP. Confirmamos que não há faixa de áudio nas transmissões medidas.
rtsp://CONTA:SENHA@IP-DO-CONTROLE:8554/streaming/live/1 — a conta e a senha são as que você define na aba RTSP, a porta está fixa em 8554 e o caminho está fixo em /streaming/live/1. O 1 final é o índice de câmera. A DJI não documenta esse formato de URL; observamos na bancada.
Conforme a documentação da DJI, os drones com DJI Fly suportam apenas envio RTMP personalizado, sem opção RTSP. A URL do servidor e o stream key vão em um único campo chamado RTMP Address.
Ainda não. A leitura RTSP direta para a Nebli está no nosso roadmap. Hoje o caminho que funciona é o envio RTMP: a Nebli gera uma URL de ingestão e um stream key, e você cola no campo RTMP do drone.