Ffmpeg UWP中的视频转码

Ffmpeg UWP中的视频转码,ffmpeg,uwp,vlc,mjpeg,transcode,Ffmpeg,Uwp,Vlc,Mjpeg,Transcode,我需要将视频流从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 {

我需要将视频流从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应用程序有自己的视频转码名称空间。有关如何转码媒体文件,请参考。并提供了将媒体文件转码到可供参考的
MP4
WMI
AVI
的示例

其次,对于FFmpeg来说,它是一个免费的、开源的多媒体框架,包括一套可供最终用户用于转码、流媒体和播放的工具,以及一套供开发人员在应用程序中使用的库。所以你可以用它来转码。幸运的是,目前有一个用于uwp的FFmpeg库,名为“FFmpegInterop”。您可以尝试通过Nuget包使用它,更多详细信息请参考


对于VLC,还有一个用于uwp的包,它是。您可以通过引用访问此软件包。

首先,uwp应用程序有自己的名称空间用于视频转码。有关如何转码媒体文件,请参考。并提供了将媒体文件转码到可供参考的
MP4
WMI
AVI
的示例

其次,对于FFmpeg来说,它是一个免费的、开源的多媒体框架,包括一套可供最终用户用于转码、流媒体和播放的工具,以及一套供开发人员在应用程序中使用的库。所以你可以用它来转码。幸运的是,目前有一个用于uwp的FFmpeg库,名为“FFmpegInterop”。您可以尝试通过Nuget包使用它,更多详细信息请参考


对于VLC,还有一个用于uwp的包,它是。您可以通过引用访问此软件包。

您确实可以使用ffmpeg,但也应该尝试更好地编写问题。您确实可以使用ffmpeg,但也应该尝试更好地编写问题。谢谢您的快速回复!。我使用了Windows.Media.Transcoding,但当它创建MediaEncodingProfile时,会引发以下异常:System.TypeloadException{“请求的Windows运行时类型'Windows.Media.MediaProperties.MediaEncodingProfile'未注册”。:“Windows.Media.MediaProperties.MediaEncodingProfile”}。“有什么想法吗?”我搜索了一下,什么都没找到。@cahernanz请提供您的代码片段。请确保已导入相对名称空间。此外,接受一个答案并打开一个新线程会更好,因为这是一个新问题。此外,我编辑的代码,它创建了一个重量为“x”MBs的未压缩文件,但我不能播放它。我需要“通过”ffmpeg.exe才能正确播放。有什么解决办法吗?。提前谢谢。所以,如果我的视频是mjpeg格式,播放起来会有很多问题。我不能玩vlc。我想我无法使用媒体转码将mjpeg转换为其他格式,不是吗?谢谢你的快速回复!。我使用了Windows.Media.Transcoding,但当它创建MediaEncodingProfile时,会引发以下异常:System.TypeloadException{“请求的Windows运行时类型'Windows.Media.MediaProperties.MediaEncodingProfile'未注册”。:“Windows.Media.MediaProperties.MediaEncodingProfile”}。“有什么想法吗?”我搜索了一下,什么都没找到。@cahernanz请提供您的代码片段。请确保已导入相对名称空间。此外,接受一个答案并打开一个新线程会更好,因为这是一个新问题。此外,我编辑的代码,它创建了一个重量为“x”MBs的未压缩文件,但我不能播放它。我需要“通过”ffmpeg.exe才能正确播放。有什么解决办法吗?。提前谢谢。所以,如果我的视频是mjpeg格式,播放起来会有很多问题。我不能玩vlc。我想我不能使用媒体转码将mjpeg转换成其他格式,不是吗?