У меня есть поток для флеш-плеера, который поставляется из блоков H.264 - SPS, PPS, IDR и без IDR. Пока что FLV-структура создается из bytearray. Единственная проблема, оставленная для меня, заключается в том, чтобы понять, как я могу получить эти Timestamp UI24, которые нужны FLVTag. Извлечь длину видео из IDR или без IDR (H.264/AVC - организация Bitstream)
0
A
ответ
0
Чтобы получить время для каждого FLVTag вы делаете:
- Сначала получите частоту кадров из SPS-файла, вы должны проверить timing_info_present_flag быть 1;
timing_info_present_flag: 1
num_units_in_tick: 1000
time_scale: 120000
fixed_frame_rate_flag: 1
Так вы считаете, что нравится:
time_scale/(2 * num_units_in_tick) = frame_rate fps;
120000/
2 * 1000 = 60 кадров в секунду
После этого вы получите милисекунд на кадр -> 1/60 = 0,01666 (6) Таким образом, вы подсчитывать кадры (IDR и NDR), и вы увеличить метку времени, соответственно. Для кадров SPS и PPS я бросаю текущую временную метку туда, где мы сейчас находимся.