0

我有一个来自 H.264 块的 Flash 播放器流 - SPS、PPS、IDR 和非 IDR。到目前为止,FLV 结构是从字节数组生成的。留给我的唯一问题是了解如何获得 FLVTag 需要的那些Timestamp UI24在此处输入图像描述

4

1 回答 1

0

要获得每个 FLVTag 的时间,请执行以下操作:

  1. 首先从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 回答