适用于通用Windows平台应用的MJPEG流解码器

时间:2016-09-07 12:57:41

标签: stream uwp mjpeg decoder

我正在为学校开发UWP应用程序,我试图在应用程序中显示来自我的覆盆子pi的MJPEG流。所有可用的解码器似乎适用于Windows Phone 8.1,但不适用于新的UWP应用程序。

我可以做些什么来在我的应用程序中使用这些流?

如果没有,是否有一个工具可用于转换流并以正确的格式在另一个端口上流式传输?这可以是覆盆子或只是窗户。

提前致谢

1 个答案:

答案 0 :(得分:5)

这是支持UWP应用的MJPEG Decoder。要使用它,我们可以下载MJPEG Decoder Binaries,然后在项目中引用 MjpegProcessor.winmd

在此之后,我们可以使用以下代码来显示MJPEG流。

public sealed partial class MainPage : Page
{
    private MjpegDecoder mjpegDecoder;

    public MainPage()
    {
        this.InitializeComponent();
        mjpegDecoder = new MjpegDecoder();
        mjpegDecoder.FrameReady += mjpeg_FrameReady;
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        mjpegDecoder.ParseStream(new Uri("URI HERE"));
    }

    private async void mjpeg_FrameReady(object sender, FrameReadyEventArgs e)
    {
        using (InMemoryRandomAccessStream ms = new InMemoryRandomAccessStream())
        {
            await ms.WriteAsync(e.FrameBuffer);
            ms.Seek(0);

            var bmp = new BitmapImage();
            await bmp.SetSourceAsync(ms);

            //image is the Image control in XAML
            image.Source = bmp;
        }
    }
}