gpt4 book ai didi

c++ - FFmpeg av_read_frame 返回大小但没有数据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:17:56 40 4
gpt4 key购买 nike

我已经编写了一些 C 代码来访问 ffmpeg 并将其包装在 C++/CLI(.NET 管理)类中。该程序获取实时视频流并提取帧并将它们转换为 PNG 文件。

不幸的是,保存到磁盘的图像总是黑色的(在 Notepad++ 中打开它们显示它们充满了空值)。

我正在使用程序集 aformat/codec-55.dll 以及开发头文件和库从 ffmpeg-20131120-git-e502783-win64-dev 进行编译。整个项目是使用 Managed C++ (Cpp/cli) .NET 4.0 for 64-bit 编译的。

经过一些调查,问题似乎是 av_read_frame 正确填充了 AVPacket->size 值,但 AVPAcket->data 始终为空。当帧完成(got==1)时,AVFrame 的数据只是一个空值矩阵。 :(

代码如下: Example code (sorry, but it didnt paste well into SO)

当数据包返回时,我认为问题出在第 34 行: size is set but data is empty

请问,我怎样才能让它工作?我做错了什么?

最佳答案

解码部分对我来说似乎没问题。我不太确定编码和保存为 PNG。为什么不尝试使用 fwrite 将 (frame->linesize*frame->height) 字节从 frame->data 转储到磁盘并查看它使用 Irfanview(例如)?

关于c++ - FFmpeg av_read_frame 返回大小但没有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20216529/

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