我通过swscale运行png图像数据在iPhone上编码一些视频,以获取YUV420P数据,然后使用MSMPEG4V1编解码器对该帧进行编码。在api文档中,avcodec_encode_video应返回该编码操作从输出缓冲区中使用的字节数。进入编码器有234,000个字节,但avcodec_encode_video返回的结果只是“4”。结果在24帧中完全相同。这里似乎有点可疑......有什么见解吗?
这是代码的pastebin链接:
(抱歉远离SO的链接,我只是不想让代码在几个地方重复)
编辑:
另外,我已经为ffmpeg设置了一个自定义日志回调,我将日志级别设置为“详细”(libavutil / log.h),因此libavcodec应该将任何傻瓜记录到控制台,但是avcodec整个操作都很安静。 (注意:我测试过以确保我的日志回调正常工作)
答案 0 :(得分:0)
可能与编解码器相关。我将它从MSMPEG4V1编解码器切换到MPEG1VIDEO,avcodec_encode_video返回的值更符合我的预期。