c#winform+ffmpeg视频一键自动化剪辑批量生成视频软件(二)视频字幕字体设置
字幕字体模版设置
字幕字体设置完成以后,左侧边会自动加载设置好的字体的一个预览情况
下面就是预览字幕字体在视频里的一个具体的情况
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 来进行视频字幕字体的生成。
程序有源码,还有哪些需要补充和了解的都可以在评论区告诉我。