如何从Windows 10应用程序直播到Youtube

本文关键字:直播 Youtube 应用程序 Windows | 更新日期: 2023-09-27 18:06:42

我正在玩YouTube直播流API。到目前为止,这工作得很好,但下一步是通过RTMP将网络摄像头的数据流式传输到YouTube。

在Google Dev的(优秀的)文档中,它概述了广播的生命。但是,除了我感兴趣的步骤之外,所有步骤都有详细的文档记录:

步骤3.2:启动视频

开始在视频流上传输视频。

我能够使用开放广播软件流到手动创建的YouTube直播事件,但我不知道如何从我的Windows 10应用程序中做到这一点。我已经查看了MediaElement类,并且能够在我的应用程序中捕获网络摄像头预览。但我只能找到保存为文件的方法。

还发现了有关FFMPEG的信息,它应该能够完成这项工作,但我找不到一个库/DLL来在我的应用程序中使用FFMPEG。

我只是需要一些指导,因为我现在只是不知道该做什么。

/edit:我遇到了MPlatform SDK,这听起来正是我想要的,但它需要5000美元....(

如何从Windows 10应用程序直播到Youtube

)

所以,正如您提到的,FFmpeg确实支持RTMP上的流(输出)。我不确定你想要流式传输什么,因为这取决于它,解决方案会稍微复杂一点。两种基本情况:

  1. 如果你想从屏幕上流式传输一个现有的文件或其他东西,你可以简单地在c#应用程序中使用ffmpeg作为命令行可执行文件。
  2. 如果你流式传输自定义位图数据,它有点复杂,你必须手动调用libavformat/libavcodec。

所以,首先,获得一些Windows版本的FFmpeg,例如从zeranoe。如果你要走路线1,只需在应用程序中调用ffmpeg.exe,就完成了。如果你想走第二种路线,将相关的库加载到你的项目中,并遵循关于使用libavcodec/libavformat编写文件的教程。如果你告诉我你要写什么数据,我可以给你更详细的信息。然后,使用任意一种方法打开rtmp://输出流,就可以了。(使用h264作为视频编解码器,aac作为音频编解码器,并确保您的构建具有x264支持,这是zeranoe所做的)

就像@Ronald和@rogerdpack所说的,ffmpeg可能是你最好的选择。

假设你想在发布到YouTube之前捕获和处理视频,从其他专业软件那里得到提示。

直播应用程序VMix,我很确定也是用。net/wpf编写的,使用以下方法:

  • 使用windows DirectShow库或他们支持的任何其他方法捕获视频流(他们有许多源类型)
  • 使用他们需要的任何过滤器内部处理视频-但基本上他们只是操纵帧/音频样本
  • 将结果A/V数据流作为虚拟DirectShow捕获设备呈现
  • 启动ffmpeg作为一个子windows进程,命令行开关指向它从虚拟设备捕获,并指导它发布到任何RTMP服务器

如果你可以只使用VMix -去吧,它是相当便宜的基本版。我就是这么做的跟你走一样的路