如何用FFmpeg在视频中添加文本?

沐浴在蓝色冷光中的精致音频编辑工作室
使用 Ffmpeg 掌握将文字融入视频项目的艺术

Transkriptor 2023-04-03

什么是FFmpeg?

FFmpeg 是一个免费项目,它提供了一个处理音频、视频和图像等数据的程序集合。 它是一种工具,可用于转换、记录、流媒体和播放文件。

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

FFmpeg在媒体行业被广泛使用,在大多数操作系统上都可以使用,包括Windows、macOS、Linux和Unix。

如何使用FFmpeg?

下面是一些如何使用FFmpeg的常见例子:

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

代码: ffmpeg -i input_video .mp4 output_video.avi

该命令将把 input_video.mp4 转换成 output_video.avi 。 FFmpeg会自动为输出格式选择合适的编解码器。

  1. 调整一个视频的大小:

代码: ffmpeg -i input_video .mp4 -vf scale=640:480 output_video .mp4

该命令将调整 input_video.mp4 ,分辨率为640×480像素,并将结果保存到 output_video.mp4

  1. 从视频中提取音频:

代码: ffmpeg -i input_video .mp4 -vn output_audio .mp3

这条命令将从 input_video.mp4 中提取音轨,并保存到 output_audio.mp3

  1. 串联两个视频:

代码: ffmpeg -i input_video1 .mp4 -i input_video2 .mp4 -filter_complex concat output_video .mp4

该命令将连接 input_video1.mp4 input_video2.mp4 ,并将结果保存到 output_video.mp4

  1. 在视频中添加水印:

代码: ffmpeg -i input_video .mp4 -i watermark.png -filter_complex “overlay=10:10” output_video .mp4

这条命令将把 watermark.png ,以10像素的偏移量添加到 input_video.mp4 的左上角,并将结果保存到 output_video.mp4

这些只是用FFmpeg做的几个例子。 也可以在Android上使用FFmpeg。 欲了解更多信息,请咨询在线教程、视频流,或人工智能聊天机器人,如ChatGPT。

ffmpeg标志

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

  1. 修剪一个视频:

代码: ffmpeg -i input_video .mp4 -ss 00:00:05 -t 00:00:10 -c copy output_video .mp4

这条命令将修剪 input_video.mp4 ,从5秒开始,10秒后结束,并将结果保存到 output_video.mp4

  1. 在我的视频上添加一个图像或视频覆盖物:

代码: ffmpeg -i input_video .mp4 -i overlay_image.png -filter_complex “overlay=10:10” output_video .mp4

这条命令将把 overlay_image.png 文件作为叠加到 input_video.mp4 的坐标(10, 10)上,并将结果保存到 output_video.mp4

  1. 改变视频分辨率:

代码:ffmpeg -i input_video .mp4 -vf scale=1280:720 -c:a copy output_video .mp4

该命令将把 input_video.mp4 的分辨率改为1280×720像素,并将结果保存到 output_video.mp4

  • 为drawtext添加 textfile reload 选项:

代码: ffmpeg -i input.mp4 -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.mp4

如何用FFmpeg在视频中添加文本?

要用FFmpeg在视频中添加文本,请使用 drawtext 过滤器。 drawtext 过滤器允许你指定文本的字体、大小、颜色和位置,以及其他参数。

下面是一个基本命令,使用 drawtext 过滤器在视频中添加文本:

代码: ffmpeg -i input_video .mp4 -vf “drawtext=text=’Hello World’:fontfile=/path/to/font.ttf:fontsize=50:fontcolor=white:x=100:y=100” -codec:a copy output_video .mp4

在这个命令中:

  • -i input_video.mp4 指定输入的视频文件。
  • -vf "drawtext=..." 指定要应用的视频过滤器,在这种情况下是 drawtext 过滤器。
  • 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 选项用于指定一个字体文件的路径,该文件将用于渲染视频或图像中的文本。

当你在FFmpeg中使用 drawtext 过滤器来为视频添加文本时,指定 fontfile 选项来选择一个特定的字体来用于文本。

如何在FFmpeg命令中包含字体而不使用Fontfile选项?

为了在FFMPEG命令中使用一种字体而不指定fontfile选项,请使用系统安装的字体。

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

代码: ffmpeg -i input_video .mp4 -vf “drawtext=text=’Hello World’:fontcolor=white:x=100:y=100:font=Arial” -codec:a copy output_video .mp4

什么是GitHub?

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

如何用FFmpeg添加 “StackOverflow “文本?

代码:ffmpeg -i input_video .mp4 -vf “drawtext=text=’StackOverflow’:fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=100:y=100” -codec:a copy output_video .mp4

下面是这个命令中各种选项的作用:

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

如何使用FFmpeg的Drawtext过滤器来显示时间码或时间戳?

代码: ffmpeg -i input_video .mp4 -filter_complex “drawtext=fontfile=/path/to/font.ttf:text=’%{pts/:hms}’:fontsize=24:fontcolor=white:x=10:y=10” -codec:a copy output_video .mp4

下面是这个命令中各种选项的作用:

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

分享帖子

语音转文本

img

Transkriptor

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