Привет, ЛОР.
Проводил я несколько экспериментов такого рода. На передающем конце RTSP-сервер и подключённая к нему камера. Сервер в отдаёт поток H.264 по UDP-транспорту. В одном эксперименте сервером был VLC, а к нему подключена простенькая Microsoft Lifecam VX-800. В другом — дорогое коммерческое решение. Результаты в обоих случаях одинаковы. :)
На приёмном конце находится самописная программа, читающая поток через библиотеки FFMPEG 3. Поток успешно читается, показывается, сохраняется в файл. Но при этом длительность одной порции потока, получаемой после одного avformat_open_input
, составляет ровно 55 секунд. После этого поток приходится переоткрывать заново, на что уходит время (несколько секунд).
Вопрос: от чего зависит эта длительность, можно ли на это как-то повлиять?
Тут вы, конечно, спросите «где код»? Да, я начал было писать вырожденный пример, на котором ситуация повторяется, и который можно было бы выложить на форум. Но сначала попробовал вместо своей программы на приёмном конце поставить саму команду ffmpeg
и направить выхлоп в файл, не накладывая никаких ограничений на длительность. Результирующий файл оказывается такой же длительности, чуть меньше минуты. Поэтому прежде чем погружаться в код, хочу определиться в принципе. Это особенность RTSP, особенность FFMPEG или что-то третье?
Обновлено: проблема решилась переходом на другую сборку FFMPEG той же мажорной версии. Что именно в предыдущей сборке препятствовало нормальной работе, выявить, к сожалению, не удалось.