Поиск MpegTSFile на основе PCR

Я хочу реализовать функцию поиска для воспроизведения файлов MpegT. Может ли кто-нибудь предложить мне, как преобразовать PCR во время (в mescs). Я знаю, что PCR используется для поиска (я видел в VLC), но хотел бы знать, как это можно сделать.

С уважением, Вен


person Ven    schedule 22.06.2011    source источник


Ответы (1)


PCR — это тактовый сигнал, который соответствует тактовой частоте 27 МГц на стороне кодировщика. Следовательно, каждый тик часов PCR представляет собой 1/27 микросекунды.

Первым шагом является возможность анализа пакета PCR. Такты PCR поддерживаются определенным PID (в основном видео, но могут быть аудио или альтернативными пакетами). Когда PCR присутствует в пакете, это поле адаптации типа 2 или 3. Вы можете обратиться к эту или вики, чтобы понять, как анализировать PCR.

Как только вы получите значение PCR пакета (используйте 64-битное целое число), у вас будет метка времени P0 для этого пакета. Теперь вы можете попытаться точно сказать 10 секунд, когда вы получите следующий пакет PCR, с отметкой времени, P1, где

P1 = P0 + 10 * 27 * 10^6

Поэтому, когда вы видите другой такой пакет, содержащий отметку времени P1 или более, вы можете быть уверены, что прошло 10 секунд.

Пожалуйста, обратите внимание, что в некоторых ситуациях PCR может обнаружить разрыв, следовательно, необходимы дополнительные расчеты в точке сдвига базы PCR.

person Dipan Mehta    schedule 27.11.2011