我有一个来自 H.264 块的 Flash 播放器流 - SPS、PPS、IDR 和非 IDR。到目前为止,FLV 结构是从字节数组生成的。留给我的唯一问题是了解如何获得 FLVTag 需要的那些Timestamp UI24。
问问题
399 次
1 回答
0
要获得每个 FLVTag 的时间,请执行以下操作:
- 首先从SPS文件中获取帧率,需要检查 timing_info_present_flag是否为1;
时间信息呈现标志:1
num_units_in_tick : 1000
时间刻度:120000
固定帧速率标志:1
所以你把它算作:
time_scale / (2 * num_units_in_tick) = frame_rate fps;
120000 /
2 * 1000 = 60 帧/秒
之后你得到每帧的毫秒数 -> 1 / 60 = 0.01666(6) 所以你计算帧数(IDR和NDR)并相应地增加时间戳。对于 SPS 和 PPS 帧,我将当前时间戳放到我们当前所在的位置。
于 2015-10-11T20:52:11.120 回答