Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

328
Vistas
How to prevent my command line command from timing out?

I am running a command that renders images and then compiles them into an mp4 from blender via node/ command line.

It works perfectly well until I need to render over 200 images. It gets to around that number and then throws this error:

<ref *1> Error: spawnSync C:\WINDOWS\system32\cmd.exe ENOBUFS
    at Object.spawnSync (node:internal/child_process:1083:20)
    at spawnSync (node:child_process:812:24)      
    at execSync (node:child_process:895:15)       
    at D:\cubeOutput_node\index.js:72:21
    at new Promise (<anonymous>)
    at commandPromise (D:\cubeOutput_node\index.js:70:12)
    at init (D:\cubeOutput_node\index.js:85:11)   
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  errno: -4060,
  code: 'ENOBUFS',
  syscall: 'spawnSync C:\\WINDOWS\\system32\\cmd.exe',
  path: 'C:\\WINDOWS\\system32\\cmd.exe',
  spawnargs: [
    '/d',
    '/s',
    '/c',
    '"D:\\/Blender/blender.exe -noaudio -b D:\\cubeOutput_node/blenderParts/cubeOutput.blend -o D:\\cubeOutput_node/output/image_##### -s 1 -e 250 -a"'
  ],

Here is the code I'm running. I'm not great on promises/ async so any corrections are greatly appreciated.

const commandPromise = async (command, type) => {
    console.log(`${type} started...`.bold.yellow)

    return new Promise(async (resolve, reject) => {
        try{
            resolve(execSync(command))
        }catch(err){
            reject(console.log(`Oops, ${type} failed.\n`.bold.red, err))
        }
    })
}

async function init(){
    writeCoords()

    await commandPromise(constructCommand, 'building statue')
    console.log('Statue constructed.'.bold.green)

    await commandPromise(renderCommand, 'image rendering')
    console.log('images rendered.'.bold.green)

    await commandPromise(videoRenderCommand, 'video rendering')
    console.log('video rendered.'.bold.green)

    console.log('success.'.rainbow)
}

init()

And here are my commands:

const constructCommand = `${blenderEXEFilepath} -b ${blenderConstructorFilepath} --python ${constructorScriptFilePath} -- "test" ${cubeCoordsFilepath}`
const renderCommand = `${blenderEXEFilepath} -noaudio -b ${blenderConstructorFilepath} -o ${blenderOutputFilepath} -s 1 -e 200 -a`
const videoRenderCommand = `ffmpeg -r 60 -s 600x600 -start_number 00001 -i ${thisDir + '/output/image_%5d.jpg'} -vcodec libx264 -preset veryslow -crf 18 -pix_fmt yuv420p -r 60 ${thisDir + '/output/media.mp4'}`

As I said, it works fine up until I need to render the actual full animation's worth of images.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda