Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取视频c+的当前帧+;_C++_Visual Studio_Video - Fatal编程技术网

C++ 获取视频c+的当前帧+;

C++ 获取视频c+的当前帧+;,c++,visual-studio,video,C++,Visual Studio,Video,我正在使用visual studio。 我需要编写一个C++ DLL,它播放背景中的视频(H265编解码器)。视频不应该被看到,只应该听到声音。我需要捕获每个帧并将其提供给宿主应用程序 我找不到一个简单的API来访问播放器的当前帧 任何帮助都将不胜感激这个问题非常广泛,但有三种选择: -易于使用和实施,但您没有完全的访问权限(但对于您的需求来说,应该足够了) -您可以生成ffmpeg命令行工具,只需获得播放音频输出。这应该很容易。如果您想要更多的控制,您可以使用ffmpeg作为库,这有点难以使用

我正在使用visual studio。
我需要编写一个C++ DLL,它播放背景中的视频(H265编解码器)。视频不应该被看到,只应该听到声音。我需要捕获每个帧并将其提供给宿主应用程序

我找不到一个简单的API来访问播放器的当前帧


任何帮助都将不胜感激

这个问题非常广泛,但有三种选择:

  • -易于使用和实施,但您没有完全的访问权限(但对于您的需求来说,应该足够了)
  • -您可以生成ffmpeg命令行工具,只需获得播放音频输出。这应该很容易。如果您想要更多的控制,您可以使用ffmpeg作为库,这有点难以使用和实现,但您可以完全控制解码和播放过程
  • -与ffmpeg相同

  • 你有一个多媒体流,包含视频帧和音频样本。视频帧不需要显示,但需要传递给应用程序。音频样本应该被听到,但不能传递给应用程序。这听起来很奇怪。通常这两个流是同步的,但是你会失去同步。我想我不会失去同步。应用程序会要求我给她当前帧。如果某件事需要更多的时间,我会失去画面,但我可以接受。所以坏的情况是,一点延迟和帧丢失。人类对视频/音频去同步非常敏感。即使是半帧延迟也很明显。请注意,帧丢失是一个带宽问题,但同步是一个延迟问题。我不打算播放电影。我将播放一点动画,所以对于特定的动画,稍微延迟就可以了。我尝试使用libvlcpp,但没有成功。(). 我知道如何使用ffmpeg命令行工具。但是,据我所知,它运行在不同的进程中,因此我无法访问当前帧。我开始考虑将它用作一个库,但这对我来说太难了,所以我想知道是否有更简单的方法