testOnDemandRTSPServer.cpp库有一个很好的例子,这个例子只是流“一个”给定的文件。我想要流多个文件。Live555是否有播放列表的概念,或者如何在Live555中流多个文件?
谨致问候
PS:我尝试添加多个子会话,在这种情况下,Live555只是流最后一个会话文件.
发布于 2011-06-30 16:43:41
我的0.02美分:我不确定这是否有意义:如果您想要在同一个会话中传输它们,如何确保它们都以相同的格式编码,这是必需的。RTSP描述获取文件的媒体会话描述,这用于设置流会话,因此至关重要的是,所有文件的编码都是相同的。
RTSP没有为播放列表做出任何规定。通常播放列表不是通过RTSP传输的,而是通过HTTP传输的。如果播放列表驻留在客户机上,则更有必要等待RTCP bye数据包(在eof),然后为播放列表中的下一个文件/RTSP URI进行设置和播放。
如果您只想流一个文件序列(播放列表在服务器上),RTSP客户端只启动一个会话,当然没有什么可以阻止您在live555库中创建一个自定义文件源,以满足您的需要.
发布于 2012-10-21 15:27:02
还有一个live555代码附带的应用程序。Live555Media服务器存在于源代码的mediaServer目录中。这就是我的工作。它使用dynamicRTSP服务器类。您可以将包含所有媒体文件的文件夹给它,并以rtsp://ip/filename的形式访问它们。
发布于 2015-04-07 13:52:39
最近,我不得不执行类似的任务,并具有类似的功能:
在这里,您可以像播放列表一样在行中播放视频H264流文件(当然,如果它们是相同的分辨率、编码配置文件等)。
您必须修改ByteStreamFileSource::doGetNextFrame方法。有类似feof的代码(FFid)
if (feof(fFid))
{
CloseInputFile(fFid);
fFid = OpenInputFile(envir(), "test.264");
//fileName
}
else ....当然,如果你仍然需要遵守LGPL,你会有更多的工作要做.您必须在库外复制/重命名这个类,并对H264VideoFileServerMediaSubsession和修改方法createNewStreamSource做同样的操作,以便使用重写的ByteStreamFileSource类。
https://stackoverflow.com/questions/6535544
复制相似问题