npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nexrender-laravel

v0.5.6

Published

Automate your After Effects project creation and rendering routine.

Downloads

3

Readme


npm version Dependency Status Build Status Test Coverage Code Climate License Discord


Automate your After Effects project creation and rendering routine. Create your own render network.

Overview

This project solves problem of full video production cycle (creating, maintaining and releasing) for Adobe After Effects oriented projects. The aim is to build easy-to-use tool for video content creators to make theirs work easier.

It allows you to

  • create your own render network (render farm).
  • create personalized videos.
  • create localized videos.
  • create data driven videos
  • plan and schedule creation of video project, it's rendering and publishing.

How it works

  • rendering: It uses Adobe After Effects's aerender command-line interface application.
  • compositing: It creates temporary folder, copies project and replaces assets with provided ones.
  • personalization: It uses AE's expressions paired with compositing (noted above).
  • scheduling: It stores projects in local database.
  • network: It renders project per machine, and can be used to render several projects simultaniously.
  • farm: Can be used to render single project on several machines via Multi-Machine Sequence.

Why

Why this project was created.

I was managing youtube channel, where every week i was posting new music mix video. This video contained background image (was changing every new video), audio track (changing, obviously) and some other components that were static.

I was fuckn tired of creating nearly same videos over and over again, so i looked up online and found that thing: http://dataclay.com/. It was cool, but for non-profit oriented project, it was too pricy.

Then, in a few days of thinking, nexrender was born :D

Alternatives

There not so many alternative solutions to nexrender. As far i can tell only Datalcay's Templater bot edition includes such features. But, obviously, nexrender lacks many powerfull gui/user oriented features that templater have. Anyways, what nexrender do have is a very particular set of skills:

  • it's free
  • it's open source
  • it does not require you to use gui (you know, cli...automation'n'stuff)
  • it does not require you to have licensed Adobe After Effects on every rendering machine

Install

Install globally to use as cli:

$ npm install nexrender -g

Install locally to use programmaticaly, or as api:

$ npm install nexrender

Use

Update

There is a boilerplate project (kinda demo). It includes a created project ready to render, and all different aspects of nexrender (asset substitution, dynamic data processing, etc.). You can checkout the project here: https://github.com/inlife/nexrender-boilerplate

There are 2 main ways to use this tool. First one: to use as a isolated local render node, which will be just renderning projects that you'll want it to. And the second one: to create a render network, which will be pulling registered projects in api-server database, render them, and update their status on that server. api server + render nodes * N = network (farm). See wiki for details.

Usage (Simple Example)

Run http server to serve static asset files, for example on port 31999. Then create

'use strict';

var Project   = require('nexrender').Project;
var renderer  = require('nexrender').renderer;

var project = new Project({
    'template': 'MyTemplate.aepx',
    'composition': 'MainComp',
    'settings': {
        'outputModule': 'JPEG', // check your AE for existing output module
        'outputExt': 'jpg'
    },
    'assets': [
        {
            'type': 'project',
            'src': 'http://127.0.0.1:31999/MyTemplate.aepx',
            'name': 'MyTemplate.aepx'
        }, {
            'type': 'image',
            'src': 'http://127.0.0.1:31999/HotAirBalloon.png',
            'name': 'HotAirBalloon.png'
        }, {
            'type': 'script',
            'src': 'http://127.0.0.1:31999/test.js',
            'name': 'test.js'
        }
    ]
});

// start rendering
// NOTE: i inserted path to my aerender binary
// if you are on windows, your path might look like:
// 'C:\\Program Files\Adobe\After Effects CC 2015\aerender.exe'
var rendered = renderer.render('/Applications/Adobe After Effects CC 2015.3/aerender', project);

rendered.then(function() {
    // successfully rendered
    console.log('yay!');
});

Note: You need to start local/remote web-server that will be handling asset distribution. Or put assets on other web-server.

Usage (Render network (farm))

To start api server:

$ nexrender --api-server --port=3000

To start render node:

$ nexrender --renderer --host=localhost:3000 --aerender=/path/to/aerender

What you need next, is to POST project data to api server. More info: https://github.com/Inlife/nexrender/issues/7

Usage (Render network + node.js API wrapper)

If you want to manage your projects rendering and render network from a node.js application, you can write an simple extension do make all things cool and nifty.

Creating project:

var api = require('nexrender').api;

// Configure api connection
api.config({
    host: "localhost",
    port: 3000
});

// Define project properties
var assets = [{
    type: 'image',
    src: 'https://dl.dropboxusercontent.com/u/28013196/avatar/mario.jpeg',
    name: 'image.jpg'
}];

// Create project
api.create({
    template: 'template1.aepx',
    composition: 'base',
    assets: assets
}).then((project) => {

    console.log('project saved');

    project.on('rendering', function(err, project) {
        console.log('project rendering started');
    });

    project.on('finished', function(err, project) {
        console.log('project rendering finished')
    });

    project.on('failure', function(err, project) {
        console.log('project rendering error')
    });
});

Support

For more information, check out Wiki Also you are free to ask me questions -> open an issue.

Plans

  • cover code with tests
  • add render progress evaluation
  • add security to rest api layer
  • add feature of parallel rendering
  • test on more configurations

Contribution

Follow this link.

License

The project is licensed under the MIT license.