1. 程式人生 > >如何從mp4檔案中獲取幀率資訊

如何從mp4檔案中獲取幀率資訊

用mediainfo檢視mp4經常會看到有兩個幀率資訊,一個是framerate,一個是original framerate,前者是檔案的實際幀率,後者是h264解碼資訊中的幀率。

計算實際幀率時,需要從mp4的moov box中的mvhd中取得timescale和duration,將兩者相除得到檔案總時長,

再從stsz box中取得sample總數,即總幀數sample_count,用總幀數除以總時長即平均幀率,計算公式為

frame_rate = sample_count/(duration/timescale)

h264解碼資訊中的幀率位於sps中的vui_parameters內,計算公式為

frame_rate = sps.vui_parameters.num_units_in_tick.time_scale / sps.vui_parameters.num_units_in_tick

參考連結:

MP4檔案格式詳解——元資料moov(一)mvhd box:http://blog.csdn.net/pirateleo/article/details/7590056/

mp4檔案格式系列26--- Sample Size Atoms - STSZ:http://www.360doc.com/content/13/1119/17/6979751_330551009.shtml

播放器適配經驗總結——IOS:http://blog.csdn.net/luansxx/article/details/7721282