Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebM中的帧精确搜索_Javascript_Ffmpeg_Html5 Video_Webm - Fatal编程技术网

Javascript WebM中的帧精确搜索

Javascript WebM中的帧精确搜索,javascript,ffmpeg,html5-video,webm,Javascript,Ffmpeg,Html5 Video,Webm,我正试图用WebM做一件有点棘手的事情。我试图将256幅生物图像编码为WebM。运动的时间维度与图像堆栈的空间维度非常相似,因此压缩比非常好。然而,我在解码电影画面时遇到了困难。我知道WebM使用IPB预测编码方案,但我从2011年开始阅读了WHATWG的几篇博客文章和讨论组,他们说当时帧精确搜索在Chrome中起作用 当我执行video.currentTime=0时,我正确地得到以下结果: 但是,如果我做了video.currentTime=0.34(例如),我会得到如下结果: 看起来我得

我正试图用WebM做一件有点棘手的事情。我试图将256幅生物图像编码为WebM。运动的时间维度与图像堆栈的空间维度非常相似,因此压缩比非常好。然而,我在解码电影画面时遇到了困难。我知道WebM使用IPB预测编码方案,但我从2011年开始阅读了WHATWG的几篇博客文章和讨论组,他们说当时帧精确搜索在Chrome中起作用

当我执行
video.currentTime=0
时,我正确地得到以下结果:

但是,如果我做了
video.currentTime=0.34
(例如),我会得到如下结果:

看起来我得到的是一个随机的、预测错误的帧。我只是把视频编错了吗?当我正常演奏时,它看起来很好

我使用256个PNG对视频进行编码,使用VP8编解码器,使用libvpx编译ffmpeg

ffmpeg-y-framerate 60-start\u number 0-pattern\u type glob-i'*.png'-qmin 10-qmax 42 out.webm

参考WHATWG和2011年的一些其他信息:

WHATWG讨论了帧精度:

BBC技术总监谈论帧精度:


一开始,Chrome似乎天真地将p/B帧解码为I帧。使用插入的
-g1
作为输出开关运行webm生成命令并进行检查。感谢您的提示!g标志是做什么的?我没有在手册页或帮助中看到它。我在谷歌上搜索了一下,它似乎和运动估计有关,根据你所说的,这是有道理的。啊,终于找到了。这是最大关键帧距离。完美的非常感谢。我用-G1试过了,效果非常好,尽管它只压缩了jpg。有趣的调查。:)我不是说这是一个解决方案,只是为了诊断。无论你选择哪一个;重复使用应该能够正确地解码任何随机帧。看看这个。对于使用原生铬,尝试更高的g值,直到它仍然有效。看起来像是百老汇的VP8版本。乍一看,Chrome似乎天真地解码了一个P/B帧,就好像它是一个I帧一样。使用插入的
-g1
作为输出开关运行webm生成命令并进行检查。感谢您的提示!g标志是做什么的?我没有在手册页或帮助中看到它。我在谷歌上搜索了一下,它似乎和运动估计有关,根据你所说的,这是有道理的。啊,终于找到了。这是最大关键帧距离。完美的非常感谢。我用-G1试过了,效果非常好,尽管它只压缩了jpg。有趣的调查。:)我不是说这是一个解决方案,只是为了诊断。无论你选择哪一个;重复使用应该能够正确地解码任何随机帧。看看这个。对于使用原生铬,尝试更高的g值,直到它仍然有效。似乎是与百老汇相对应的VP8。