在.NET平台上创建RTSP视频流

我想从静态图像创建RTSP / h264视频流,并将其合并到我的.NET应用程序中。到目前为止,我发现了两种可行的方法: 使用ffmpeg / ffserver,但我需要在Windows上编译ffserver然后依赖它...我不一定要依赖外部应用程序 使用LIVE555(http://www.live555.com)库,但它们没有任何.NET库,因此我需要花费一些精力才能使其与.NET应用程序的其余部分一起使用。 你能评论#1,#2,哪个更好。是否有更快的方式在.NET中启动RTSP服务器?如果有一个需要时间的可靠解决方案,我不介意投入开发时间,但是有一些我们可以快速工作,原型设计和演示的东西会很好。 谢谢,     
已邀请:
这是否需要动态完成,或者您是否可以上传图像,然后创建视频,然后只提供h264视频流?我只需从代码中的命令行调用FFMpeg并输出视频并跳过RTSP(如果可以)。如果你使用qt-faststart,你也可以获得可搜索的流,而不需要先下载整个MP4。     
1您可以使用已编译的ffmpeg / ffserver for Windows。只需google它,你就可以找到很多适用于Windows的预编译库。 2对于live555,您可以在VC6,YS2003或VS2008中构建库。请参阅如何在Windows上配置和构建代码。编译它非常简单,1小时的工作。 *这些库是用C / C ++(非托管代码)编写的,以便在托管代码中使用这些库,您可能需要进行编组或编写某种接口。     
h264转码部分将是困难的部分。 X264 for .Net的包装器并不多。 在您有一种方法对您的数据进行编码后,必须将数据打包以使其在Rtp上运行,这是Rtsp用于将媒体发送到每个客户端的。这意味着将数据以正确的方式放入RtpPackets中,这在本例中由RFC确定http://tools.ietf.org/html/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 如果您还有其他需要,请告诉我!     
虽然这不是一种永久性解决方案,但到目前为止,最简单的方法是使用.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)
    

要回复问题请先登录注册