我正在使用wowza将源rtsp流重定向到多种类型的终端设备.由于基于http的流式传输的缓冲限制,我不能将它用于我的应用程序.我需要在我的restream中使用RTMP或RTSP.
除此之外:HTTP打包流需要大约3倍的密钥长度,或30秒的视频(银光和快速时间),因此我必须保持我的源流在wowza中保持缓冲区.这在我的应用程序中是不可能的,因为我必须节省wowza和源流之间的带宽.
据我了解,iOS不支持RTMP.因此,为iOS设备留下了RTSP.
使用像JWPlayer这样的东西来保持一致性会很好,但是JWplayer不支持RTSP !!
那么,是否有一个优雅的解决方案.像JWplayer这样的东西会自动为正确的客户端播放器服务(RTSP和RTMP客户端是唯一需要的).或者我必须自己扮演角色.
我正在寻找一种方法来监视流上的活动,以便我可以确定流中是否有任何内容.如果有,我将开始使用rtmpdump录制它.
我想这是通过运行一个每60秒检查一个流的cron任务来完成的.如果它确定流正在通过,则调用rtmpdump开始记录它.如果没有,那么什么都不做,并在60秒内再次检查.
由于rtmpdump只是在没有流数据的情况下出现错误,所以尝试使用它来监视流似乎不是一个好主意,但也许我错了.
如果我手动逐个进行此操作会很容易,但我正在尝试自动记录流的任务,如果它们可用的话.
有没有人遇到过这样做的方法?也许我可以在命令行(linux)中使用其他一些工具?如果它有帮助,我正在使用Ruby/Rails编写代码
我正在构建一个WP7应用程序来拍照并使用RTMP将图像上传到第三方服务器.不幸的是,我找不到任何合理的Windows Phone 7 RTMP客户端实现.
我已经下载了WebOrb,但似乎WPO库的WebOrb不支持RTMP.此外,我无法将Silverlight DLL集成到我的WP7应用程序中.
我也查看了FluorineFX,但它也没有WP7的版本.
您能否建议另一个在WP7上提供RTMP的库,或者让上述库与WP7一起工作的方法?
我需要一个开源解决方案/库来将RTSP/RTMP流式传输到iOS应用程序.我需要构建一个连接到媒体服务器的应用程序,并打开提供的视频流.我相信必须有库,但我还没有找到一个开源,编译,实际工作,并在iOS 5 +,iPhone 4+上运行.我没有偏好,RTMP也RTSP不会满足.优选地,具有最少工作量的那个.我在Android方面有RTSP工作,但iOS尚无用.
这就是我今天从研究中已经知道的 -
RTSP
RTMP
我以前从未搞过与之相关的任何视频,所以编码,帧速率,关键帧,块等等对我来说都很陌生.现在,似乎从Live555/FFMPEG构建静态二进制文件是解决我问题的唯一方法.如果是这样,有人可以给我一个简单的快速入门指南或链接到博客/示例有人在那里吗?我不是在寻找任何疯狂的东西,只是一个简单的东西
如果没有,有人想指出我的工作开源库吗?
哦,是的,这恰好是我的第一个iPhone应用程序,第一次在Objective-C.令人敬畏的第一个项目,是吗?
我们的 Flex/LCDS 应用程序当前使用 RTMP 进行消息传递/远程处理。
是否可以配置 Charles 来监控 RTMP 上的流量?如果是这样,如何实现?
我们将开发版本配置为使用 NIO-AMF(显然工作正常)。
我想从Android设备捕获相机流并将其流式传输到具有RTMP的服务器(服务器不受我的控制).我还没有想出如何从相机本身创建数据流,但这是为了以后的关注.
目前存在两个问题:我希望支持API 9+,并且Android不支持RTMP.
我已经浏览了一下,发现这个SO 转换视频输入流到RTMP和https://github.com/yixia/VitamioBundle.前者提出了一个几乎没有文档的库.后者可能支持它(?),但它需要API 14+.
是否有适当的示例或库,支持来自Android设备的RTMP流?我还读过有关转换RTSP或FFMPEG的内容,如果这是一种可行的方式,那么我想它也足够了.
我找到了这个库(它与上面提到的有很多相似之处),并尝试使用它.我在Android Studio中导入它并编写了一些代码,但它似乎在内部崩溃并出现java.lang.NoClassDefFoundError RTSP Codec Factory错误.显然,这在Android上运行得不是很好.
另外,我曾多次遇到过Adobe air.我不想在Action Script 3(AS3)中编写代码,因为这个库只是本机应用程序的一个(小)部分.如果Adobe Air有一个我不知道的库,那么如果可能,我很乐意将它集成.
目标:使用OBS从 PC流式传输,使用 Nginx RTMP 模块接收流并输出给观众,以便他们可以在 PC 和移动设备上查看实时流。为此,Nginx 必须使用 HLS 输出实时流。
我的合作伙伴设置了以下 Nginx 文件,但没有任何反应(这是按照 stackoverflow --> answer 的这个答案完成的)
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# you …Run Code Online (Sandbox Code Playgroud) 我喜欢nginx-rtmp-module的简单性,但我不清楚如何在Wowza中做一些非常简单的事情(尽管不喜欢Java).在Wowza中,我可以在onTextData事件中接收rtmp AMF元数据数据并配置动态叠加.这并不复杂,只是一些动态文本可能会变化很小.
我真的不知道如何在nginx-rtmp-module中为实时流做这个.我知道如何使用ffmpeg进行后期处理,但直播我不知道.这个模块看起来很简单,可以构建配置文件,并且web挂钩用于启动/停止/等.非常简单,但如何使用此模块动态叠加框架顶部的文本?
谢谢
我正在尝试为我正在处理的应用程序构建自己的客户端RTMP库.到目前为止,一切都已成功,因为我能够连接到RTMP服务器协商握手,然后发送所有必要的数据包(FCPublish Publish ETC)然后从服务器获取NetStream.Publish.Start的onStatus消息,这意味着我成功地让服务器允许我开始发布我的实时视频广播.Wireshark还确认信息(/数据打包)是正确的,因为它也正确显示.
现在我遇到麻烦的地方是RTMP Chunking,第17页和第18页的Adobe RTMP规范显示了一个消息如何分块的示例.从这个例子中我可以看出它是根据块大小(128字节)分解的.对我来说,块大小在初始连接和交换中协商,总是4096字节.因此,当我交换大于4096字节的视频数据时,我需要将消息分块,然后发送RTMP packetHeader并结合前4096字节的数据,然后发送一个小的RTMP头,即0xc4(0xc0 | packetHeaderType(0x04))结合4096字节的视频数据,直到发送了标头指定的完整数据包.然后进入一个新框架并重复相同的过程.
通过检查用不同语言编写的其他RTMP客户端示例,这似乎就是他们正在做的事情.不幸的是,我尝试传输的摄取服务器没有接收广播视频数据,他们不关闭我的连接,他们只是从不显示视频或视频是正确的任何迹象.Wireshark显示,在发送视频原子数据包之后,发送的大多数数据包都是未知(0x0)一点点,然后它们将切换到视频数据,并在显示未知(0x0)和视频数据之间进行触发.但是,如果我将有效负载最大大小限制为20000字节,Wireshark会将所有内容显示为视频数据.显然,摄取服务器不会在这种情况下显示视频,因为我正在删除大块的数据,因为它只有20k字节.
试图弄清楚出了什么问题我开始了另一个xcode项目,它允许我在我的Lan上欺骗RTMP服务器,以便我可以看到libRTMP IOS进入服务器时的数据.同样使用libRTMP,我可以记录它发送的数据包,它们似乎注入字节0xc4甚至128字节,即使我已经发送Change Chunk size消息作为服务器.当我尝试在我的RTMP客户端库中通过使用128块大小来复制它时,即使它被设置为4096字节,服务器也将关闭我的连接.但是,如果更改libRTMP以尝试转到实时RTMP服务器,它仍会在LibRTMP中打印出它正在以128的块大小发送数据包.并且服务器似乎在视频显示时接受它.当我查看RTMP服务器上的数据时,我发现它就是他们的全部.
任何人都知道会发生什么事吗?
有一些应用程序(例如Yellow duck)可以为您获取 RTMP URL 和密钥。然后可以将它们与 OBS 或任何其他流媒体软件一起使用。我正在构建的功能需要复制 Instagram 的功能,并为用户从 Instagram 中提取 RTMP 详细信息。
我曾尝试使用 Charles 代理来确定 Yellow duck 的工作原理,但我的技术有限,并且没有产生任何结果。
我知道没有可用的公共 API,这可能违反了他们的 ToS。
rtmp live-streaming instagram instagram-api instagram-graph-api