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

在.NET平台上创建RTSP视频流,.net,vb.net,streaming,ffmpeg,rtsp,.net,Vb.net,Streaming,Ffmpeg,Rtsp,我想从静态图像创建一个RTSP/h264视频流,并将其合并到我的.NET应用程序中。到目前为止,我找到了两种可能的方法: 使用ffmpeg/ffserver,但我需要在windows上编译ffserver,然后依赖它。。。我不一定要依赖外部应用程序 使用LIVE555(http://www.live555.com)但是他们没有任何.NET库,所以我需要花费一些精力使它与我的.NET应用程序的其余部分一起工作 你能评论一下#1#和#2#,还是哪一个更好。有没有更快的方法在.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。

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

    1您可以使用已编译的ffmpeg/ffserver for Windows。只要用谷歌搜索一下,你就可以找到很多针对Windows的预编译库

    2对于live555,您可以在VC6、YS2003或VS2008中构建库。请参阅如何在窗口上配置和生成代码的链接。编译它非常简单,而且需要1小时的工作


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

    1您可以使用已编译的ffmpeg/ffserver for Windows。只要用谷歌搜索一下,你就可以找到很多针对Windows的预编译库

    2对于live555,您可以在VC6、YS2003或VS2008中构建库。请参阅如何在窗口上配置和生成代码的链接。编译它非常简单,而且需要1小时的工作


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

    虽然这不是永久解决方案,但迄今为止最简单的方法是使用.net进程库将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)
    

    尽管这不是永久解决方案,但迄今为止最简单的方法是使用.net进程库将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)
    

    h264转码部分将是困难的部分。对于.Net,X264的包装器不多

    在您有了编码的方法之后,仍然需要对数据进行打包,使其通过Rtp工作,Rtsp使用Rtp将媒体发送到每个客户端。这意味着以RFC在本例中确定的正确方式将数据放入RTPPACKET

    我有一个c语言的RtspClient和RtspServer,它可以将各个数据包发送给解码器

    这里还有一篇关于它的codeproject文章

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

    查看VLC文档


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

    h264转码部分将是困难的部分。对于.Net,X264的包装器不多

    在您有了编码的方法之后,仍然需要对数据进行打包,使其通过Rtp工作,Rtsp使用Rtp将媒体发送到每个客户端。这意味着以RFC在本例中确定的正确方式将数据放入RTPPACKET

    我有一个c语言的RtspClient和RtspServer,它可以将各个数据包发送给解码器

    这里还有一篇关于它的codeproject文章

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

    查看VLC文档


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

    这是需要随时进行的事情,因为流需要是24/7实时的。静态图像用于生成流,并且图像将每隔几分钟左右更新一次。这是需要动态更新的,因为流需要24/7实时更新。静态图像用于生成流,并且图像将每隔几分钟左右更新一次。