gpt4 book ai didi

ios - FFmpeg UDP 超时,重试 TCP 回调

转载 作者:可可西里 更新时间:2023-11-01 02:48:57 26 4
gpt4 key购买 nike

我正在使用 FFmpeg 在 iOS 应用程序中读取一些 RTSP 流。如果防火墙或其他服务阻止网络通过 UDP 进行接收,FFmpeg 会很好地返回到通过 TCP 进行读取。我的问题是:如何通知我回退到 TCP 发生了?我需要知道应用程序是否正在通过 UDPTCP 读取流,并且仍然让 FFmpeg 做它很好的回退。这有回调吗?有没有办法获取正在使用的协议(protocol)?

谢谢。

最佳答案

我找到了解决方案:建立连接后,可以从 AVFormatContext 的私有(private)数据 (priv_data) 中读取较低的传输协议(protocol)。下面是我的做法:

-(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;
}

其中 _avFmtCtx 是一个 AVFormatContext 实例。

关于ios - FFmpeg UDP 超时,重试 TCP 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28429438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com