Ffmpeg UWP中的视频转码
我需要将视频流从MJPEG转换为MP4、AVI或MKV格式。可以使用ffmpeg或vlc吗?我正在开发UWP Win10应用程序,没有太多用于此的软件包 编辑:我的代码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 {
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转换成其他格式,不是吗?