c++ - 如何更改通过 C++ 上的 FFMPEG 库提取的帧的配色方案?

标签 c++ visual-c++ video ffmpeg color-scheme

我已经能够使用 FFMPEG 解码视频文件并将它们保存在 *.ppm 文件中。

我想知道如何在解码后和保存它们之前立即更改每帧的颜色?

例如:如果我有一个从视频文件中解码并提取的彩色帧,我现在想将其更改为黑白帧,然后将其保存到文件中。

我对 FFMPEG 库很陌生,开发人员可以使用的文档更少。因此,任何对它的帮助都将是非常可观的。

谢谢

最佳答案

我已经能够使用 sws_getContext 方法将其转换为灰度。

我的方法在这里:

mpFrameSwsContext = sws_getContext(mpAVCodecContext->width, 
                mpAVCodecContext->height, mpAVCodecContext->pix_fmt, mpAVCodecContext->width, 
                mpAVCodecContext->height, PIX_FMT_GRAY8, PIX_FMT_GRAY8 , NULL, NULL, NULL);

但最终生成的图像如下所示:

enter image description here

任何人都可以建议任何更正吗?

谢谢

关于c++ - 如何更改通过 C++ 上的 FFMPEG 库提取的帧的配色方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25950424/

相关文章:

c++ - 启动服务器时出现 std::exception (WinSock2)

ios - 在ios中顺序播放图像

flash - Flex VideoDisplay 停止缓冲

java - Google Play 游戏服务 C++ SDK 找不到 NativeSdkEntryPoints java 类

c++ - MSBuild 构建后步骤

c++ - LoadLibrary 找不到 ntoskrnl

c++ - 为什么可执行文件这么大? (为什么不删除死代码?)

php - 使用 php 从 url 上传视频到 youtube

java - Android 设备启动时一直运行后台代码

c++ - 制作 Makefile