javascript中的H.264视频编码器

时间:2013-06-10 13:55:29

标签: javascript html5 flash encoding h.264

我希望完全使用Javascript制作视频编码器。想法是用户将能够指定现有视频(足够简单)或一系列图像,然后能够将其编码为H.264以进行发布。

我知道目前不支持编码内容,但我想知道这是否完全可以在Javascript(或Flash桥)中使用?

感谢。

2 个答案:

答案 0 :(得分:4)

可以使用emscripten将视频编码器编译为javascript。例如,这是谷歌的VP9 libvpx库的emscripten编译版本:

https://bitbucket.org/desmaj/libvpx.js/overview

不幸的是它速度非常慢 - 大约是本机库速度的十分之一。我相信这是因为有很多内存访问正在进行,而且在emscripten中速度非常慢(参见https://bugzilla.mozilla.org/show_bug.cgi?id=771106)。此外,编码通常依赖于GPU或SIMD并行,这在javascript中目前不可用。

我认为视频编码目前在javascript中是不可行的。最好的解决方案是W3C将视频编码/解码API添加到HTML5,可能是WebRTC / getUserMedia的一部分。

此外,请参阅此博客文章,其中描述了这种情况:

https://brendaneich.com/2013/05/today-i-saw-the-future/

答案 1 :(得分:3)

视频编码本质上只是对来自一个文件的二进制数据的专门数学运算,以获取更多二进制数据以放入另一个文件中。如果您有办法以您需要的方式获取数据(例如HTML 5 FileReader)和输出(例如AJAX),那么中间部分可能存在的可能性范围内JavaScript的。

据说,大多数计算机和移动设备都包含专门用于矢量处理或视频压缩的专用硬件,与单独基于CPU的处理相比,它们允许平台专用软件相对快速地编码视频。您可能会发现在JavaScript中可以做的很慢,不能成为一个非常好的替代方案,具体取决于您的JavaScript环境可用的功能。