Video UWP:如何对原始视频帧进行H.264编码并获得编码帧

Video UWP:如何对原始视频帧进行H.264编码并获得编码帧,video,uwp,h.264,Video,Uwp,H.264,您好,我是UWP编程新手。 我们有一个现有的视频通话应用程序,我们正在UWP中为Windows移植。 我们现有的系统设计了这样一种方式,摄像机原始帧(YUV帧)馈送到视频编码器(H.264或H.263),编码的视频数据将被打包并发送到网络 为了获取YUV摄像机数据,我使用了MediaCapture和MediaFrameReader,如中所述 但是,我无法找到API,对这些视频帧进行编码并获得编码的视频帧 请帮助我,我怎样才能在UWP中获得编码视频帧我几乎可以肯定你不能在C#中做到这一点。我最近没

您好,我是UWP编程新手。 我们有一个现有的视频通话应用程序,我们正在UWP中为Windows移植。 我们现有的系统设计了这样一种方式,摄像机原始帧(YUV帧)馈送到视频编码器(H.264或H.263),编码的视频数据将被打包并发送到网络

为了获取YUV摄像机数据,我使用了MediaCaptureMediaFrameReader,如中所述

但是,我无法找到API,对这些视频帧进行编码并获得编码的视频帧


请帮助我,我怎样才能在UWP中获得编码视频帧我几乎可以肯定你不能在C#中做到这一点。我最近没有媒体的兴趣,但是几年前,你必须使用C++中的媒体基础(MF)来完成所有的视频转换。

我尝试(只成功了一半)在一个MKV编解码器不存在的时候重新制作一个MKV编解码器,这就是我必须求助的地方。这些编解码器基本上是黑匣子,MF将自动选择解码视频所需的编解码器

要编写您自己的编解码器(或使现有编解码器与MF一起工作),您必须使用此功能。问题是它使用WRL而不是更新的C++/WinRT。但是哦,好吧

另外,如果你想看看我制作MKV编解码器的可怕尝试,请看这里: 我是C++新手,也是MF的一个完整的NOOB。但它奏效了。。。有点

编辑日期:2019年2月2日 可以肯定的是,你看到这个了吗?显然,现在使用内置工具,您可以更轻松地对视频进行转码:

但要合并您自己的编解码器,您可以按照本教程将使用MF和UWP创建的内容结合起来。
我几乎可以肯定,你不能在C#中这样做。我最近没有媒体的兴趣,但是几年前,你必须使用C++中的媒体基础(MF)来完成所有的视频转换。

我尝试(只成功了一半)在一个MKV编解码器不存在的时候重新制作一个MKV编解码器,这就是我必须求助的地方。这些编解码器基本上是黑匣子,MF将自动选择解码视频所需的编解码器

要编写您自己的编解码器(或使现有编解码器与MF一起工作),您必须使用此功能。问题是它使用WRL而不是更新的C++/WinRT。但是哦,好吧

另外,如果你想看看我制作MKV编解码器的可怕尝试,请看这里: 我是C++新手,也是MF的一个完整的NOOB。但它奏效了。。。有点

编辑日期:2019年2月2日 可以肯定的是,你看到这个了吗?显然,现在使用内置工具,您可以更轻松地对视频进行转码:

但要合并您自己的编解码器,您可以按照本教程将使用MF和UWP创建的内容结合起来。

谢谢你,先生。李·麦克弗森,谢谢你详细的回答。不管怎样,我都是用C++/WinRT开发的,不使用C。对于使用MediaFoundation,我有一个主要顾虑。如我所见,它只适用于桌面。所以,如果我想在桌面以外的地方使用这个应用程序,它不会工作,不是吗?不幸的是,我的代码将转到SurfaceNo,它确实适用于UWP。您可以使用在应用程序清单中注册的编解码器发布UWP应用程序。让我看看我是否能找到相关的样本并更新我的答案…谢谢先生。李·麦克弗森,谢谢你详细的回答。不管怎样,我都是用C++/WinRT开发的,不使用C。对于使用MediaFoundation,我有一个主要顾虑。如我所见,它只适用于桌面。所以,如果我想在桌面以外的地方使用这个应用程序,它不会工作,不是吗?不幸的是,我的代码将转到SurfaceNo,它确实适用于UWP。您可以使用在应用程序清单中注册的编解码器发布UWP应用程序。让我看看是否能找到相关样本并更新我的答案。。。