FFMPEG打開媒體的的過程開始於avformat_open_input,因此該函數的重要性不可忽視。
在該函數中,FFMPEG完成了:
輸入輸出結構體AVIOContext的初始化;
輸入數據的協議例如RTMP,或者file)的識別通過一套評分機制):1判斷文件名的後綴 2讀取文件頭的數據進行比對;
使用獲得最高分的文件協議對應的URLProtocol,通過函數指針的方式,與FFMPEG連接非專業用詞);
剩下的就是調用該URLProtocol的函數進行open,read等操作了
以下是通過eclipse+MinGW調試FFMPEG源代碼獲得的函數調用關系圖
可見最終都調用了URLProtocol結構體中的函數指針。
本文出自 “leixiaohua1020視音頻技術” 博客,請務必保留此出處http://leixiaohua1020.blog.51cto.com/3974648/1298896