Потоковая передача более одного файла с использованием Live555 - PullRequest
2 голосов
/ 30 июня 2011

Live555 lib имеет хороший пример testOnDemandRTSPServer.cpp Этот пример просто передает «один» заданный файл. Я хочу потоковую передачу более одного файла. Есть ли у Live555 концепция списка воспроизведения или как транслировать более одного файла в Live555?

С наилучшими пожеланиями

PS: Я пытаюсь добавить более одной подсессии, в этом случае Live555 просто передает последний файл сеанса ...

Ответы [ 3 ]

0 голосов
/ 21 октября 2012

Есть еще одно приложение, которое поставляется с кодом live555.Сервер Live555Media находится в каталоге mediaServer исходного кода.Это делает работу.Он использует dynamicRTSP класс сервера.Вы даете ему папку со всеми вашими медиа-файлами и получаете к ним доступ как rtsp://ip/filename.

0 голосов
/ 07 апреля 2015

Недавно мне пришлось выполнить аналогичную задачу и с похожими функциями:

Вот что вы можете сделать для потоковых файлов видео H264 для воспроизведения в строке, как список воспроизведения (конечно, если они имеют одинаковое разрешение, профиль кодирования,и т.д.)

Вам необходимо изменить метод ByteStreamFileSource :: doGetNextFrame.Существует такой код, как feof (fFid)

 if (feof(fFid))
 {
     CloseInputFile(fFid);
     fFid = OpenInputFile(envir(), "test.264");
     //fileName
 } 
else ....

Конечно, если вам все еще нужно соответствие LGPL, вам придется проделать больше работы ... Вам придется скопировать / переименовать этот класс вне библиотеки и выполнитьто же самое с H264VideoFileServerMediaSubsession и измените метод createNewStreamSource, чтобы он использовал переписанный вами класс ByteStreamFileSource.

0 голосов
/ 30 июня 2011

Мои 0,02 цента: я не уверен, имеет ли это смысл: как вы гарантируете, что они все закодированы в одном и том же формате, что является обязательным требованием, если вы хотите транслировать их в одном сеансе.RTSP description получает описание мультимедийного сеанса файла, и оно используется для настройки потоковых сеансов, поэтому крайне важно, чтобы все файлы были закодированы одинаково.

RTSP не предусматривает каких-либо условий для списков воспроизведения.Обычно списки воспроизведения не передаются через RTSP, а, скажем, через HTTP.IMO, если список воспроизведения находится на клиенте, было бы более целесообразно дождаться пока RTCP-пакета (на eof), а затем выполнить SETUP и PLAY для следующего URI файла / RTSP в списке воспроизведения.

Есливы просто хотите передать последовательность файлов ( playlist на сервере), где RTSP-клиент просто запускает один сеанс, конечно, ничто не мешает вам создать собственный источник файлов в библиотеке live555, который делает то, что выхочет ...

...