Add automatic positioning for live streams

This commit is contained in:
Mehmet Mert Yıldıran 2018-11-02 20:48:38 +03:00
parent 815b3103c4
commit 846a824947
3 changed files with 27 additions and 1 deletions

View file

@ -15,6 +15,8 @@ from utils.paths import counterclockwise_path
from utils.rate_functions import double_smooth from utils.rate_functions import double_smooth
from utils.rate_functions import smooth from utils.rate_functions import smooth
import position
# Drawing # Drawing
@ -98,6 +100,15 @@ class Write(DrawBorderThenFill):
mobject = TextMobject(mob_or_text) mobject = TextMobject(mob_or_text)
else: else:
mobject = mob_or_text mobject = mob_or_text
if IS_LIVE_STREAMING:
print(position.current)
mobject.shift(position.current)
position.current = position.current + 2 * DOWN
if position.current[1] < -3:
position.current[1] = 3
position.current = position.current + 3 * RIGHT
if "run_time" not in kwargs: if "run_time" not in kwargs:
self.establish_run_time(mobject) self.establish_run_time(mobject)
if "lag_factor" not in kwargs: if "lag_factor" not in kwargs:

3
position.py Normal file
View file

@ -0,0 +1,3 @@
from constants import *
current = 5 * LEFT + 3 * UP

View file

@ -29,6 +29,9 @@ from utils.output_directory_getters import get_image_output_directory
from container.container import Container from container.container import Container
import position
from mobject.svg.tex_mobject import TextMobject
from animation.creation import Write
class Scene(Container): class Scene(Container):
CONFIG = { CONFIG = {
@ -343,6 +346,10 @@ class Scene(Container):
self.mobjects = [] self.mobjects = []
self.foreground_mobjects = [] self.foreground_mobjects = []
self.continual_animation = [] self.continual_animation = []
if IS_LIVE_STREAMING:
position.current = 5 * LEFT + 3 * UP
print(position.current)
return self return self
def get_mobjects(self): def get_mobjects(self):
@ -512,7 +519,7 @@ class Scene(Container):
n_frames = 1 n_frames = 1
frame = self.get_frame() frame = self.get_frame()
self.add_frames(*[frame] * n_frames) self.add_frames(*[frame] * n_frames)
sleep(self.frame_duration * 999/1000) sleep(self.frame_duration * 99/100)
def clean_up_animations(self, *animations): def clean_up_animations(self, *animations):
for animation in animations: for animation in animations:
@ -631,6 +638,7 @@ class Scene(Container):
'-pix_fmt', 'rgba', '-pix_fmt', 'rgba',
'-r', str(fps), # frames per second '-r', str(fps), # frames per second
'-i', '-', # The imput comes from a pipe '-i', '-', # The imput comes from a pipe
'-c:v', 'h264_nvenc',
'-an', # Tells FFMPEG not to expect any audio '-an', # Tells FFMPEG not to expect any audio
'-loglevel', 'error', '-loglevel', 'error',
] ]
@ -667,6 +675,10 @@ class Scene(Container):
else: else:
os.rename(*self.args_to_rename_file) os.rename(*self.args_to_rename_file)
def tex(self, latex):
eq = TextMobject(latex)
self.play(Write(eq))
class EndSceneEarlyException(Exception): class EndSceneEarlyException(Exception):
pass pass