记录一下ffmpeg打开海康NVR的RTSP总是开始耗时太长 竟达2/3秒之久. 代码工程
开始以为是rtsp_transport这里拖慢的
av_dict_set(&opts, "rtsp_transport", "tcp", 0); //设置tcp or udp
av_dict_set(&opts, "stimeout", "3000000", 0); //设置超时3秒
看来不是的,这里对延迟是有处理机制. 调试才发现
avformat_find_stream_info(pFormatCtx, NULL)
耗时很是严重,查找资料 发现中间做了不少的事,一气呵成.
在WIN下貌似不做这个处理一样能处理.速度上去了
播放如下:
int CGdiPlay::run()
{
hdcDes = GetDC(m_hWnd);
hdcSrc = CreateCompatibleDC(hdcDes);
packet = av_packet_alloc();
CalcVideoWH(m_hWnd);
::CoInitialize(NULL);
while (bStateFlag)
{
if (packet == NULL)
{
packet = av_packet_alloc();
av_usleep(20 * 1000);
continue;
}
if (av_read_frame(pFo