我正在构建一个Android应用程序,除此之外,还需要使用可用的YouTube API启动实时视频流。我已经在此审核了Google视频,并将相关的示例Java代码用于其中。我终于设法获得了youtube构建,直播,直播,相关插页,各自"返回的广播/流"的基本代码。并且将语句绑定到代码中,并且所有正确的库都已到位,我仍然有4个问题尚未解决。
1)在示例代码(或我搜索的其他网站)中没有找到如何从摄像头设备创建视频流并将其连接到"输入插口"以上结构。有些网站显示了如何从Android设备摄像头直播,但是当我看到该代码时,我无法确定如何将该方法(以及变量)与YouTube示例代码对齐。
2)同样,我无法确定哪个变量将包含"输出套接字"上述结构 - 用户可以点击观看广播的URL,然后我可以在我的应用程序的后续步骤中使用。
3)" auth"到达上述阶段所需的类不可用作库。我终于提取了Github上提供的代码,并且可以从这里获取它,如果这是唯一的方法,但是是否有正式发布的该类及其方法的库版本?
4)最后但并非最不重要,虽然我说我已经设法将代码放入应用程序并且没有显示丢失的库等,但它仍然无法构建。错误如下,再次在搜索Stackoverflow以查找这些类型的错误时,我无法明确下一步。
理想情况下,我想解决上述问题,而无需更改或添加"技术堆栈" - 例如,提到了用于提取URL的Python工具....我宁愿深入了解它是如何完成的,并在Java代码中完成。
希望用这个论坛的综合脑力来解决!此致
答案 0 :(得分:2)
我可以回答前两个问题(但道歉......因为我不是Android开发人员,我对前两个问题的帮助不大):
1)YouTube Livestream API无法实际流式传输视频;相反,当您发出调用以创建Livestream资源对象时,返回的对象将具有以下参数:
cdn.ingestionInfo.ingestionAddress
您需要获取Android上存在的任何库和代码来创建RTMP流并将其直接发送到返回的地址(在YouTube端,当您创建该Livestream资源对象时,它会打开摄取套接字,当您的数据开始通过,它具有完成所有转码所需的所有信息,然后根据您设置的参数重新广播它。
2)您将需要使用两个“输出套接字”来使用您的术语。首先,当您创建广播资源时(在创建直播资源之前),您可以传递的设置之一是:
contentDetails.monitorStream.enableMonitorStream
如果将其设置为true,则返回的资源对象将具有其他参数:
contentDetails.monitorStream.embedHtml
那将是一个监控播放器,所以无论是谁在进行直播,都能看到流出现(一旦你的应用程序完成第一步),但实际上它可能真的存在于全世界。
就实况世界流而言,您可以构建此...广播资源对象的ID参数将只是一个普通的旧视频ID,因此当返回时(表示广播已设置) up),观察URL将是:
https://www.youtube.com/watch?v={ID}
答案 1 :(得分:0)
API仅允许您创建和管理直播广告事件。获取rtmp地址作为摄取地址后,您需要自己捕获摄像机,然后使用其中一个编码器/流媒体库实际流式传输到该地址。
过去我使用了ffmpeg库。我使用Android ndk来构建c ++代码,并内置到我的应用程序中。由于ffmpeg我无法开源项目,但现在我将该部分剥离为接口,并希望在几天内开源。我会更新问题。