字幕字体模版设置
字幕字体设置完成以后,左侧边会自动加载设置好的字体的一个预览情况
下面就是预览字幕字体在视频里的一个具体的情况
1,支持字体的颜色修改
2,支持字幕字体的大小设置
3,支持字幕字体的位置设置
4,支持字幕字体的边框颜色设置
5,支持字幕字体的背景颜色设置
6,支持字幕字体的阴影设置
7,支持字幕字体的阴影偏移设置
具体的代码片段展示
ComboboxItem selectedItem = (ComboboxItem)cb_fontFilePath.SelectedItem;
ComboboxItem titleselectedItem = (ComboboxItem)cb_titlefontFilePath.SelectedItem;
string outputFilePath = AppDomain.CurrentDomain.BaseDirectory + "test\\test.mp4";
string fontFilePath = ConvertToNewFormat(selectedItem.ValueText);
string positionX = tb_positionX.SkinTxt.Text;
string positionY = tb_positionY.SkinTxt.Text;
string fontColor = tb_fontColor.SkinTxt.Text;
string fontSize = tb_fontSize.SkinTxt.Text;
// 边框
string borderBorderWidth = tb_borderBorderWidth.SkinTxt.Text; // 文本框边宽度
string borderBorderColor = tb_borderBorderColor.SkinTxt.Text; // 文本框边框颜色
// 背景
string box = tb_box.SkinTxt.Text;
string backgroundColor = tb_backgroundColor.SkinTxt.Text;
string backgroundOpacity = tb_backgroundOpacity.SkinTxt.Text;
string boxBorderWidth = tb_boxBorderWidth.SkinTxt.Text;
// 阴影
string shadowColor = tb_shadowColor.SkinTxt.Text; // 字幕阴影颜色
string shadowOffsetX = tb_shadowOffsetX.SkinTxt.Text; // 字幕阴影水平偏移
string shadowOffsetY = tb_shadowOffsetY.SkinTxt.Text; // 字幕阴影垂直偏移
// 设置第二个文本的参数
string titlefontFilePath = ConvertToNewFormat(titleselectedItem.ValueText);
string titlePositionX = tb_titlePositionX.SkinTxt.Text;
string titlePositionY = tb_titlePositionY.SkinTxt.Text;
string titleFontColor = tb_titleFontColor.SkinTxt.Text;
string titleFontSize = tb_titleFontSize.SkinTxt.Text;
// 边框
string titleborderBorderWidth = tb_titleborderBorderWidth.SkinTxt.Text; // 文本框边宽度
string titleborderBorderColor = tb_titleborderBorderColor.SkinTxt.Text; // 标题文本框边框颜色
// 背景
string titleBox = tb_titleBox.SkinTxt.Text;
string titleBackgroundColor = tb_titleBackgroundColor.SkinTxt.Text;
string titleBackgroundOpacity = tb_titleBackgroundOpacity.SkinTxt.Text;
string titleBoxBorderWidth = tb_titleBoxBorderWidth.SkinTxt.Text;
// 阴影
string titleShadowColor = tb_titleShadowColor.SkinTxt.Text; // 标题阴影颜色
string titleShadowOffsetX = tb_titleShadowOffsetX.SkinTxt.Text; // 标题阴影水平偏移
string titleShadowOffsetY = tb_titleShadowOffsetY.SkinTxt.Text; // 标题阴影垂直偏移
//line_spacing=20:
string addSubtitleCommand = $"-i test//video.mp4 -vf \"drawtext=text=字幕标题\n字幕标题:text_align=center:fontfile={fontFilePath}:fontsize={fontSize}:fontcolor={fontColor}:x={positionX}:y={positionY}:box={box}:boxcolor={backgroundColor}@{backgroundOpacity}:boxborderw={boxBorderWidth}:borderw={borderBorderWidth}:bordercolor={borderBorderColor}:shadowcolor={shadowColor}:shadowx={shadowOffsetX}:shadowy={shadowOffsetY},"
+ $"drawtext=text=标内容这里是我的字幕标内容\n这1里是我的字幕标内容\n这里是我的字幕标内容\n这里是我的字幕标内容:text_align=center:line_spacing=15:fontfile={titlefontFilePath}:fontsize={titleFontSize}:fontcolor={titleFontColor}:x={titlePositionX}:y={titlePositionY}:box={titleBox}:boxcolor={titleBackgroundColor}@{titleBackgroundOpacity}:boxborderw={titleBoxBorderWidth}:borderw={titleborderBorderWidth}:bordercolor={titleborderBorderColor}:shadowcolor={titleShadowColor}:shadowx={titleShadowOffsetX}:shadowy={titleShadowOffsetY}\" "
+ $"-c:a copy {outputFilePath} -y";
FFMPEGHelper.ExecuteFFmpegCommand(addSubtitleCommand);
使用ffmpeg 来进行视频字幕字体的生成。
程序有源码,还有哪些需要补充和了解的都可以在评论区告诉我。