首先是系統的環境問題。
linux 安裝 moviepy需要很多依賴,安裝起來費神費力。配置起來也非常麻煩,最簡單的辦法是直接使用他人構建好的鏡像文件。
再就是字體顯示問題。
鏡像中的imagmagick不支持中文的字體。生成的視頻中文亂碼,搜索了好!
長時間,決定自己手動構建一個鏡像。參考的文章鏈接:
linux追加中文字庫,解決imagemagick 中文亂碼的問題
Linux(Ubuntu,Cent OS)環境安裝mkfontscale mkfontdir命令以及中文字庫
步驟簡單分為幾步:
- 拷貝本地Windows下的font(選擇你想要的)到鏡像中。
- 鏡像安裝構建字體的依賴
- 構建字體文件夾
- build 鏡像
放一下Dockerfile
FROM dkarchmervue/moviepy:latest
# 我在同級目錄下創建了一個windows_fonts文件夾,里面放着從window下拷貝過來的文件。考本到鏡像的字體文件夾下。
COPY ./wondow_fonts/ /usr/share/fonts/windows/
# 更改ubuntu鏡像源,dkarchmervue/moviepy是基於ubuntu14.04,找一個鏡像源,在本地創建一個sources.list的文件,拷貝到鏡像中就可以。
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak
COPY sources.list /etc/apt/sources.list
RUN apt-get update
# 安裝添加字體的依賴
RUN apt-get install ttf-mscorefonts-installer -y && apt-get install fontconfig -y\
&& apt-get install fontconfig \
&& cd /usr/share/fonts/windows/ && chmod 777 * && mkfontscale && mkfontdir && fc-cache
WORKDIR /work/
這樣就制作了一個基於dkarchmervue/moviepy
的帶中文字體的鏡像。
然后直接運行 docker build -t moviepy_cnfonts .
即可創建一個名為 moviepy_cnfonts的鏡像。可以把這個鏡像替代dkarchmervue/moviepy:latest
這個鏡像作為運行 python文件的基礎鏡像。
運行moviepy官方的結尾特效 end_effect