我编写了一些 C 代码来访问 ffmpeg 并将其包装在 C++/CLI(.NET 托管)类中。该程序获取实时视频流并提取帧并将其转换为 PNG 文件。
不幸的是,保存到磁盘的图像总是黑色的(在 Notepad++ 中打开它们显示它们充满了空值)。
我正在使用程序集 aformat/codec-55.dll 以及开发头文件和库从 ffmpeg-20131120-git-e502783-win64-dev 进行编译。整个项目是使用 64 位的托管 C++ (Cpp/cli) .NET 4.0 编译的。
经过一番调查,问题似乎是 av_read_frame 正确填充了 AVPacket->size 值,但 AVPAcket->data 始终为空。当帧完成(得到==1)时,AVFrame 的数据只是一个空矩阵。:(
这是代码: 示例代码(抱歉,它没有很好地粘贴到 SO)
我认为当数据包返回时,问题出在第 34 行,如下所示:
请问,我怎样才能让它工作?我做错了什么?