tFix video functionality - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit c57e00820eb2d87c653321649e2b09de8ca969be
(DIR) parent 346ae8299917811199c587382cb5c683d2b37995
(HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
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(-)
---
(DIR) 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_cutoff=0.0,
: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_cutoff=0.0,
' --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_format="mp4", fps=25,
# 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 " \