0

我有一堆格式有点奇怪的视频文件。有一个常规的视频流,还有一个文本流,用于存储视频帧的精确时间戳(来自 GPS 同步的硬件时钟)。这是来自的示例输出ffmpeg

Input #0, avi, from 'in.avi':
  Duration: 00:00:52.13, start: 0.000000, bitrate: 311033 kb/s
    Stream #0.0: Video: rawvideo, rgb32, 658x492, 30 tbr, 30 tbn, 30 tbc
    Stream #0.1: Data: 0x0000

视频是未压缩的,所以我想压缩它。我成功地使用ffmpeg了那部分。问题是,我想将数据流#0.1 映射到输出文件中,完全不变。我一直在尝试和尝试,但我找不到任何方法来ffmpeg做到这一点。它只想处理音频、视频和字幕流,并且文本不是有效的字幕格式。制作视频的人刚刚退休,因此无法更改输入格式。有任何想法吗?

4

1 回答 1

0

好吧,让我们考虑一下您要在这里做什么:

  • 您想节省空间并保持档案完好无损。高尚的想法。但是,视频文件的用途是什么?由于您在 AVI 文件中有数据流,因此您似乎有一个软件可以读取这些文件并对其进行处理。那么,该软件是否能够读取压缩视频?
  • 视频帧速率是恒定的还是在变化?如果它是恒定的,您可以提取第一帧的时间,并在使用文件时以编程方式计算每一帧的时间。
  • AVI 不会处理你想要做的事情。你可以拥有你现在拥有的,因为视频帧和时间戳是一一对应的,当你的视频打包时,会有KEYFRAMES和其他视频数据,你只能给关键帧打时间戳
  • 如果您不需要软件来使用该文件,您是否可以考虑在视频的 IN 帧中添加时间戳,并完全放弃您的数据流?

好吧,我不想回答,但你的问题太开放了。

编辑:我正在阅读 AVI 文件确实具有恒定帧率,因此您可以真正使用第一种技术并将第一帧的时间戳写入某个文件。

于 2011-07-05T20:09:07.540 回答