我目前正在尝试使用jQuery来抓取JWPlayer显示的当前帧。我搜索了JWPlayer API,似乎没有任何功能明显取出框架。
我正在使用avconv(ffmpeg)和nginx通过HLS流式传输相机,然后在浏览器中读取该流。因为这是一个实时流,所以我无权访问Buffer API函数。
我希望有一个解决方案,允许用户点击视频的某个位置,抓取该帧,分析图像并显示用户点击的位置数据。无论用户是否有闪光,都需要这样做。
我知道如何通过绘制到画布并使用canvas.toDataURL()从html5视频标记中获取帧。而且我相信JWPlayer可以通过视频标签显示它的视频,但我尝试的所有内容都会导致JWPlayer将指定的元素转换为某种flash对象。
我的最终目标是将base64编码的图像以及点击的坐标传递给服务器进行分析。
更新
由于我从相机流式传输实时信息,因此无法通过管道发送mp4,因为mp4需要可搜索的数据。这意味着我必须通过管道发送flv,但是,如果没有某种类型的Flash播放器,则无法在浏览器中读取flv格式。
因此解决方案要么必须涉及拦截流服务器端,转换为mp4,然后将其实时传递给客户端(这看起来要么非常困难,要么非常hacky),否则它将不得不涉及操纵flash对象。