RTSP¶
media.ingest.rtsp
Descrição¶
Sapsan puxa o vídeo de câmeras IP e de outras fontes RTSP em modo cliente (pull).
Configuração¶
Configure o stream pela API do central. Trecho de configuração:
streams:
- name: cam1
inputs:
- rtsp:
url: rtsp://admin:password@10.0.0.5:554/stream0
peer_timeout_ms: 5000
Parâmetros¶
| Parâmetro | Descrição |
|---|---|
url |
endereço da câmera; login e senha vão na URL |
peer_timeout_ms |
tempo limite de inatividade da fonte, após o qual a entrada é considerada caída |
via_agent |
captura por um agente Peeklio (agent://ID) quando a câmera está atrás de um NAT — veja o gateway Peeklio |
Autenticação¶
Basic e Digest são suportados (com reversão automática para Basic quando a câmera recusa Digest). As credenciais vêm da URL e não são enviadas em claro para a câmera quando se usa Digest.
Opções de transporte¶
RTP/AVP/TCP (interleaved): a mídia é transportada na conexão TCP RTSP.
Codecs compatíveis¶
O SDP da fonte identifica o codec, mas a captura também depende do empacotamento dos quadros em RTP. Os seguintes formatos têm processamento específico da carga útil:
| Codec | Nome no SDP / RTP | Condições de captura |
|---|---|---|
| H.264 | H264 |
Reconstrução de NAL individuais, pacotes de agregação STAP-A e fragmentos FU-A |
| HEVC / H.265 | H265, HEVC |
Reconstrução de NAL individuais e fragmentos FU; esta entrada não desempacota os pacotes de agregação AP |
| AV1 | AV1 |
Reconstrução de unidades temporais a partir de pacotes RTP; a configuração chega no cabeçalho de sequência do stream |
| AAC | MPEG4-GENERIC |
Empacotamento AAC-hbr com cabeçalhos AU; parâmetros do codec em config do SDP |
| AAC em LATM | MP4A-LATM |
cpresent=0, com StreamMuxConfig em config do SDP; o empacotamento LATM é removido durante a captura |
| G.711 A-law | PCMA |
Incluindo o tipo de carga útil RTP estático 8 |
| G.711 μ-law | PCMU |
Incluindo o tipo de carga útil RTP estático 0 |
Aqui, MPEG4-GENERIC e MP4A-LATM identificam formas de transportar AAC por RTP, não dois codecs de áudio adicionais. Por isso, não há uma entrada «MPEG-4 Audio» separada de AAC. Os formatos são especificados em RFC 3640 e RFC 6416.
As demais trilhas reconhecidas usam um modo limitado: as cargas úteis são concatenadas até o bit marker do RTP, sem interpretar os cabeçalhos RTP específicos do codec. Isso se aplica aos seguintes nomes SDP:
- Opus:
opus. - JPEG / MJPEG:
JPEG. - VP9:
VP9. - PCM linear:
L16. - MPEG Audio:
MPAeMP3. - Vídeo sem compressão:
raw.
A compatibilidade depende do empacotamento da fonte e do uso do bit marker. Reconhecer um nome no SDP não garante a captura correta da empacotização RTP padrão desses formatos. A entrada RTSP não reconhece VP8, portanto ele não consta na lista de codecs compatíveis.
Comportamento em caso de erro¶
O estado da entrada e a causa da falha estão nas estatísticas do stream. Desconexão ou ausência de quadros usa os mecanismos de repetição e comutação para reserva.
Aplicação de alterações¶
A troca de url ou via_agent reinicia a fonte; a troca apenas de peer_timeout_ms é aplicada em tempo real.
Contadores¶
As tabelas mostram os nomes exatos dos campos de estatísticas do protocolo, incluindo contadores de eventos e indicadores do valor atual. Campos zerados podem ser omitidos. API e Prometheus expõem projeções diferentes; uma única resposta da Admin API não contém necessariamente toda a lista. O detalhe depende da licença de contadores.
Totais comuns da entrada: bytes, frames, errors, warnings. Eles agregam dados do protocolo; não devem ser somados novamente aos contadores do protocolo.
Rtsp¶
| Campo | Tipo |
|---|---|
bytes |
counter |
reads |
counter |
frames |
counter |
errors |
counter |
warnings |
counter |
broken_interleaved |
counter |
desync |
counter |
memory_bytes |
gauge |
RtpChannel¶
| Campo | Tipo |
|---|---|
channel_id |
label |
rtp_packets |
counter |
rtcp_packets |
counter |
bytes |
counter |
frames |
counter |
pt_reject_count |
counter |
pt_reject_bytes |
counter |
ts_goes_backwards |
counter |
ts_jump_forward |
counter |
ts_stuck |
counter |
errors_dts_stuck |
counter |
sr_ts_stuck |
counter |
ts_stuck_restarts |
counter |
resync_sr |
counter |
marker_packets_count |
counter |
no_marker_mode_flag |
gauge |
errors_broken_payload |
counter |
errors_lost_packets |
counter |
errors_dropped_packets |
counter |
errors_late_packets |
counter |
errors_incomplete_frames |
counter |
nack_count |
counter |
onvif_buffer_overflow |
counter |
onvif_seq_gap |
counter |
onvif_marker_mismatch |
counter |
onvif_resync_dropped |
counter |
Outros detalhes¶
Verificação¶
Abra http://server/streaming/v/cam1/index.m3u8 em um reprodutor ou peça uma captura de tela em http://server/streaming/live-preview-jpeg/cam1.