Аудио и видео не синхронизированы?

Я использую nVLC в качестве оболочки vlc для рендеринга видеопотока rtsp в память, а затем запускаю события для NewFrame (аудио и видео). в классе, которые фиксируют эти события. Я использовал Accord.Video.FFMPEG.VideoFileWriter для записи кадра и аудиобайтов (или сигнала). но, к сожалению, у меня постоянно возникают задержки между аудио и видео. Я попытался отследить эту задержку и пришел к следующему:

1- задержка отличается от потока к потоку. то есть для одного потока около 1800 мс (аудио лиды), для другого около 3000 мс (аудио лиды тоже).

2- задержка не зависит от задержки между захватом кадров и захватом звуковых сигналов.

3- задержка не зависит от задержки между захватом видео события NewFrame и захватом аудио события NewFrame.

4- задержка не зависит от скорости интернет-соединения.

любая помощь в решении этой проблемы будет оценена.

Спасибо


person MATRIX81    schedule 30.09.2018    source источник
comment
Делитесь полными логами   -  person mfkl    schedule 03.10.2018


Ответы (1)


Лучшее, что у меня получилось, это использовать аудиопоток в качестве ведущего потока, т.е. никогда не записывать кадры из видеопотока до тех пор, пока время кадра не станет больше или равно первому записанному аудиокадру. PTS (Presentation Time Stamp) звукового кадра, как при захвате, но PTS изображения рассчитывается в зависимости от игрока.Время (мс) и с помощью секундомера, который сбрасывается каждый раз, когда игрок.Время изменилось (в TimeChanged мероприятие).

person MATRIX81    schedule 07.11.2018