LibAv: defina um cabeçalho personalizado no fluxo RTSP

1

Estou tentando reproduzir um pedaço de vídeo recuperado de uma câmera Axis M3004V . A câmera grava vídeo continuamente em um cartão MicroSD interno. Esse vídeo recebe um recordingid que posso usar para consultar. De acordo com o que está escrito na documentação da Axis API (nos documentos Edge Storage e Video Streaming Vapix), posso especificar uma hora de início e uma hora de término para a reprodução através de um cabeçalho personalizado na solicitação. Digamos que o vídeo esteja gravando de 2014-05-01T00:00:00Z até ... meh ... agora.

Aparentemente, se eu conseguisse enviar uma solicitação RTSP com:

rtps://camera_ip/axis-media/media.amp?<parameter>=<value>
Headerfield1: val1<CRLF>
Range: clock=2014-05-01T00:01:00Z-2014-05-01T00:01:30Z<CRLF>

Gostaria de receber uma reprodução de 1 minuto de 00:00:01 a 00:00:02 .

Estou tentando definir esse cabeçalho personalizado usando avplay da seguinte forma:

avplay -f rtsp -rtsp_transport http \
       -i "rtsp://user:[email protected]/axis-media/media.amp?recordingid=20140505_000000_5E99_00408CAABBCC"
       -headers "\nRange: clock=2014-05-01T00:01:00Z-2014-05-01T00:01:30Z\n" \
       -loglevel debug

Mas quando eu tento isso, recebo um erro Option headers not found :

[rtsp @ 0x7f4cb4005be0] video codec set to: h264
[NULL @ 0x7f4cb4004e20] RTP Packetization Mode: 1
[NULL @ 0x7f4cb4004e20] RTP Profile IDC: 4d Profile IOP: 40 Level: 29
[NULL @ 0x7f4cb4004e20] Extradata set to 0x7f4cb40014e0 (size: 29)!
[rtsp @ 0x7f4cb4005be0] hello state=0
Option headers not found.

E avplay pára.

Não consegui encontrar nenhum exemplo na Web, mas diria que a opção de passar cabeçalhos personalizados para um fluxo RTSP foi adicionada ao LibAv há muito tempo (pelo menos, de acordo com este commit de 2011) Talvez eu não esteja passando o argumento corretamente? Eu tentei várias variações para a linha acima, como remover a parte -f rtsp , alterar o -rtsp_transport para tcp em vez de http , reorganizando a ordem dos meus argumentos .... Nada funcionou. Nada produziu uma mensagem de erro diferente.

Alguém sabe como passar cabeçalhos personalizados para uma solicitação RTSP usando libav?

Estou em um Lubuntu 14.04 (amd64) e avplay é versão 9.11-6:9.11-2ubuntu2

Qualquer ajuda será muito apreciada. Obrigado antecipadamente.

    
por BorrajaX 07.05.2014 / 19:08

0 respostas