Maya playblast with FFMPEG

Postato in tech python il giorno 25/08/2011 alle ore 18:46

Finalmente rimetto mano al blog, scrivendo un post totalmente tecnico!!

Dalla versione 2011 di Autodesk Maya i codec integrati per effettuare un playblast video sono alquanto inutili: uno funziona male, un altro genera un video troppo grande da poter utilizzare ed un altro non va affatto.

Nella versione a 64bit poi le cose vanno ancora peggio!

Per risolvere questa situazione ho realizzato uno script che effettua un playblast di immagini JPEG e le converte in un filmato video tramite l'encoder FFmpeg.

Ecco le righe per effettuare il playblast come sequenza di JPEG:

cmd.setAttr("defaultRenderGlobals.imageFormat", 8) #imposto a JPEG
format = "image"
compression= "jpg"
image = "nomeFile" #senza estensione, Maya poi aggiunge il frame padding
startFrame=cmd.playbackOptions(q=1,ast=1)
endFrame=cmd.playbackOptions(q=1,aet=1)    
cmd.playblast(filename=image,offScreen=1, startTime=startFrame,endTime=endFrame,v=0, compression=compression, format=format,p=100, showOrnaments=1,fp=4,widthHeight=[960,650],fo=1)


Queste invece le righe per convertire le immagini in un file video di qualsiasi formato si voglia (sì, anche Quicktime!):

import subprocess
ffmpeg = "path_to_ffmpeg/ffmpeg.exe"
bitrate = "100000k"
#ffmpeg command:
ffCommand = ffmpeg + ' -b %s -i %s.%%04d.jpeg -s 960x650 -aspect 1.477 -pix_fmt rgb24 %s\'%(bitrate, image, file)
process = subprocess.Popen(ffCommand, shell=True)

Ho dovuto aggiungere le specifiche di bitrate, aspect-ratio e pixel_format poichè di default FFmpeg converte a 4:3 (vedere la documentazione di FFmpeg per ulteriori specifiche).

Per verificare il completamento del processo, basta eseguire questo controllo:

if not process.wait(): #returns True when FFmpeg stops
    ....

Attenzione: se il file video esiste già, FFmpeg attenderà un'azione da parte dell'utente e perciò il processo rimarrà impantanato. Occorre eseguire un controllo sull'esistenza e in caso positivo cancellare il file.

 

Nessun commento - Commenta

Categorie