ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

manim 移动端适配:3 步让数学动画在手机竖屏完整播放

2026/9/16 13:35:38 拓冰建站 浏览量
manim 移动端适配:3 步让数学动画在手机竖屏完整播放 manim 移动端适配:3 步让数学动画在手机竖屏完整播放【免费下载链接】manimA community-maintained Python framework for creating mathematical animations.项目地址: https://gitcode.com/GitHub_Trending/man/manim把 1920×1080 的横屏动画直接发到竖屏短视频平台,上下被裁掉一大截是常事。manim 是用 Python 写数学动画的开源框架,默认按横屏 16:9 出片。想在手机、平板上完整播放,manim 移动端适配要动的其实就三样:宽、高、帧率。 动手前的最小配置 manim.cfgmanim 启动时会读取当前目录下的manim.cfg,把移动端参数写进去,以后每条命令都不用再敲一遍。注意:命令行传的参数优先级更高,会覆盖文件里的值。[CLI] # 竖屏 9:16,手机全屏播放不裁切 pixel_width 720 pixel_height 1280 # 手机解码 60fps 吃力,30fps 肉眼几乎看不出差别 frame_rate 30 # mp4 是所有手机播放器的最大公约数 format mp4参数作用pixel_width/pixel_height输出视频的像素宽、高,竖屏填 720×1280frame_rate每秒帧数,移动端降到 30 即可format容器格式,mp4手机兼容性最好renderer渲染后端,默认cairo不用动重点说pixel_width:它只改变输出的像素数量,不改逻辑坐标系。manim 的场景永远以 8 个单位的高度为基准,宽屏还是窄屏由像素比例自动推导,所以你写场景代码时不用动任何 mobject 的位置,换个比例就能出竖屏片。frame_rate同理,它同时决定文件体积和渲染耗时,降它是性价比最高的一档。完整参数说明见 docs/source/guides/configuration.rst。 两种出片策略怎么选策略适合谁做法竖屏固定账号只发竖屏,内容统一写死在manim.cfg或场景开头,一次配置全部生效动态适配横竖屏混发、多端发布场景里按环境变量切换配置竖屏固定:配置写在construct里,代码发给别人也不会因为对方没配manim.cfg而出成横屏。from manim import * class VerticalEquation(Scene): def construct(self): # 竖屏比例直接写死,不依赖外部配置文件 config.pixel_width 720 config.pixel_height 1280 title Text(二次方程求根公式, font_size56) formula MathTex( rx \frac{-b \pm \sqrt{b^2-4ac}}{2a}, font_size48, ) # 竖屏有 8 个单位高,内容上下堆叠留足空隙 title.to_edge(UP, buff1) formula.next_to(title, DOWN, buff1) self.play(Write(title)) self.play(Write(formula)) self.wait(2)动态适配:同一份场景文件,用环境变量决定出哪一版,横屏保持默认值不动。import os from manim import * class AdaptiveScene(Scene): def construct(self): # 竖屏平台发布时:ORIENTATIONportrait manim -qm scene.py AdaptiveScene if os.environ.get(ORIENTATION) portrait: config.pixel_width 720 config.pixel_height 1280 config.frame_rate 30 # 横屏走默认 1920×108060,无需额外赋值 circle Circle(radius1.5) square Square(side_length3) # 布局基于 8 单位高的坐标系,换比例后相对位置不变 self.play(Create(circle)) self.play(Transform(circle, square)) self.wait(1)不想改manim.cfg的话,也可以纯命令行出竖屏:manim -qm -r 720,1280 scene.py VerticalEquation,-r的宽,高写法就是为非常规比例准备的。⚙️ 格式与质量档位速查-q后面的字母对应 manim 内置的五档预设:档位分辨率帧率典型用途-ql854×48015本地快速预览-qm1280×72030移动端主力档位-qh(默认)1920×108060横屏网页、B 站-qp2560×1440602K 显示器-qk3840×2160604K 母版结论:大多数手机播放的场景直接-qm再配竖屏比例即可,也就是manim -qm -r 720,1280,画质够、体积小、渲染快。只有要投大屏时才碰-qh以上。 常见坑与排错Q:换成竖屏后,内容跑出屏幕左右边缘了?竖屏场景只有约 4.5 个单位宽,横屏时代摆开的宽内容会直接出界。把横向排列的VGroup改成上下堆叠,或者整体scale()缩小,再检查to_edge的方向参数。Q:MathTex报编译错误,公式显示不全?多半是 TeX 环境缺宏包,错误信息在media/logs下的日志里,按提示装包即可;不想装 TeX 的话,普通Text加 Unicode 符号能应付简单排版。Q:文件还是很大,平台传上去加载慢?先确认frame_rate真的降到了 30——命令行-q档位会覆盖manim.cfg里的frame_rate,两边不一致时以命令行赢。再压分辨率到 720p,体积通常立刻减半。✅ 发布前检查清单在目标 App 竖屏模式完整播放过一遍,上下无裁切分辨率与平台要求一致(720×1280 或 1080×1920)帧率为 30,成片体积在平台限制内公式与中文字符渲染正常,无乱码缺块用一台低端机实测过加载和播放流畅度参数只保证渲染正确,平台前端的裁切、倍速、倍清晰度转码行为,还是得真机跑一遍才能确认。配置项与命令行参数的完整清单,可以在 docs/source/guides/configuration.rst 里逐条对照。【免费下载链接】manimA community-maintained Python framework for creating mathematical animations.项目地址: https://gitcode.com/GitHub_Trending/man/manim创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考