ПЦР на основе поиска для MpegTSFile - PullRequest
2 голосов
/ 22 июня 2011

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

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

1 Ответ

3 голосов
/ 27 ноября 2011

PCR - это тактовая частота, которая представляет тактовую частоту 27 МГц на стороне кодера. Следовательно, каждый такт часов ПЦР представляет 1/27 микросекунды.

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

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

P1 = P0 + 10 * 27 * 10 ^ 6

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

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

...