gpt4 book ai didi

video - mp4 视频在 Quicktime/AVplayer 与 Chrome/Firefox 上的启动时间不同

转载 作者:行者123 更新时间:2023-11-28 21:40:13 32 4
gpt4 key购买 nike

我有一个非常奇怪的问题。我的 OSX 应用程序正在根据截屏生成 mp4 视频。出于某种原因,如果我在 Quicktime 或任何基于 OSX 的 AVPlayer 中打开此视频,它会比第 0 帧提前大约 14-15 帧开始播放。如果我用 Chrome 或 Firefox 打开 mp4,它实际上会在第 0 帧开始播放.

什么会导致忽略开始帧?这是在时间为零时比较 Quicktime 与 Firefox 的计时器倒计时的屏幕截图。请注意 Firefox 播放器是如何从 9:55 开始播放的,而 Quicktime 播放器是如何跳到 9:54 的。 enter image description here

这是我的 sample mp4 file如果您想亲眼看看。

谢谢

最佳答案

这是一个有趣的问题,您的示例很好地说明了这种效果。

使用 ffprobe 查看您链接到上面的文件给出:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'c44116b.mp4':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2015-04-25 15:54:30
Duration: 00:00:03.70, start: 0.957000, bitrate: 1164 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 480x360 [SAR 1:1 DAR 4:3], 899 kb/s, 22.99 fps, 22.99 tbr, 6k tbn, 12k tbc (default)
Metadata:
creation_time : 2015-04-25 15:54:30
handler_name : Core Media Data Handler
encoder : H.264

您可以在此处看到 ffprobe 报告的“开始”为 0.957000,这对应于您的 1 秒偏移量。

这并不能解释为什么某些播放器遵守这一点而其他播放器忽略它(Windows Media 播放器似乎也从头开始,而不是从偏移量开始)。更新:Roman 在下面指出这是一个已知行为,并且已经在 ffmpeg 列表中进行了讨论(请参阅 Roman 的回答)。这可能是由于 mp4 容器格式的历史,它源于 Apple QuickTime 规范。

开始参数的目的似乎是为了同步目的允许轨道偏移。为什么这会出现在只有一首轨道的视频中尚不清楚。

更新:这可能是任何人都想要的更多信息,但对于那些感兴趣的人...

根据 Roman 的回答,我使用 MP4 浏览器更详细地查看了 mp4 文件。从这里我们首先可以看出电影的“时间尺度”:

enter image description here

然后是编辑原子(或编辑框,因为在 mp4 世界中有时也称为原子):

enter image description here

编辑原子中的时间字段告诉玩家跳过前 5742 个“样本”并从那里开始。将此信息与时间刻度一起使用,它告诉我们每秒有多少样本,我们可以计算它应该延迟的时间:

  • 5742/6000 = 0.957

这与 ffprobe 报告的“开始时间”以及 OP 报告的延迟相对应。

关于video - mp4 视频在 Quicktime/AVplayer 与 Chrome/Firefox 上的启动时间不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29902341/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com