handbrake-js(节点)html5-Chrome上没有视频

时间:2017-05-27 19:32:18

标签: google-chrome html5-video handbrake handbrake-js

我尝试使用handbrake-js为节点转换视频。 起初我尝试指定比特率,视频大小,编解码器等。目标是生成几个html5兼容流,用作webGL画布视频的源。一切似乎工作正常,它输出视频,当我使用Quicktime或VLC打开它看起来很好,但是,当我在标签上使用它时,没有视频,只有音频。

以下代码被称为whithin函数,它接收" 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] RENDER警告:绑定到纹理单元0的纹理不可渲染。它可能是非幂2并且具有不兼容的纹理过滤。

注意:视频 IS 的功率为2(1024x512)。此外,当我播放原始文件时,它不会显示错误。

要进行调试,我甚至将视频附加到HTML,并更改了CSS以显示它。但是没有视频。只是音频。

我甚至尝试过:

hb.spawn({ input: "input.mp4", output: "output.m4v" })
和一个简单的 嗯... input.mp4显示正常。 output.m4v总是无法在HTML上显示视频(Chrome,Safari似乎工作正常)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您说preset: Normal有效,那么您可以运行handbrake --preset-list(使用handbrake-js installed as a command-line app)查看“普通”预设使用的编码器选项:

+ Normal:  -e x264  -q 20.0 -a 1 -E ffaac -B 160 -6 dpl2 -R Auto -D 0.0 --audio-copy-mask aac,ac3,dtshd,dts,mp3 --audio-fallback ffac3 -f mp4 --loose-anamorphic --modulus 2 -m --x264-preset veryfast --h264-profile main --h264-level 4.0

因此,请尝试使用上述选项运行hb.spawn并删除您不需要的任何选项。