繁体   English   中英

FFmpeg av_read_frame返回一个大小但没有数据?

[英]FFmpeg av_read_frame returns a size but no data?

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

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

我正在使用程序集aformat / codec-55.dll和开发头文件和库来编译来自ffmpeg-20131120-git-e502783-win64-dev。 整个项目使用托管C ++(Cpp / cli).NET 4.0进行编译,适用于64位。

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

这是代码: 示例代码(抱歉,但它没有很好地粘贴到SO中)

我认为问题是在第34行时返回数据包,如下所示: 大小已设置但数据为空

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

解码部分对我来说似乎很好。 我不太确定编码和保存到PNG。 你为什么不试着用fwrite从frame->data转储(frame->linesize*frame->height)字节到磁盘,并用Irfanview看一下(例如)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM