editly: Error: write EPIPE

Trying to run a pretty simple example file:

{
  width: 720, height: 1280, fps: 30,
  defaults: {
    transition: { name: 'random' },
  },
  clips: [
    { duration: 3, transition: { name: 'directional-left' }, layers: [{ type: 'title-background', text: 'EDITLY\nVideo editing framework', background: { type: 'linear-gradient', colors: ['#02aab0', '#00cdac'] } }] },
    { duration: 4, transition: { name: 'dreamyzoom' }, layers: [{ type: 'title-background', text: 'Multi-line text with animated linear or radial gradients', background: { type: 'radial-gradient' } }] },
    { duration: 3, transition: { name: 'directional-right' }, layers: [{ type: 'rainbow-colors' }, { type: 'title', text: 'Colorful backgrounds' }] },
  ],
}

Using command: editly simple.json5 --fast --out test.gif

Returns:

320x320 15fps
createFrameSource linear-gradient clip 0 layer 0
createFrameSource title clip 0 layer 1
createFrameSource radial-gradient clip 1 layer 0
createFrameSource title clip 1 layer 1
  0%   7%  14%  22%  29% Done with transition, switching to next clip
createFrameSource gl clip 2 layer 0
Error: write EPIPE
    at afterWriteDispatched (internal/stream_base_commons.js:154:25)
    at writeGeneric (internal/stream_base_commons.js:145:3)
    at Socket._writeGeneric (net.js:784:11)
    at Socket._write (net.js:796:8)
    at doWrite (_stream_writable.js:403:12)
    at writeOrBuffer (_stream_writable.js:387:5)
    at Socket.Writable.write (_stream_writable.js:318:11)
    at /usr/local/lib/node_modules/editly/index.js:396:51
    at new Promise (<anonymous>)
    at module.exports (/usr/local/lib/node_modules/editly/index.js:396:15)

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 19 (13 by maintainers)

Commits related to this issue

Most upvoted comments

Yes I want to add a better check, so keeping it open until that’s done

Huh, apparently I’m a dummy and didn’t have ffmpeg on this machine, thought I did. Maybe could add a check and error message? Or a note in the readme maybe, either way I’ll close this.

It doesn’t finish rendering the two first clips, it just opens them and starts streaming from them. Because editly is based on streams, it will buffer up a bit first, and then try to write to output ffmpeg. What fails is when it’s trying to write to the output: https://github.com/mifi/editly/blob/4a6d5939d195bde8ac29bb6d10673860b3bef5a6/index.js#L396

So it indicates that the output ffmpeg failed to start or has stopped.

I agree we should add a lock file, but we need one for yarn and one for npm. I’m not sure the best way to keep them in sync. I usually use yarn, but when users run npm install -g they need npm lockfile