diff --git a/Dockerfile b/Dockerfile index ef72df0f..45ecc1f7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,37 +1,24 @@ FROM ubuntu:18.04 ENV DEBIAN_FRONTEND noninteractive - RUN apt-get update -qqy RUN apt-get install -qqy --no-install-recommends apt-utils - WORKDIR /root -RUN apt-get install -qqy build-essential libsqlite3-dev sqlite3 bzip2 \ - libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev \ - libgdbm-compat-dev liblzma-dev libreadline-dev \ - libncursesw5-dev libffi-dev uuid-dev -RUN apt-get install -qqy wget +RUN apt-get install --no-install-recommends -qqy build-essential libsqlite3-dev sqlite3 bzip2 \ +libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev \ +libgdbm-compat-dev liblzma-dev libreadline-dev \ +libncursesw5-dev libffi-dev uuid-dev wget ffmpeg apt-transport-https texlive-latex-base \ +texlive-full texlive-fonts-extra sox git libcairo2-dev libjpeg-dev libgif-dev && rm -rf /var/lib/apt/lists/* RUN wget -q https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz RUN tar -xf Python-3.7.0.tgz WORKDIR Python-3.7.0 RUN ./configure > /dev/null && make -s && make -s install RUN python3 -m pip install --upgrade pip -RUN apt-get install -qqy libcairo2-dev libjpeg-dev libgif-dev COPY requirements.txt requirements.txt RUN python3 -m pip install -r requirements.txt RUN rm requirements.txt WORKDIR /root RUN rm -rf Python-3.7.0* - -RUN apt-get install -qqy ffmpeg - ENV TZ=America/Los_Angeles RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone -RUN apt-get install -qqy apt-transport-https -RUN apt-get install -qqy texlive-latex-base -RUN apt-get install -qqy texlive-full -RUN apt-get install -qqy texlive-fonts-extra -RUN apt-get install -qqy sox -RUN apt-get install -qqy git - ENV DEBIAN_FRONTEND teletype ENTRYPOINT ["/bin/bash"] diff --git a/manimlib/scene/scene.py b/manimlib/scene/scene.py index 24166418..abd5baa7 100644 --- a/manimlib/scene/scene.py +++ b/manimlib/scene/scene.py @@ -780,6 +780,9 @@ class Scene(Container): ) with open(file_list, 'w') as fp: for pf_path in partial_movie_files: + if os.name == 'nt': + pf_path = pf_path.replace('\\', '/') + fp.write("file {}\n".format(pf_path)) movie_file_path = self.get_movie_file_path() @@ -795,8 +798,13 @@ class Scene(Container): ] if not self.includes_sound: commands.insert(-1, '-an') - subprocess.call(commands) + + combine_process = subprocess.Popen(commands) + combine_process.wait() + for pf_path in partial_movie_files: + os.remove(pf_path) os.remove(file_list) + print("File ready at {}".format(movie_file_path)) if self.includes_sound: sound_file_path = movie_file_path.replace( diff --git a/manimlib/utils/output_directory_getters.py b/manimlib/utils/output_directory_getters.py index 3e364271..a3695249 100644 --- a/manimlib/utils/output_directory_getters.py +++ b/manimlib/utils/output_directory_getters.py @@ -15,7 +15,7 @@ def add_extension_if_not_present(file_name, extension): def guarantee_existance(path): if not os.path.exists(path): os.makedirs(path) - return path + return os.path.abspath(path) def get_scene_output_directory(scene_class): @@ -78,4 +78,4 @@ def get_sorted_integer_files(directory, elif remove_non_integer_files: os.remove(full_path) indexed_files.sort(key=lambda p: p[0]) - return list(map(lambda p: p[1], indexed_files)) + return list(map(lambda p: os.path.join(directory, p[1]), indexed_files))