使用FFMPEG和LibAV

使用FFMPEG和LibAV,ffmpeg,multimedia,libavcodec,libav,libavformat,Ffmpeg,Multimedia,Libavcodec,Libav,Libavformat,我正在尝试实现一个软件,可以读取多个视频和音频源。软件管道的工作原理如下:从设备读取->执行一些计算->写入数据。我最初考虑使用ffmpeg库。首先,我想使用libavdevice读取所有可用设备。然而,我发现在ffmpeg包中很难找到libav***库的适当文档。我的问题是: 有比libav***更好的建议吗?将来,我还想从捕获的数据创建视频文件 是否有适合libav***库的文档?我还没有在libavdevice上通过谷歌看到任何内容 有没有一种方法可以进行轮询而不是等待捕获帧?示例:只需以

我正在尝试实现一个软件,可以读取多个视频和音频源。软件管道的工作原理如下:从设备读取->执行一些计算->写入数据。我最初考虑使用ffmpeg库。首先,我想使用libavdevice读取所有可用设备。然而,我发现在ffmpeg包中很难找到libav***库的适当文档。我的问题是:

  • 有比libav***更好的建议吗?将来,我还想从捕获的数据创建视频文件
  • 是否有适合libav***库的文档?我还没有在libavdevice上通过谷歌看到任何内容
  • 有没有一种方法可以进行轮询而不是等待捕获帧?示例:只需以15 FPS的速度从摄像头读取数据,就会浪费大量时间和线程。也许有一种方法可以轮询相机或麦克风
    谢谢大家。

    根据您的应用程序,直接使用FFmpeg可能更可取。它可以使用STDIO,并且可以从现成的捕获设备中读取数据。我不这么认为,事实上,计算是实时的。这意味着捕获的帧将在之后立即进行处理,而不是像整个记录然后整个处理那样。如果ffmpeg能够提供实时帧,我会很高兴。你想要原始帧,一帧一帧?没错。我更喜欢对网络摄像头进行投票,而不是浪费一个线程来阅读它(每当有一帧我们就去抓取它,而不是等到帧准备好再抓取它)。如果可能的话,可以使用文件描述符来选择。我真的不明白,如果有一个线程来处理捕获,你会觉得浪费了什么。