7

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

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

4

3 回答 3

10

缺少元数据是正常的。IP 摄像机通常会发送 MJPEG,一个接一个的 JPEG 图像作为流。这是最基本的有效 MJPEG 文件。如果您要获取一堆 jpeg,将它们组合成一个大文件,然后将其提供给 ffmpeg,它会将其视为有效的 mjpeg 格式文件。一些相机会添加一个额外的标题来包含音频数据,但不需要将其视为有效的运动 jpeg。

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

于 2012-05-22T21:22:25.270 回答
6

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

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

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

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

于 2012-06-01T17:22:25.177 回答
0

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

于 2012-05-17T14:04:07.487 回答