【问题标题】:Can Video For Windows (VFW) allow multiple video streams in one file?Video For Windows (VFW) 可以在一个文件中允许多个视频流吗?
【发布时间】:2017-09-13 18:04:32
【问题描述】:

在 Video For Windows API (VFW) 中没有太多关于流和样本概念的理论或文档。我想知道一个视频是否应该只包含:

  • 一个视频流
  • 一个音频流

或者一个视频可以包含多个视频流(一个接一个)和多个音频流?

我假设“样本”仅表示视频的一帧,而不是多帧。 我假设一个流,是帧的集合或样本的集合。因此,将视频分成多个流(帧集合)以制作多个“部分”或多个流会很有用

如果你不能在一个视频中有多个流,并且这个 api 只设计为每个视频有一个视频流(带有可选的音频流),如何创建一个由多个部分组成的视频?只需直接编辑/剪切/粘贴到单个流中?或者改用其他 API,例如 MediaFoundation/DirectShow?

【问题讨论】:

  • 部分到底是什么?它们将如何出现在视频播放器中?但是VFW是古老的。不要使用它。
  • 在研究了一下之后:我认为可以通过组合多个流然后将其保存为单个文件作为单个流...使用 AVISave() 函数来创建部分。我同意 VFW 非常古老,但一些旧代码依赖于它......所以它仍然有用,但使用它有风险,因为它可能不再受支持

标签: winapi video video-capture video-processing


【解决方案1】:

我不确定它是否可以通过普通 VfW 实现,但显然 AVI 格式确实支持多个视频流。我找到了a thread,其中包含来自具有双视频流的 Fujifilm Finepix Real3D W1 相机的样本:

  Duration: 00:00:02.99, start: 0.000000, bitrate: 9676 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 320x240, 30 tbr, 30 tbn, 30 tbc
    Metadata:
      strn            : FUJIFILM AVI STREAM 0200
    Stream #0.1: Audio: pcm_s16le, 11024 Hz, 2 channels, s16, 352 kb/s
    Stream #0.2: Video: mjpeg, yuvj422p, 320x240, 30 tbr, 30 tbn, 30 tbc
    Metadata:
      strn            : FUJIFILM AVI STREAM 0200

海报提供了有关如何拆分此类视频的建议。选项包括ffmpeg 和基于 DirectShow 的软件(GrpahEdit 和 GraphStudioNext);我怀疑您也可以使用它们来制作这样的视频。

【讨论】:

  • 视频流作为单个视频一个接一个地播放,还是类似于音频流,用户可以选择播放哪个音频流(英文曲目、法语曲目、评论曲目等.).. 为了让流一个接一个地播放,它们必须是有序的,并且播放器需要知道以什么顺序播放它们
  • 不,它们同时播放。如果您只想连接两个视频以一个接一个地播放,则不需要并行流。有关详细信息,请查看 VirtualDub 是如何做到的。
  • 有趣,他们在彼此之上混搭在一起玩?不过,我的大脑无法弄清楚它是如何工作的……如果你有透明度,并且将它们放在一起播放,那将产生一些有趣的效果和用例。
  • 嗯,它的实际处理方式是特定于播放器的。我可以让示例与 VLC 一起播放,它显示了两个窗口同时播放。我想立体声播放器可以在屏幕的不同侧面播放它们或其他东西......或者有些播放器可以允许在流之间切换,比如 DVD 上的角度。
猜你喜欢
  • 2016-09-21
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 2012-07-18
  • 1970-01-01
  • 2013-03-01
  • 2018-06-21
  • 1970-01-01
相关资源
最近更新 更多