gpt4 book ai didi

c++ - 如何使用 mplayer 播放到内存

转载 作者:太空狗 更新时间:2023-10-29 11:39:33 25 4
gpt4 key购买 nike

我需要将视频播放器嵌入到我的程序 (C++) 中,但我不能使用 XEmbed,因为我必须进行一些后处理。是否可以像使用 ffmpeg 那样将输出作为原始 RGB 写入内存缓冲区?

最佳答案

不幸的是,mplayer 不能作为库运行,但如果您愿意对 mplayer 代码做一些更改,可能会有一些 hacky 解决方案。这应该也适用于 Windows 和 MacOSX,但需要一些调整。

下载 mplayer 源代码并查找 ./libvo/vo_png.c 文件。您可以使用此文件作为模板并创建您自己的(比方说)./libvo/vo_shm.c - 有一个获取原始像素的函数。这个想法是创建一个共享内存对象(man shmget)。稍后您可以通过在将要显示像素缓冲区的其他进程中使用相同的键和 shmget 调用来引用此内存。请注意,您可能应该至少创建两个内存缓冲区,以便一次只有一个进程使用一个缓冲区。甚至三个或更多缓冲区可能是最佳选择。

另外不要忘记更改 static const vo_info_t info 结构初始化以将视频输出设备注册为不同的名称。据我所知,您的新 vo_shm.c 可以添加到 config.mak 文件中的构建系统。

祝你好运。

关于c++ - 如何使用 mplayer 播放到内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659447/

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