从ASS字幕生成Rythmo乐队
ass2rythmo的Python项目详细描述
ass2rythmo是一个转换器,它在ass(Advanced SubStation)格式的字幕外生成rythmo带。
Rythmo乐队用于为配音视频时的语音演员提供同步脚本。
文本以恒定速度滚动,但宽度可变,以适应需要录制的语音流,以便与屏幕上的嘴唇同步。
安装
ass2rythmo可以从pip安装:
pip install ass2rythmo
或者,在git拉取之后,ass2rythmo可以直接从源代码运行:
git clone https://gitlab.com/zeograd/ass2rythmo.git cd ass2rythmo && python setup.py install
用法
首先,生成一个定时ASS字幕文件,其中只包括演员必须说的部分。
然后,生成Rythmo波段作为透明PNG文件的集合:
ass2rythmo my_video_script.ass -R 30
如果有ffmpeg可用,也可以作为透明电影:
ass2rythmo my_video_script.ass -R 30 -r rythmo_band.mov
别忘了指定视频的帧速率,png将被叠加在视频上,以确保正确的同步。
默认情况下,这将在当前目录00000.png、00001.png等中生成PNG文件… 您可以通过向-r参数(包括百分号)提供模式来更改生成png文件的目录 (/tmp/%05d.png例如,用于在/tmp目录中生成png并将帧号填充到5位。)
如果指定的模式没有任何百分号,则它将被视为单个电影文件输出文件名。结果将使用ffv1编解码器进行编码,建议使用mov容器,但安装的ffmpeg可能会接受其他扩展。
然后你可以用你最喜欢的视频编辑器在你的电影上烧录PNG序列。您还可以使用ffmpeg执行快速覆盖,命令类似于:
ffmpeg -i input.mp4 -framerate 30 -i %05d.png -filter_complex "overlay=:main_h-overlay_h" output.mp4
要对透明的移动节奏带执行相同的操作,请使用类似于:
ffmpeg -i input.mp4 -i rythmo_band.mov -filter_complex "overlay=:main_h-overlay_h" output.mp4
脚本创建
使用任何ASS兼容的工具,比如Aegisub。
您可以使用常规的{}来包含注释,或者使用[]来包含不会出现在Rythmo波段中的内容(但如果您将ASS文件刻录到视频上(如用于演员方向提示),则仍然存在)。
选择了捆绑字体,以便您可以包含Unicode字符,以显示您想要的语调变化类型(使用Unicode箭头)。
您可以使用卡拉OK标签微调一个句子的计时。你不必为了引入停顿或改变句子两部分之间的节奏而拆分脚本。 在这种情况下,您可以预览使用/kf而不是默认的/k标记呈现句子每个部分的速度(这两个标记都将被ass2rythmo,/ko接受)
显然,要小心地将你的字幕与屏幕上的嘴唇同步,以确保根据节奏带录制的视频与图像同步。
cli
cliass2rythmo包含合理的默认值。 使用-r选项设置正确的帧速率时应小心。
您可能需要更改生成的宽度,以便在-w中完全使用可用的房间,并在-d中更改滚动速度。
其他的选择很少有用,并记录在下面。
- usage: ass2rythmo [-h] [-d] [-v] [-W TARGET_WIDTH] [-H TARGET_HEIGHT]
- [-R TARGET_FPS] [-F FONT_FILENAME] [-D SCROLL_DURATION] [-r RESULT_FILENAME_FORMAT] [-s SYNC_POINT_RATIO] ass_filename
GPL v3+ 2018 Olivier Jolly
- positional arguments:
- ass_filename input file as Ass format
- optional arguments:
-h, --help show this help message and exit -d, --debug print debugging info [default: False] -v, --version show program’s version number and exit -W TARGET_WIDTH, --target_width TARGET_WIDTH Width of the generated png files [default: 1920] -H TARGET_HEIGHT, --target_height TARGET_HEIGHT Height of the generated png files. Note that it’s not meant to support low heights at this time [default: 380] -R TARGET_FPS, --target_fps TARGET_FPS Frame per second to generate. Make sure it matches your subbed video ! [default: 30] -F FONT_FILENAME, --font_face FONT_FILENAME Filename of the font used to generate text [default: [install path]/DejaVuSans.ttf] -D SCROLL_DURATION, --scroll_duration SCROLL_DURATION Duration of width traversal in ms [default: 4000] -r RESULT_FILENAME_FORMAT, --result_filename_format RESULT_FILENAME_FORMAT Filename template for generated files. May include directory part but won’t create any. Including % in the format will generate a list of png files else will generate a transparent movie with the help of ffmpeg [default: %05d.png] -s SYNC_POINT_RATIO, --sync_point_ratio SYNC_POINT_RATIO Position of the sync point on screen, 0 is leftmost, 1 is rightmost [default: 0.15] Convert ASS subtitles to rythmo band as list of transparent png or single transparent movie
限制
这个项目很年轻,没有经过广泛的测试。值得注意的是,到目前为止,它只在linux下运行,但没有使用操作系统专用性。
最大值为2行。因此,有3个演员同时发言,将有一些重叠的文字在对方之上。
某些人工制品可能出现在某些字符的短文本块的最左边(例如一个“i”在一个文本块的开头发音很快。
许可证
ass2rythmo代码本身是在gpl v3+下授权的,捆绑的dejavu字体是在它自己的免费许可下授权的(cf license dejavu.txt)。