问题标签 [live555]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1406 浏览

h.264 - 如何在 XCode 中集成 Live555(iOS SDK)

我必须使用 rtsp h264 实现从 iphone 到 wowza 服务器的实时流。我确实搜索并找到了一个库 Live555。我创建了 .a 文件以及包含头文件。但我无法在我的 XCode 中使用它们。正如我当时使用的那样,它开始在理解 c++ 关键字“类”时出现错误。这可能是因为 .hh 文件。

有没有人知道如何在 ios 应用程序中包含 live555。

提前致谢...

0 投票
1 回答
10931 浏览

c++ - Live555:基于“testOnDemandRTSPServer”的X264 Stream直播源

我正在尝试创建一个流式传输我的程序的 OpenGL 输出的 rtsp 服务器。我看了一下How to write a Live555 FramedSource to allow me to stream H.264 live,但我需要流是单播的。所以我看了一下 testOnDemandRTSPServer。使用相同的代码失败。据我了解,我需要提供存储 h264 帧的内存,以便 OnDemandServer 可以按需读取它们。

H264VideoStreamServerMediaSubsession.cpp

FramedSource.cpp

RTSP-Server Therad 的相关部分

一旦连接存在,渲染循环就会调用

0 投票
1 回答
1381 浏览

c++ - 使用 CMake 编译 live555 静态库

我正在尝试在我的程序中使用 live555 库。我使用 CMake 作为构建系统。我做了这个 CMakeLists.txt :

编译/链接我得到了很多类似这样的错误:

每个库都已编译。似乎这些库相互依赖,我必须将它们链接在一起或按特定顺序链接。有谁知道是否是这种情况?怎么做?

0 投票
1 回答
336 浏览

streaming - 如何使用 live555 流式传输 mp3 文件音乐?

我想编写一个应用程序,服务器向它的客户端发送音乐,客户端同时播放音乐。经过大量搜索,我找到了 live555 流式传输音乐。那么如何使用默认代码(testMP3Streamer 和 testMP3Receiver)将 mp3 文件流式传输到我的客户?(程序运行时我没有互联网连接,我必须通过 wifi 传输数据)

在 testMP3Streamer 中,有一个确定目标客户端的目标,但我有多个客户端!

0 投票
0 回答
1091 浏览

c++ - liveMedia RTSP 服务器的 CPU 使用率非常高

我正在开发一个多媒体应用程序,它使用 liveMedia 库通过 RTSP 流式传输视频和音频。我从相机读取原始视频帧,使用 libx264 对其进行编码,将其保存在 tbb::concurrent_queue 中并运行 RTSP 服务器。我使用 DynamicRTSPServer.cpp 和 live555MediaServer.cpp 作为示例来创建我的 RTSP 模块,但我遇到了一个问题 - 一个线程(执行 BasicTaskScheduler::doEventLoop )使用过多的处理器时间 - 超过 80-90% 的一个处理器内核(我有英特尔双核 T3100)。而对于我的视频流,我有很长的延迟,VLC 无法播放视频流(音频流播放正常)出现错误:主要警告:图片太迟无法显示(缺少 3780 毫秒)avcodec 错误:超过 5 秒迟到的视频->

我阅读了服务器的日志文件,发现我有很多失败的尝试从空队列中读取新数据。这是我的日志文件的片段(查看调试消息的时间 - 这是 FramedSource::doGetNextFrame 的不同调用)

我的视频流的帧率很低(相机只能达到 8 fps 或更低),当调用 doGetNextFrame 时,我的缓冲区在队列中还没有任何编码帧。在此尝试中,我有下一个调用堆栈:

