1

我正在尝试制作一个类似于 Periscope 的应用程序(实际上不可行,但技术要求相似),用户可以在其中快速开始从他们的 iPhone 向未知数量的用户流式传输,无论是移动设备。我正在尝试使用 Azure 媒体服务进行实时视频流传输,但即使在阅读了几页文档之后,我还是被卡住了。

我正在使用 VideoCore ( https://github.com/jgh-/VideoCore ) 从 iOS 设备发布到 RTMP 服务器。在本地(使用 Wowza)上,我可以使用我设置的用户名和密码连接到本地服务器,如下所示:

vcSession = [[VCSimpleSession alloc] initWithVideoSize:CGSizeMake(1280, 720) frameRate:30 bitrate:1000000 useInterfaceOrientation:NO];
[self.view addSubview:vcSession.previewView];
vcSession.previewView.frame = self.view.bounds;
vcSession.delegate = self;
[vcSession startRtmpSessionWithURL:@"rtmp://172.20.10.2:1935/live?rtmpauth=test:test" andStreamKey:@"test"];

其中rtmpauth参数的username:password格式是我test在本地服务器上设置的。有用。在 Azure 中,我创建了一个名为 的频道test,并且获得了以下摄取 URL:

rtmp://test-myappname.channel.mediaservices.windows.net:1935/live/some-long-hexadecimal-string

在 Wirecast 中,我可以通过在输出设置中选择 Azure 媒体服务并键入该摄取 URL 来流式传输到 URL(尽管速度极慢并且连接经常丢失,不知道为什么)。在 iOS 中,我不知道如何连接到 Azure 媒体服务。

startRtmpSessionWithURL:andStreamKey:方法上,我尝试了 URL 和流键的所有可能组合,但没有运气。我不知道我的用户名/密码是什么(Azure 端没有给出任何内容),流密钥是什么(我试过test, live, 空字符串)以及那个长的十六进制字符串是什么(一些消息来源说它被称为定位器,虽然)。

连接到 Azure 媒体服务进行流式传输时,RTMP URL 和流密钥的正确格式是什么?

4

1 回答 1

4

我会找人帮你的。我认为您只是在 URL 中的长十六进制字符串之后缺少一个流名称。

rtmp://test-myappname.channel.mediaservices.windows.net:1935/live/some-long-hexadecimal-string/ [YOUR-CUSTOM-STREAM-NAME-Anything 真的!]

另外,您是否可以控制编码设置?可能某些编码设置不正确。我们尚未使用该 VideoCore 库进行测试,因此 RTMP 协议也可能存在细微差异(因为它的文档记录非常差,并且有很多缺失的信息)。

我很好奇为什么你的 Wirecast 设置也有问题。这听起来不太好开始。网络问题?您是否将其设置为使用 H.264 而不是 x264 设置的正确编码器预设?

在此处对照 Cenk 的博客文章查看您在 Wirecast 中的设置:http: //azure.microsoft.com/blog/2014/09/18/azure-media-services-rtmp-support-and-live-encoders/

于 2015-04-21T17:06:44.857 回答