我正在尝试使用 handbrake-js for node 转换视频。起初我尝试指定比特率、视频大小、编解码器等。目标是生成几个 html5 兼容的流,用作 webGL 画布视频的源。一切似乎工作正常,它输出视频,当我使用 Quicktime 或 VLC 打开它时,它看起来很好,但是,当我在标签上使用它时,没有视频,只有音频。
下面的代码在一个函数中调用,该函数接收一个“ops”JSON,带有宽度和高度。
hb.spawn({ input: new_location + "original" + ext, output: new_location + ops.name, optimize: true, vb: ops.vb, "width": ops.width, "height": ops.height, "rate": 30 })
控制台显示正在转换的视频,以及干净的退出。但 webGL 报告:
[.Offscreen-For-WebGL-0x7fbf21074c00]渲染警告:绑定到纹理单元 0 的纹理不可渲染。它可能不是 2 的幂并且具有不兼容的纹理过滤。
注意:视频是2 的幂 (1024x512) 。此外,当我播放原始文件时,它不会显示错误。
为了调试,我什至将视频附加到 HTML,并更改了 CSS 以显示它。但没有视频。只是音频。
我什至尝试过:
hb.spawn({ input: "input.mp4", output: "output.m4v" })
和一个简单的嗯... input.mp4 显示正常。output.m4v 总是无法在 HTML 上显示视频(Chrome,safari 似乎工作得很好)。
有任何想法吗?