当编码器给我新的帧时,我试图改变我的缓冲区和锁定线程的逻辑,但在这种情况下,我的音频流也有很长的延迟。我在服务器启动时设置了一些延迟,以便在缓冲区中保存更多数据,但是 livemedia 从缓冲区读取数据的速度比编码器编码要快:(

这个问题的原因是什么?liveMedia 如何检测从 FramedSource 读取的尝试频率?

我的 H264BufferMediaSubsession 继承了 liveMedia 的 H264VideoFileServerMediaSubsession 并仅覆盖 createNewStreamSource() 虚拟方法,我在其中创建 FramedSource 它将从我的缓冲区中读取数据。

0 投票
1 回答
2498 浏览

visual-c++ - Live555 fMaxSize 和 FFMPEG

我已经构建了一个 Live555 版本,它使用 FFMPEG 对视频进行编码并通过 RTSP 进行流式传输。

基本上它可以工作,但 RTSP 流非常紧张。

我进一步查看,结果发现 Live555 的最大缓冲区大小(fMaxSize)太小,Live555 正在截断帧,如下所示:

现在,我几乎无法控制来自 FFMPEG 的数据包有多大,我可以将比特率设置为低,但质量令人震惊,而且数据包仍然太大!

基本上 FFMPEG 决定了每帧的大小:

如果 pkt.size > fMaxSize 则帧将被截断,Live555 将填充视频流,这是所有时间。此外,FFMPEG 有时会决定缓冲帧,因此数据包可能会超过一帧。

我可以尝试告诉 Live555 增加它的缓冲区大小,但它完全忽略了它:

还有其他人有解决方案来正确传输编码的视频吗?我尝试将数据包分解并以较小的块将它们传递给 Live555,但它不起作用,如果我发送更多数据包,Live555 会降低它的 fMaxSize。

我的代码在这里:

https://dl.dropboxusercontent.com/u/15883001/Code.zip

一些关于 RTSP 流发生情况的图像在这里,您可以在更详细的图像中看到 LIVE555 努力正确发送数据包:

https://dl.dropboxusercontent.com/u/15883001/vlcsnap-2013-12-12-09h34m30s225.zip

在黑白图像中,帧大小为 117000 字节,小于最大帧大小 300000

在 Iron 彩色图像中,帧大小为 212000 字节。

在彩虹色图像中,帧大小为 322000 字节,大于最大帧大小 300000,并被截断,导致您在示例图像中看到。

任何帮助将非常感激

谢谢

0 投票
0 回答
1171 浏览

c++ - armv7s 上的 Live555 (RTP/RTSP)

可以将 live555 lib 与 armv7s 一起使用吗?因为我尝试用 config 编译它

然后我尝试将程序testMP3Reciver复制并粘贴到我的 iOS 项目中(是的,我使用 .mm 作为后缀而不是 .m,并包含需要的每个标题),但仍然出现 14 个错误Undefinded symbols for architecture armv7s

14 个错误

我的代码:

所以我再问一次,甚至可以在armv7s上使用live555吗?也许我应该使用另一个库?


解决方案/更新

我必须扔掉 armv7s,而不是使用这个项目来为 iOS 创建胖库。

分步解决方案:

  1. 克隆这个项目git clone git@github.com:weevilgenius/live555-ios.git
  2. 构建 lib,并复制到您的项目中。一开始我在查找已编译的库时遇到问题。所以对于那些不知道如何找到它的人。在 Xcode 文件树中构建 lib 后,打开文件夹 Products 并右键单击 libLive555.a 然后选择“在 Finder 中显示”。 在取景器中显示

  3. 每个.hh 添加到您的项目中。这些文件位于文件夹中,包括在文件夹Live555的每个子文件夹中。现在一切都应该很好:)

0 投票
2 回答
24213 浏览

ios - RTSP/RTMP 视频流客户端 iOS

我需要一个开源解决方案/库来将 RTSP/RTMP 流式传输到 iOS 应用程序。我需要构建一个连接到媒体服务器的应用程序,并打开提供的视频流。我相信那里肯定有库,但我还没有找到一个开源、编译、实际工作并在 iOS 5+、iPhone 4+ 上运行的库。我没有偏好,RTMP或者RTSP就足够了。最好是工作量最少的那个。我有 RTSP 在 Android 端工作,但在 iOS 端还没有。

