如何使用 FFmpeg 向视频添加文本?

一个精致的音频编辑工作室,沐浴在凉爽的蓝色灯光下
掌握使用 Ffmpeg 将文本集成到您的视频项目中的艺术

Transkriptor 2023-04-03

什么是 FFmpeg?

FFmpeg 是一个免费项目,它提供了一组用于处理音频、视频和图像等数据的程序。 它是一种用于转换、录制、流式传输和播放文件的工具。

FFmpeg 支持多种格式和编解码器,用于转码、调整滤镜大小、添加水印或使用 AI 字幕生成器 生成字幕、从视频中获取音频以及合并多个视频或音频文件等任务。 也可以使用 FFmpeg 创建GIF并使用 FFmpeg on Windows 合并MP4文件。

FFmpeg 在媒体行业中被广泛使用,在大多数操作系统上都可以使用,包括 Windows、 macOS、 Linux和 Unix,它还可以用于 为 Twitter 视频添加字幕 等任务。

如何使用 FFmpeg?

以下是如何使用 FFmpeg的一些常见示例:

  1. 将视频文件从一种格式转换为另一种格式:

代码: FFmpeg -i input_ video.mp 4 output_video。AVI

此命令将convertinput_video.mp4tooutput_video。AVI. FFmpeg 会自动为输出格式选择适当的编解码器,就像您在 QuickTime 中向视频添加文本 一样。

  1. 调整视频大小时:

代码: FFmpeg -i input_ video.mp 4 -vf scale=640:480 output_ video.mp 4

此命令将 resizeinput_video.mp4 转换为 640×480 像素的分辨率,并将结果保存为 tooutput_video。MP4.

  1. 从视频中提取音频:

代码: FFmpeg -i input_ video.mp 4 -vn output_ audio.mp 3

此命令将提取音轨 frominput_video.mp4 并将其保存tooutput_audio。MP3.

  1. 连接两个视频:

型号: FFmpeg -i input_ video1.mp 4 -i input_ video2.mp 4 -filter_complex concat output_ video.mp 4

此命令将concatenateinput_video1.mp4andinput_video2.mp4并将结果保存tooutput_video。MP4,就像在 三星中向视频添加文本 一样。

  1. 为视频添加水印:

代码: FFmpeg -i input_ video.mp 4 -i 水印。PNG -filter_complex “overlay=10:10” output_ video.mp 4

此命令会将 thewatermark.pngimage 添加到左上角 ofinput_video.mp4,偏移量为 10Pixel ,并将结果保存tooutput_video。MP4.

这些只是如何处理 FFmpeg的几个例子,类似于在 Vegas Pro上向视频添加文本 时。 也可以在 Android上使用 FFmpeg。 有关更多信息,请查阅在线教程、视频流或 AI 聊天机器人(如 ChatGPT),或探索如何在 shotcut 中向视频添加文本

FFMPEG 标志

什么是 FFmpeg 有用的视频编辑命令?

  1. 修剪视频:

代码: FFmpeg -i input_ video.mp 4 -ss 00:00:05 -t 00:00:10 -c 复制output_ video.mp 4

此命令将 triminput_video.mp4 从 5 秒标记开始,到 10 秒后结束,并将结果保存tooutput_video。MP4.

  1. 在我的视频上添加图片或视频叠加层:

代码: FFmpeg -i input_ video.mp 4 -i overlay_image。PNG -filter_complex “overlay=10:10” output_ video.mp 4

此命令将在坐标 (10, 10) 处添加 theoverlay_image.png 文件作为叠加 toinput_video.mp4,并将结果保存tooutput_video。MP4.

  1. 更改视频分辨率:

代码: FFmpeg -i input_ video.mp 4 -vf scale=1280:720 -c: video.mp 4 output_副本

此命令会将分辨率 ofinput_video.mp4 更改为 1280×720 像素,并将结果保存为 tooutput_video。MP4.

  • 为 drawtext 添加 textfileandreloadoptions:

代码: FFmpeg -i input.mp 4 -vf “drawtext=fontfile=/path/to/font.ttf:textfile=text。TXT:reload=1:fontcolor=white:fontsize=24:box=1:boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:y=(h-text_h)/2“ -codec:a copy output.mp 4

