0

Mencoder 有一个不错的选择,可以将 mjpeg 文件转换为 avi 文件,该文件带有在 VLC 中播放的“MJPG”编解码器。

执行此操作的命令行是:

mencoder 文件名.mjpeg -oac 复制 -ovc 复制 -o outputfile.avi -speed 0.3

其中 0.3 是所需播放帧速率与默认 25 fps 的比率。所有这一切都是制作 mjpeg 文件的副本,在顶部和最后放置一个 avi 标题,这似乎是文件中帧位置的索引。

我想在我自己的代码中复制它,但我在任何地方都找不到文档。索引部分的确切格式是什么?由于某种原因,标头中有额外的填充字节 - 这是什么?

有人知道我在哪里可以找到文档吗?mencoder 和 vlc 似乎都内置了这个编解码器。

4

1 回答 1

1

经过大量的工作、学习和摆弄 HxD 和 RiffPad,我终于弄明白了。解释这一切需要很长的博客条目,但基本上没有真正的“MJPG”编解码器 - mjpg 只是使用 avi 标准的一些技巧和不寻常的部分来生成索引文件。

关键是在每个 Jpeg 开放标签前面放置 '00dc' 和一个 Int32 长度标签 8 字节。如果您希望 avi 是随机访问的,那么您需要在末尾有一个索引,该索引指向每个“00dc”标签位置。

VLC 将在本机播放这个。如果您安装了 ffmpeg,则 Windows Media Player 使用它来解码这些类型的 mjpg 文件。

于 2011-08-18T18:32:29.957 回答