tFix video functionality - sphere - GPU-based 3D discrete element method algori… | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit c57e00820eb2d87c653321649e2b09de8ca969be | |
parent 346ae8299917811199c587382cb5c683d2b37995 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Mon, 2 Sep 2019 06:35:54 +0200 | |
Fix video functionality | |
Diffstat: | |
M python/sphere.py | 34 +++++++++++++++++------------… | |
1 file changed, 19 insertions(+), 15 deletions(-) | |
--- | |
diff --git a/python/sphere.py b/python/sphere.py | |
t@@ -4647,6 +4647,8 @@ class sim: | |
+ " --render $F; done", shell=True) | |
# Convert images to compressed format | |
+ if verbose: | |
+ print('converting images to ' + graphics_format) | |
convert(graphics_format=graphics_format) | |
def video(self, out_folder="./", video_format="mp4", | |
t@@ -7488,7 +7490,7 @@ def render(binary, method='pres', max_val=1e3, lower_cut… | |
:type verbose: bool | |
''' | |
quiet='' | |
- if verbose == False: | |
+ if not verbose: | |
quiet='-q' | |
# Render images using sphere raytracer | |
t@@ -7502,11 +7504,13 @@ def render(binary, method='pres', max_val=1e3, lower_c… | |
' --render ' + binary, shell=True) | |
# Convert images to compressed format | |
+ if verbose: | |
+ print('converting to ' + graphics_format) | |
convert(graphics_format) | |
def video(project, out_folder='./', video_format='mp4', | |
graphics_folder='../img_out/', graphics_format='png', fps=25, | |
- qscale=1, bitrate=1800, verbose=False): | |
+ qscale=1, bitrate=1800, verbose=True): | |
''' | |
Uses ffmpeg to combine images to animation. All images should be | |
rendered beforehand using :func:`render()`. | |
t@@ -7532,17 +7536,18 @@ def video(project, out_folder='./', video_format='mp4', | |
''' | |
# Possible loglevels: | |
# quiet, panic, fatal, error, warning, info, verbose, debug | |
- loglevel='info' # verbose=True | |
- if verbose == False: | |
+ loglevel = 'info' | |
+ if not verbose: | |
loglevel='error' | |
- subprocess.call(\ | |
- 'ffmpeg -qscale {0} -r {1} -b {2} -y '.format(\ | |
- qscale, fps, bitrate) \ | |
- + '-loglevel ' + loglevel + ' ' \ | |
- + '-i ' + graphics_folder + project + '.output%05d.' \ | |
- + graphics_format + ' ' \ | |
- + out_folder + '/' + project + '.' + video_format, shell=True) | |
+ outfile = out_folder + '/' + project + '.' + video_format | |
+ subprocess.call('ffmpeg -loglevel ' + loglevel + ' ' | |
+ + '-i ' + graphics_folder + project + '.output%05d.' | |
+ + graphics_format | |
+ + ' -qscale {} -r {} -b {} -y '.format(qscale, fps, bitrate) | |
+ + outfile, shell=True) | |
+ if verbose: | |
+ print('saved to ' + outfile) | |
def thinsectionVideo(project, out_folder="./", video_format="mp4", fps=25, | |
qscale=1, bitrate=1800, verbose=False): | |
t@@ -7581,12 +7586,11 @@ def thinsectionVideo(project, out_folder="./", video_f… | |
# Combine images to animation | |
# Possible loglevels: | |
# quiet, panic, fatal, error, warning, info, verbose, debug | |
- loglevel="info" # verbose=True | |
- if verbose == False: | |
+ loglevel = "info" | |
+ if not verbose: | |
loglevel="error" | |
- subprocess.call(\ | |
- "ffmpeg -qscale {0} -r {1} -b {2} -y ".format(\ | |
+ subprocess.call("ffmpeg -qscale {0} -r {1} -b {2} -y ".format(\ | |
qscale, fps, bitrate) \ | |
+ "-loglevel " + loglevel + " " \ | |
+ "-i ../img_out/" + project + ".output%05d-ts-x1x3.png " \ |