gpt4 book ai didi

c++ - 使用套接字/内存而不是文件在 Cuda 中解码视频

转载 作者:可可西里 更新时间:2023-11-01 17:44:52 27 4
gpt4 key购买 nike

我目前正在尝试使用 cuda 解码视频。我有名为 cudaDecodeD3D9 的 cuda 示例。此示例使用名为 cuvidCreateVideoSource 的方法,该方法采用指向源视频的文件指针。有没有办法让 Cuda 从内存/套接字/流中加载视频?

最佳答案

事实证明,我根本无法使用 cuvidCreateVideoSource 方法,而是可以通过调用 cuvidParseVideoData 将每一帧数据直接提供给 cuda 视频解析器。

这是一个从文件中读取一帧并将其提供给 cuda 解析器的示例。该文件是我创建的,方法是将每个帧的大小写入文件,然后是帧数据。该文件可以很容易地替换为从套接字读取:

unsigned int size = 0u;
fread( &size, sizeof( unsigned char ), sizeof( unsigned int ), _file );

unsigned char *buf = new unsigned char[size];
fread( buf, sizeof( unsigned char ), size, _file );

CUVIDSOURCEDATAPACKET packet = {};
packet.payload_size = size;
packet.payload = buf;
cuvidParseVideoData( pCudaParser, &packet );

delete [] buf;

关于c++ - 使用套接字/内存而不是文件在 Cuda 中解码视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33743928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com