用ffmpeg做demux,網上很多參考文章。對于網絡流,avformt_find_stream_info()函數預設需要花費較長的時間進行流格式探測,
那麼,如何減少探測時間内? 可以通過設定AVFotmatContext的probesize和max_analyze_duration屬性進行調節:
............. if (avformat_open_input(&(handle->pFormatContext), "", handle->pInputFormat, NULL) < 0) { av_free(handle->inputBuffer); *errorCode = -4; return FALSE; } (handle->fpState)(handle, 51);
AVDictionary* pOptions = NULL; handle->pFormatContext->probesize = 100 *1024; handle->pFormatContext->max_analyze_duration = 5 * AV_TIME_BASE; if (avformat_find_stream_info(handle->pFormatContext, &pOptions) < 0) { ......... return FALSE; } ...............