Sometimes it's useful to use Etro in Node. This package is a wrapper of Etro that serves that purpose.
etroNode(() => {
// You can access inputs as html elements and pass them to Etro as usual.
const image = document.getElementById('input1') // <img> element
...
movie.exportRaw()
.then(window.done)
// Tell Etro Node what inputs to load with { id: path }
}, { input1: 'path/to/image.png' }, 'output.mp4')
etroNode(etroFunction, inputSources, resultCallbackOrPath[, page])
etroFunction
(string) - Function to run in the puppeteer page. etro and done are exposed as globals (accessed as properties of window)window.done(exportedBytes)
- Process the exported movie (resolved value of Movie#exportRaw), by either writing to resultCallbackOrPath if it's a string or executing it if it's a function
inputSources
(Object<string, <string|Object>>) - the input assets, mapped from id to path or raw data. If the input is provided as raw data, it should be an object with the following properties:resultCallbackOrPath
(function|string) - Determines what to do when window.done is alled in etroFunction. If it's a string, it is treated as a path and the movie is written to it. If it's a function, it is called with one argument exportedBytes.page
(Page) - the puppeteer Page to use. Defaults to a page created by a new browser.
Runs etroFunction
in a puppeteer page. Each input source is converted to an html element (<img>
, <audio>
or <video>
). The output is either written to the path or the callback is executed, depending on the type of resultCallbackOrPath
.
0.1.0 - 2020-09-30
Added:
etroNode
- the etro wrapperMovie#recordRaw
- a convenience method for recording in the etro wrapper
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.