我已经为我的UWP应用程序构建了一个统一插件,它将原始的h264数据包转换为RGB数据,并将其呈现为纹理。我用了FFMPEG来做这件事,而且效果很好。
int framefinished = avcodec_send_packet(m_pCodecCtx, &packet);
framefinished = avcodec_receive_frame(m_pCodecCtx, m_pFrame);
// YUV to RGB conversion and render to texture after this现在,我正在尝试使用DirectX11 DXVA2.0进行基于硬件的解码。
我能够创建一个解码器(ID3D11VideoDecoder),但我不知道如何提供原始的H264数据包,并获得YUV或NV12数据作为输出。(如果可能的话,可以直接将输出呈现到纹理,因为我可以获得ID3D11Texture2D指针)
因此,我的问题是,您如何将原始的h264数据包发送到这个解码器并从中获得输出?
此外,这是为了实时操作,所以我试图实现最小的延迟。
提前感谢!
发布于 2018-09-28 14:37:12
既然您已经使用FFMPEG完成了它,我建议您直接使用FFMPEG的dx11硬件解码。
有关详细信息,请查看HW解码程序FFMPEG示例:解码.c
https://stackoverflow.com/questions/52432738
复制相似问题