0

我想从静态图像创建一个 RTSP/h264 视频流,并将其合并到我的 .NET 应用程序中。到目前为止,我已经找到了两种可能的方法来做到这一点:

  1. 使用ffmpeg / ffserver,但我需要在windows上编译ffserver然后依赖它......我不一定想依赖外部应用程序

  2. 使用 LIVE555 (http://www.live555.com) 库,但它们没有任何 .NET 库,因此我需要花费一些精力使其与我的 .NET 应用程序的其余部分一起工作。

您能否评论#1,#2,或者哪个更好。有没有更快的方法在 .NET 中启动 RTSP 服务器?如果有一个需要时间的可靠解决方案,我不介意投入开发时间,但最好有一些我们可以快速使用的东西,用于原型设计和演示。

谢谢,

4

4 回答 4

1

1 你可以使用已经编译好的 ffmpeg/ffserver for Windows。只需 google 一下,您就可以找到许多适用于 Windows 的预编译库。

2 对于 live555,您可以在 VC6、YS2003 或 VS2008 中构建库。请参阅链接如何在 Windows 上配置和构建代码编译它非常简单,只需 1 小时即可完成。

*这些库是用 C/C++(非托管代码)编写的,以便在您的托管代码中使用这些库,您可能需要进行编组或编写某种接口。

于 2011-01-15T06:00:04.853 回答
1

h264 转码部分将是困难的部分。X264 for .Net 的包装器并不多。

在您有一种编码方式之后,您仍然必须将数据打包以使其在 Rtp 上工作,这是 Rtsp 用来将媒体发送到每个客户端的方式。这意味着以正确的方式将数据放入 RtpPackets,在这种情况下由 RFC 确定https://www.rfc-editor.org/rfc/rfc6184

我在 c# 中有一个 RtspClient 和 RtspServer 可以为您获取各个数据包,以便您可以将它们发送到解码器。

这里还有一篇关于它的代码项目文章 http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp

VLC 是另一种选择,因为它可以进行转码并为您提供 Rtsp 流供客户端同时使用。

查看 VLC 文档http://www.videolan.org/doc/streaming-howto/en/ch05.html

如果您还需要什么,请告诉我!

于 2012-12-12T15:01:11.360 回答
1

这是否需要即时完成,或者您可以上传图像,然后创建视频,然后只提供 h264 视频流?如果可以的话,我会从代码中的命令行调用 FFMpeg 并输出视频并跳过 RTSP。如果您使用 qt-faststart,您还可以获得可搜索的流,而无需先下载整个 MP4。

于 2011-01-14T20:03:19.473 回答
0

虽然这不是一个永久的解决方案,但迄今为止最简单的方法是使用 .net Process 库将 vlc 嵌入到程序中:

Dim p As New ProcessStartInfo
p.FileName = "vlc"  'Assuming vlc.exe is already in the path variable
p.Arguments = "vlc CLI options for setting up the stream"
p.WindowStyle = ProcessWindowStyle.Hidden
Process.Start(p)
于 2011-01-17T16:47:08.790 回答