From 63807aa9a7dc2c765ed51f341daaff88978ea2e7 Mon Sep 17 00:00:00 2001 From: André Araújo Date: Tue, 24 Nov 2015 18:01:27 -0300 Subject: [PATCH] Trata exceção quando o mesmo usuário requisitar a renderização do sinal duas vezes --- util.py | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/util.py b/util.py index e7c6214..1abb493 100644 --- a/util.py +++ b/util.py @@ -6,8 +6,10 @@ import json import math import os import pyutil +import shutil import sys import subprocess +import tempfile from bmesh_collision import bmesh_check_intersect_objects armature = bpy.context.scene.objects.get('Armature.001') @@ -231,6 +233,30 @@ def configure_output(): return def render_sign(user_id = "", sinal = "", frame_final = bpy.context.scene.frame_end): + bpy.context.scene.frame_end = 5 #frame_final + bpy.context.scene.render.filepath = tempfile.NamedTemporaryFile().name + pyutil.log("Render Video Frames: %i" % (frame_final)) + temp_filename = ("%s%0.4i-%0.4i" % (bpy.context.scene.render.filepath, bpy.context.scene.frame_start, bpy.context.scene.frame_end)) + temp_filename_mp4 = temp_filename + ".mp4" + temp_filename_webm = temp_filename + ".webm" + pyutil.log("Temporary File: %s" % (temp_filename_mp4)) + bpy.ops.render.render(animation = True, write_still = False, layer = "", scene = "") + if pyutil.file_exists(temp_filename_mp4): + getcwd = os.path.dirname(os.path.abspath(__file__)) + user_directory = os.path.join(getcwd, "users", user_id) + if (make_dir(user_directory)): + pyutil.log("user dir created: %s" % (user_directory)) + subprocess.call(["avconv", "-loglevel", "0", "-y", "-i", temp_filename_mp4, "-r", "24", "-vcodec", "libvpx", temp_filename_webm]) + subprocess.call(["rm", "-f", temp_filename_mp4]) + if pyutil.file_exists(temp_filename_webm): + user_full_path_webm = os.path.join(user_directory, sinal + ".webm") + try: + shutil.copy(temp_filename_webm, user_full_path_webm) + subprocess.call(["rm", "-f", temp_filename_webm]) + except: + pyutil.log("error while copy the video '%s' to ''" % (temp_filename_webm, user_full_path_webm)) + bpy.ops.wm.quit_blender() + """ getcwd = os.path.dirname(os.path.abspath(__file__)) base_path = os.path.join(getcwd, "users", user_id, sinal) bpy.context.scene.render.filepath = base_path + "_" @@ -239,9 +265,10 @@ def render_sign(user_id = "", sinal = "", frame_final = bpy.context.scene.frame_ bpy.ops.render.render(animation = True, write_still = False, layer = "", scene = "") renamed_video = pyutil.file_rename("%s%0.4i-%0.4i.mp4" % (bpy.context.scene.render.filepath, bpy.context.scene.frame_start, bpy.context.scene.frame_end)) # Converte arquivo .mp4 para .webm - subprocess.call(["ffmpeg", "-loglevel", "0", "-y", "-i", renamed_video, "-r", "24", "-vcodec", "libvpx", base_path + ".webm"]) + subprocess.call(["avconv", "-loglevel", "0", "-y", "-i", renamed_video, "-r", "24", "-vcodec", "libvpx", base_path + ".webm"]) subprocess.call(["rm", renamed_video]) bpy.ops.wm.quit_blender() + """ return def make_dir(directory): -- libgit2 0.21.2