bpy_render.py
2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- coding: UTF-8 -*-
import bpy
import json
import os
import shutil
import sys
def configure_output():
bpy.context.scene.frame_start = 0
bpy.context.scene.frame_current = 0
bpy.context.scene.render.resolution_x = 640
bpy.context.scene.render.resolution_y = 480
bpy.context.scene.render.resolution_percentage = 100
bpy.context.scene.render.image_settings.file_format = 'H264'
bpy.context.scene.render.ffmpeg.format = 'MPEG4'
bpy.context.scene.render.ffmpeg.codec = 'H264'
bpy.context.scene.render.use_shadows = False
bpy.context.scene.render.use_raytrace = False
bpy.context.scene.render.use_envmaps = False
bpy.context.scene.render.use_motion_blur = False
bpy.context.scene.render.use_shadows = False
return
def file_rename(file_full_path):
file_path = os.path.dirname(os.path.abspath(file_full_path))
filename = os.path.basename(os.path.splitext(file_full_path)[0])
extension = os.path.splitext(file_full_path)[1]
filename_reversed = ""
valid_char = False
for char in reversed(filename):
if (valid_char == True):
filename_reversed += char
if (char == "_"):
valid_char = True
try:
filename_reversed = filename_reversed[::-1]
new_filename = os.path.join(file_path, "%s%s" % (filename_reversed, extension))
shutil.move(file_full_path, new_filename)
return new_filename
except Exception:
return ""
def render_video(upload_dir, sign_name):
bpy.context.scene.render.filepath = os.path.join(upload_dir, sign_name + "_")
try:
bpy.ops.render.render(animation = True, write_still = False, layer = "", scene = "")
return str("%s%0.4i-%0.4i.mp4" % (bpy.context.scene.render.filepath, bpy.context.scene.frame_start, bpy.context.scene.frame_end))
except:
return ""
def main():
if (len(sys.argv) == 8):
json_obj = json.loads(sys.argv[7])
try:
upload_dir = json_obj["upload_dir"]
sign_name = json_obj["sign_name"]
except:
sys.exit(3)
try:
configure_output()
file_rename(render_video(upload_dir, sign_name))
except:
sys.exit(4)
else:
sys.exit(5)
if __name__ == "__main__":
main()