/ Limit czasu / FFmpeg UDP, ponawianie z wywołaniem zwrotnym TCP - ios, tcp, ffmpeg, udp, rtsp

Czas FFmpeg UDP, ponowna próba z oddzwanianiem TCP - ios, tcp, ffmpeg, udp, rtsp

Czytam trochę RTSP strumieniowo w aplikacji na iOS za pomocą FFmpeg. Jeśli zapora lub inne usługi uniemożliwiają odbiór sieci przez UDP, FFmpeg ładnie wraca do czytania za pośrednictwem TCP. Moje pytanie brzmi: w jaki sposób mogę zostać powiadomiony, że powrót do TCP stało się? Muszę wiedzieć, czy aplikacja odczytuje strumień za pośrednictwem UDP lub TCP i nadal pozwalam FFmpeg zrób to dobrze. Czy jest do tego oddzwanianie? Czy istnieje sposób uzyskania używanego protokołu?

Dziękuję Ci.

Odpowiedzi:

2 dla odpowiedzi № 1

Znalazłem rozwiązanie: po nawiązaniu połączenia można odczytać niższy protokół transportowy z AVFormatContext„dane prywatne (priv_data). Oto jak to robię:

-(BOOL)lowerTransportProtocolIsUDP
{
RTSPState* rtsp_state = (RTSPState*) _avFmtCtx->priv_data;

enum RTSPLowerTransport lowerTransportProtocol = rtsp_state->lower_transport;

NSLog(@"lowerTransportProtocol = %d", lowerTransportProtocol);

if (lowerTransportProtocol == RTSP_LOWER_TRANSPORT_UDP) {
return YES;
}

return NO;
}

Gdzie _avFmtCtx jest AVFormatContext instancja.