Skip to content

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: MPA e MP3.
  • 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.

Próximos passos