这是我今天从研究中已经知道的——

RTSP

  • 似乎可以使用 Live555/FFMPEG
  • MooncatVenture Group - 旧 FFMPEG,与 ARMv7s 不兼容(一年多没有更新/博客/提交)
  • DFURTSPPlayer - 这是一个工作示例。

实时多播

  • 似乎可以使用 Live555/FFMPEG
  • 有一些库用于数据消息传递,但仅此而已
  • MidnightCoders Project - 似乎还没有建立视频支持,因为音频还没有。

我以前从来没有弄乱过任何与视频相关的东西,所以编码、帧速率、关键帧、块等……对我来说很陌生。现在,似乎从 Live555/FFMPEG 构建静态二进制文件是解决我的问题的唯一方法。如果是这样,任何人都可以给我一个简单的快速入门指南或指向某人那里的博客/示例的链接吗?我不是在寻找任何疯狂的东西,只是一个简单的

  1. 下载这个 - 链接
  2. 像这样编译它 - LINK
  3. 将其放入 Xcode 中的 X 文件夹中
  4. 创建 X 对象
  5. 在此处阅读 Stream API - 链接

如果没有,有人想向我指出一个可用的开源库吗?

哦,是的,这恰好是我的第一个 iPhone 应用程序,也是我第一次使用 Objective-C。很棒的第一个项目,是吗?

0 投票
0 回答
1252 浏览

video - Live555server-MPEG4(.mp4) 流式传输到客户端

我已经尝试使用 Live555 服务器在客户端和服务器之间流式传输视频。我使用 VLC 作为客户端工具来打开视频。我能够流式传输扩展名.ts、、和.mpg、以及文件的视频。.webm.aac.mp3

但是,我无法流式传输.mp4(mpeg 4)文件。我已经尝试了 live555 的增强版本,它也支持 mpeg4 格式。当我尝试流式传输 mp4 格式时,vlc 显示以下错误:

[0x877da80] 虚拟接口:使用虚拟接口模块...
[0xb5000970] live555 demux 错误:无法与 rtsp://ipaddress:8554/123.mp4 连接 [0xb5400700] 主输入错误:打开`rtsp:// ipaddress:8554/123.mp4' 失败
[0xb5400700] 主输入错误:您的输入无法打开
[0xb5400700] 主输入错误:VLC 无法打开 MRL 'rtsp://ipaddress:8554/123.mp4' . 检查日志以获取详细信息。

你能帮我解决这个问题吗?

0 投票
2 回答
2232 浏览

python - 为 Chrome 上的本地 Web 应用程序流式传输 Panasonic IP 摄像机

我正在尝试让我的松下 WV-SP306 在我正在构建的 Web 应用程序的 chrome 浏览器上流式传输。我可以让它通过其控制面板上的默认 IE 9/Windows 设置进行流式传输。问题是我的客户只会使用 Chrome,而我在 Mac 上开发。

我已经决定尝试运行以下 Python 脚本的方法(从这里找到并修改它 - http://blog.mikemccandless.com/2013/11/pulling-h264-video-from-ip-camera-using .html但我首先有几个问题。

  1. live555 似乎是一个 C++ 库,我从未安装或开发过它(在此之前总是 Java)。要使用这个库,我已经下载了它,但不确定在哪里解压缩。关于这一点的任何建议都会很棒。我的 Web 应用程序的索引页位于以下位置:/Users/elizabethmcginnis/Documents/Titanium_Studio_Workspace/Knightscope NOC 1.5/Resources/HTML

  2. 幸运的是,这也是我第一次编写 python 脚本。所以我相信那里也会有很多问题。这是一个完全愚蠢的问题,我很抱歉,但任何人都可以帮助我如何从命令行运行这个脚本,以便我可以开始测试它吗?

  3. 最后,我尝试通过 VLC 运行我的流,但没有成功,默认视图是 IE 上的 ActiveX,我无法使用。如果其他人有其他解决方案,我会全力以赴。

谢谢!伊丽莎白