要向带有 FFmpeg的视频添加文本,请使用 drawtextfilter。 drawtextfilter 允许您指定文本的字体、大小、颜色和位置以及其他参数。

以下是使用 drawtextfilter 向视频添加文本的基本命令:

代码: FFmpeg -i input_ video.mp 4 -vf “drawtext=text='Hello World':fontfile=/path/to/font.ttf:fontsize=50:fontcolor=white:x=100:y=100” -codec: video.mp 4 output_副本

在此命令中:

  • -i input_video.mp4指定输入视频文件。
  • -vf “drawtext=...”指定要应用的视频过滤器,在本例中为 DrawTextFilter。
  • text='Hello World'指定要添加到视频中的文本。
  • fontfile=/path/to/font.ttf指定要使用的字体文件。
  • fontsize=50指定字体大小(以磅为单位)。
  • fontcolor=white指定字体颜色。
  • x=100:y=100指定文本在视频中的位置,左上角位于(100,100)像素处。
  • -codec:a copy指定将输入视频中的音频流复制到输出视频中,而不重新编码。
  • output_video.mp4指定输出视频文件。

什么是 Fontfile?

FFmpeg中的 fontfile选项用于指定字体文件的路径,该字体文件将用于Render视频或图像中的文本。

当您在 FFmpeg 中使用 thedrawtextfilter 向视频添加文本时,请指定 fontfileoption 以选择要用于文本的特定字体。

如何在不使用 fontfile 选项的情况下 FFmpeg 命令中包含字体?

要在 FFmpeg 命令中使用字体而不指定 fontfile 选项,请使用系统安装的字体。

下面是使用系统安装的字体的示例命令:

代码: FFmpeg -i input_ video.mp 4 -vf “drawtext=text='Hello World':fontcolor=white:x=100:y=100:font=Arial” -codec: video.mp 4 output_副本

什么是 GitHub?

GitHub 是一个基于 Web 的平台,允许开发人员托管和管理他们的软件项目、与他人协作以及跟踪和管理对其代码的更改。 它提供了用于版本控制、问题跟踪、代码审查和团队协作的工具。

如何添加 “StackOverflow” 带有 FFmpeg的文本 ?

代码: FFmpeg -i input_ video.mp 4 -vf “drawtext=text='StackOverflow':fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=100:y=100” -codec:复制output_ video.mp 4

以下是此命令中的各种选项的作用:

  • -i input_video.mp4指定输入视频文件。
  • -vf “drawtext=text='StackOverflow':fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=100:y=100”设置用于绘制文本的视频滤镜图 此命令使用位于 /path/to/font.ttf 的字体文件在坐标 (100, 100) 处绘制文本“StackOverflow”,字体大小为 30,字体颜色为白色。
  • -codec:A将输入视频的音频流复制到输出视频,而不重新编码。
  • output_video.mp4指定输出视频文件的名称。

如何使用 FFmpeg的 Drawtext 过滤器显示 TimeCodes 或 TimeStamps?

代码: FFmpeg -i input_ video.mp 4 -filter_complex “drawtext=fontfile=/path/to/font.ttf:text='%{pts/:hms}':fontsize=24:fontcolor=white:x=10:y=10” -codec:复制 output_video.mp 4

以下是此命令中的各种选项的作用:

  • -i input_video.mp4指定输入视频文件。
  • -filter_complexallows在同一命令中使用多个过滤器。
  • drawtext是过滤器的名称。
  • fontfile=/path/to/font.ttf指定我们想要使用的字体文件的路径。
  • text='%{pts/:hms}'设置要显示的文本。%{pts/:hms}是一个占位符,将以小时:分钟:秒格式替换为当前时间码。
  • fontsize=24将字体大小设置为 24。
  • fontcolor=white将字体颜色设置为白色。
  • x=10andy=10设置文本在视频上的位置。
  • -codec:A将输入视频的音频流复制到输出视频,而不重新编码。
  • output_video.mp4指定输出文件的名称。

分享帖子

语音转文本

img

Transkriptor

将音频和视频文件转换为文本