2015-03-16 3 views
1

В настоящее время используется lib из FFPMEG для потоковой передачи некоторого MPEG2 TS (h264-кодированного) видео. Потоковая передача выполняется через многоадресную рассылку UDP.Использование библиотек FFMPEG для UDP-потока mpeg2 ts проблемы с задержкой видео/начального соединения

Проблема, с которой я сейчас сталкиваюсь, - это две основные вещи. Существует длинное начальное время соединения/получение видео для отображения (поток также содержит метаданные, и этот поток сразу обнаруживается моим медиа-инструментом).

Как только видео происходит, все нормально, но оно всегда задерживается этим начальным временем соединения.

Я пытаюсь как можно ближе к потоку LIVE.

В настоящее время используется параметр av_dict_set (& dict, «tune», «zerolatency», 0) и «profile» -> «baseline».

GOP size = 12;

Сначала я подумал, что проблема связана с проблемой i-фрейма, но начальная задержка там, если гоблизация равна 12 или по умолчанию 250. Иногда видео будет быстро подключаться, но оно сразу же отбрасывается, происходит задержка, затем начинается резервное копирование и хорошо с этого момента.

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

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

ответ

0

Так что, хотя я не совсем понимаю, что было не так, я, по крайней мере, исправил проблему, которую я испытывал.

Проблема возникла из-за использования av_write_interleaved_frame() по сравнению с обычным av_write_frame() (этот работает для прямой трансляции) при записи видеокадров. Мне нужно немного разобраться в различиях, чтобы полностью понять это, но иногда это забавно, когда вы выясняете проблему, с которой вы сталкиваетесь при полной прихоти, после того, как вы наткнулись на свое лицо на несколько дней.

Я могу получить довольно хорошее потоковое видео в реальном времени с настройкой «нулевой последовательности».

+0

Ну, чередующиеся попытки записи организуют пакеты внутри, чтобы синхронизировать их. Задержка могла быть вызвана внутренней буферизацией и повторным заказом, что делает FFMPEG. С другой стороны, не могли бы вы уточнить свой вопрос, чтобы подробно рассказать о том, как вы сделали потоковое вещание с FFMPEG? Мне интересно это делать с FFMPEG, но у меня очень минимальный опыт FFMPEG. – Darksaint2014

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