在UWP中转码视频



我需要将视频流从MJPEG转到MP4,AVI或MKV格式。是否可以使用FFMPEG或VLC进行?我正在开发UWP Win10应用程序,并且没有很多包装。

编辑:我的代码

        VLCPreview.Source = "http://Admin:123456@192.168.0.21:6021/cgi-bin/cmd/encoder?GET_STREAM";
   /cmd/encoder?GET_STREAM
        try
        {

                            HttpClientHandler aHandler = new HttpClientHandler();
                            aHandler.Credentials = new NetworkCredential("Admin", "123456");
                            aHandler.ClientCertificateOptions = ClientCertificateOption.Automatic;
                            HttpClient aClient = new HttpClient(aHandler);
                            aClient.DefaultRequestHeaders.ExpectContinue = false;
                                                                                    //url get stream o web.Source
                            HttpResponseMessage response = await aClient.GetAsync("http://192.168.0.21:6021/cgi-bin/cmd/encoder?GET_STREAM", HttpCompletionOption.ResponseHeadersRead);//urlLinkToOnlineStream
                            Stream stream = await response.Content.ReadAsStreamAsync();
                             IInputStream inputStream = stream.AsInputStream();
                             ulong totalBytesRead = 0;
                             while (true)
                             {
                                 // Read from the web.
                                 IBuffer buffer = new Windows.Storage.Streams.Buffer(4096);
                                 buffer = await inputStream.ReadAsync(buffer, buffer.Capacity, InputStreamOptions.None);
                                 if (buffer.Length == 0)
                                 {
                                     break;
                                 }
                                 totalBytesRead += buffer.Length;
                                 await fileStream.WriteAsync(buffer);
                                Debug.WriteLine("TotalBytesRead: {0:f}", totalBytesRead);
                                if (StopRec == true) { break;}
            }
            transcode(destinationFile, sampleFileVidTranscoded);
                              inputStream.Dispose();
                            fileStream.Dispose();  

首先,UWP应用程序具有自己的命名空间Windows.Media.Transcoding用于转码视频。有关如何转码媒体文件,请参考本文。官方示例提供了可以参考的MP4WMIAVI的将媒体文件转码的示例。

其次,对于FFMPEG,它是一个免费的开源多媒体框架,其中包括一组工具,最终用户可以用于 transcoding ,流媒体和播放,以及一个一组库,供开发人员用于应用程序。因此,您可以将其用于转编码。幸运的是,目前有一个用于UWP的FFMPEG库,称为" FFMPECENTEROP"。您可以尝试通过Nuget Package FFMPeginterop.uwp 1.0.3使用它,并在Windows应用程序中使用FFMPEG参考更多详细信息。

对于VLC,还有一个适用于UWP的软件包,它是vlc.medialement。您可以通过参考此Nuget软件包访问此软件包。

相关内容

  • 没有找到相关文章

最新更新