将png转换为jpeg节点js

时间:2016-02-19 17:18:35

标签: node.js heroku ffmpeg imagemagick graphicsmagick

背景是,我使用FFMPEG将视频(mp4,mov)分割成PNG帧,然后使用GraphicsMagick将它们转换为jpeg。

所以我在NodeJS中使用GraphicsMagick,来自here及以下是一个片段:

var gm = require('gm').subClass({imageMagick: true});

gm('input.png')
.write('output.jpg', (err) => {
  if (err) return console.log(err);
  console.log('done');
});

但输出的jpeg颜色要么被洗掉,要么太暗。 有关输出,请参阅here。原始视频保留(mov),转换后的JPEG视频为中间和右侧。 中间一个是在 Heroku 上运行的节点应用程序,右侧图像是我的osx机器上的节点应用程序。

我已经读过它可能与'个人资料'但这似乎没有什么区别:

.profile('sRGB.icc')

' sRGB.icc'是我下载的颜色配置文件。

有什么想法吗?

我还尝试将颜色设置为16,777,216,尝试将位深度设置为8和16,尝试将颜色空间设置为' rgb'无济于事。

1 个答案:

答案 0 :(得分:0)

因此经过很长时间的大量测试和配置(使用Docker构建丰富)后,问题是较新的FFMPEG版本会使用某种混乱的轮廓渲染图像,这会导致颜色问题。

恢复到旧版的FFMPEG(2014版本)解决了这个问题。