2014-10-23 3 views
1

Я работаю в потоковом проекте, который использует протокол MPEG2TS. В настоящее время я сталкиваюсь с проблемой синхронизации аудио видео.Мультиплексор MPEG2TS

Я использую расчет PCR, как

PCR_base = (system_clock_frequency * PTS(audio/video) ) /300 

PCR_ext = (system_clock_frequency * PTS(audio/video) ) % 300 

и непосредственно излучающих PCR на каждом 100ms

Я использую PTS значение, как

PTS= (Encoded_time_stamp * 9/100)/300 

Я получаю задержку AV Sync от -150ms(video ahead of audio) в mplayer и в VLC-проигрывателе я получаю только первый кадр видео.

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

ответ

0

PCR - это часы, которые вы генерируете при мультиплексировании потока, чтобы их можно было синхронизировать на шаге demux.

Я предполагаю, что ваша ошибка, скорее всего, исходит от PTS/DTS, которые являются временными отметками, дающими момент, когда декодер должен представить/декодировать рамки A/V. Кажется, что ваши звуковые метки немного запоздали.

Без гарантии, вы пытались его настроить?

audio_pts += 150; // in ms 

В противном случае, вы можете использовать программные средства для повторной синхронизации ваш поток, как ffmpeg: есть llok на этой хорошей tutorial. Также некоторые связанные S.O. Сообщений:

Смежные вопросы