首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Live555流多个文件

使用Live555流多个文件
EN

Stack Overflow用户
提问于 2011-06-30 13:32:31
回答 3查看 2.4K关注 0票数 2

testOnDemandRTSPServer.cpp库有一个很好的例子,这个例子只是流“一个”给定的文件。我想要流多个文件。Live555是否有播放列表的概念,或者如何在Live555中流多个文件?

谨致问候

PS:我尝试添加多个子会话,在这种情况下,Live555只是流最后一个会话文件.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-30 16:43:41

我的0.02美分:我不确定这是否有意义:如果您想要在同一个会话中传输它们,如何确保它们都以相同的格式编码,这是必需的。RTSP描述获取文件的媒体会话描述,这用于设置流会话,因此至关重要的是,所有文件的编码都是相同的。

RTSP没有为播放列表做出任何规定。通常播放列表不是通过RTSP传输的,而是通过HTTP传输的。如果播放列表驻留在客户机上,则更有必要等待RTCP bye数据包(在eof),然后为播放列表中的下一个文件/RTSP URI进行设置和播放。

如果您只想流一个文件序列(播放列表在服务器上),RTSP客户端只启动一个会话,当然没有什么可以阻止您在live555库中创建一个自定义文件源,以满足您的需要.

票数 0
EN

Stack Overflow用户

发布于 2012-10-21 15:27:02

还有一个live555代码附带的应用程序。Live555Media服务器存在于源代码的mediaServer目录中。这就是我的工作。它使用dynamicRTSP服务器类。您可以将包含所有媒体文件的文件夹给它,并以rtsp://ip/filename的形式访问它们。

票数 1
EN

Stack Overflow用户

发布于 2015-04-07 13:52:39

最近,我不得不执行类似的任务,并具有类似的功能:

在这里,您可以像播放列表一样在行中播放视频H264流文件(当然,如果它们是相同的分辨率、编码配置文件等)。

您必须修改ByteStreamFileSource::doGetNextFrame方法。有类似feof的代码(FFid)

代码语言:javascript
复制
 if (feof(fFid))
 {
     CloseInputFile(fFid);
     fFid = OpenInputFile(envir(), "test.264");
     //fileName
 } 
else ....

当然,如果你仍然需要遵守LGPL,你会有更多的工作要做.您必须在库外复制/重命名这个类,并对H264VideoFileServerMediaSubsession和修改方法createNewStreamSource做同样的操作,以便使用重写的ByteStreamFileSource类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6535544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档