FFMpeg 使用自定义字体将 ass 转换为 mp4

FFMpeg 使用自定义字体将 ass 转换为 mp4

要求

我正在尝试将 ass 字幕文件添加到 mp4 视频中。我希望文本使用系统/自定义字体并具有特定位置。

我的测试

这是我的 ass 文件的一个例子:

[Script Info]
Title: Italiano
Original Script: my_it  [my_it]
Original Translation: 
Original Editing: 
Original Timing: 
Synch Point: 
Script Updated By: 
Update Details: 
ScriptType: v4.00+
Collisions: Normal
PlayResX: 640
PlayResY: 360
Timer: 0.0000
WrapStyle: 0

[V4+ Styles]
Format: Name,Fontname,Fontsize,PrimaryColour,SecondaryColour,OutlineColour,BackColour,Bold,Italic,Underline,Strikeout,ScaleX,ScaleY,Spacing,Angle,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,Encoding
Style: Dialogue,Trebuchet MS,22,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,0010,0010,0015,0

[Events]
Format: Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text
Dialogue: 0,0:00:01.98,0:00:08.48,Luoghi,,0000,0000,0000,,{\fad(500,525)\shad1\pos(315,255)}Alexandrovsk-Sakhalinsky\N(Akou)

如果在同一目录中重现视频 Clean.mp4 和字幕文件 Clean.ass,则字幕显示正确。 字幕可以 - 单独文件

相反,如果我尝试将 ass 文件添加到 mp4 容器,字幕将不再正确显示。我使用的 ffmpeg 命令是: ffmpeg.exe -i Clean.mp4 -i Clean.itIT.ass -c copy -c:s mov_text add_sub.mp4 字幕 KO - 添加流

我有具有以下设置的 ffmpeg --enable-fontconfig:。

约束

  • 无法更改视频容器,我需要 mp4 文件(没有 mkv)
  • 无法给字幕留下深刻印象(没有硬字幕)
  • 有一个包含视频、音频和字幕的单独文件。

在这些约束下是否有可能得到所要求的结果?

答案1

你可以使用这个命令:

ffmpeg.exe -i input.srt -c copy -c:s mov_text output.mkv

然后:

ffmpeg.exe -i input.mkv -c copy -map 0 -c:s mov_text output.mp4

相关内容