MJPEG Stream Information



我正在从我的相机接收MJPEG流。当我使用十六进制编辑器查看视频数据时,它似乎不包含任何流信息。我只看到一个又一个原始的JPEG,但没有关于帧率等的信息。

MJPEG缺少任何元信息是正常的,还是仅与我正在使用的相机有关?如果没有关于流的信息,播放器如何知道播放视频的速度?

缺少元数据是正常的。 IP 摄像机通常仅发送 MJPEG,一个接一个的 JPEG 图像作为流发送。 这是最基本的有效 MJPEG 文件。 如果你要拿一堆jpeg,把它们放在一起变成一个大的,巨大的文件,然后把它提供给ffmpeg,它会把它看作是一个有效的mjpeg格式文件。 某些摄像机会添加额外的标头来包含音频数据,但不需要将其视为有效的运动 jpeg。

当最初发送流时,许多摄像机会在 HTTP 标头中包含 X-Framerate 等标头,或者您可以将其设置为摄像机配置的一部分。 但是,当摄像机仅发送 jpeg 时,无法从流本身判断帧速率是多少。

MJPEG缺少任何元信息是正常的,还是仅与我正在使用的相机有关?如果没有关于流的信息,播放器如何知道播放视频的速度?

为了补充已经回答,IP摄像机是一个实时视频源,帧通常在从摄像机到达后立即呈现。罕见的IP摄像机附加额外的每帧信息,而不是名声大小(有些甚至不这样做!他们只发送数据和分隔符(。还有一些确实附加了时间戳和额外的数据,如运动检测状态。

大多数IP摄像机不做恒定的帧速率。也就是说,帧速率可能会有所不同,尤其是在弱光条件下会降低。接收方有责任在将数据多路复用为容器格式时附加每帧时间戳。时间戳可以从元数据(很少存在(中恢复,或者更频繁地从接收方标记具有本地接收时间的帧中恢复。

这是播放器以适当的速率播放视频序列的方式。实时馈送通常以"尽快显示收到的帧"为基础呈现。

通常MJPEG数据在流媒体包装器(如AVI或MOV(quicktime((中发送。包装器格式将包含帧速率和有关可选音频数据的信息。

相关内容

  • 没有找到相关文章

最新更新