我正在开发一款应用程序,该应用程序需要在浏览器中,跨桌面和移动设备(包括使用Cordova的打包应用程序)对视频进行帧精确搜索。
桌面浏览器与iOS设备(包装应用程序和Safari)一样正常工作,但Android设备似乎只在视频中显示关键帧(也称为帧内帧或i帧)。
I've setup a test page on jsfiddle to help demo my problem。
视频已使用ZenCoder进行编码。它的帧速率为23.976,关键帧每250帧。视频本身显示当前帧索引,因此您可以轻松地看到只有0,250和500帧的帧正在Android设备上显示,无论您在何处寻找。
在这个阶段,我对能够在Android浏览器中运行的解决方案或作为Cordova的打包应用程序感到满意(我也尝试过使用Crosswalk WebView,但无济于事。)
答案 0 :(得分:1)
本机Android播放机制(MediaPlayer和MediaExtractor)不支持帧精确搜索(请参阅here)。这意味着您的HTML5视频播放必须建立在除Android框架之外的其他内容之上。虽然可以使用其他解码器,但这听起来不仅仅是HTML5应用程序的包装器。因此看起来有两种方法:实现关键帧搜索(可能需要进行一些调整,例如寻找前一个关键帧,然后向前播放到所需的点),或者为您的应用程序构建一个大量的本机包装/实现。