如何使用 FFmpeg 循环播放视频 – 分步教程

FFmpeg 是迄今为止视频和音频处理领域最重要的视频、图像和音频处理和操作工具。这款功能强大的开源软件套件可以完成媒体行业所需的基本任务,无论多么复杂或简单。其中一项任务就是循环播放视频,这是一项看似简单却又必要的操作,在各种情况下都能派上用场。

从创建重复的 GIF 到为网站制作扩展的视频背景,或为视频压缩或流媒体设置测试向量,了解如何循环播放视频在当今的数字环境中至关重要。

本教程将逐步向你展示如何使用 FFmpeg 循环播放视频!

如何使用 FFmpeg 循环播放视频 - 分步教程

安装 FFmpeg

在深入研究从视频创建 GIF 之前,必须在系统上安装 FFmpeg。以下是在不同操作系统上安装 FFmpeg 的分步指南:

  • Windows:从官方网站下载最新版本的 FFmpeg 或使用 Chocolatey 或 Scoop 等包管理器。或者,按照文章 在 Windows 上安装和使用 FFmpeg 6.0 教程 进行操作。
  • macOS:通过 Homebrew 或 MacPorts 包管理器安装 FFmpeg。
  • Linux:使用发行版的包管理器安装 FFmpeg 或 从源代码编译它。

安装 FFmpeg 后,通过打开命令提示符或终端并键入ffmpeg -version以确保显示正确的版本来验证其安装。

使用 FFmpeg 的命令行循环视频

使用 FFmpeg 循环播放视频非常简单,下面是命令行:

ffmpeg -stream_loop <loop_count> -i input.mp4 -c copy output.mp4

这是参数的解释:

  • -stream_loop:此选项指定要循环输入视频的次数。要无限循环视频,请用作-1循环计数。如果您想要将视频循环特定次数(例如,三遍),请使用3
  • <loop_count>:将其替换为您想要循环播放视频的次数。如果您想无限循环播放视频,请使用-1
  • -i input.mp4:这是输入文件路径。替换input.mp4为您要循环的视频文件的路径。
  • -c copy:此选项启用流复制模式,这意味着 FFmpeg 在循环期间不会重新编码视频。它只是按原样复制视频和音频流,确保不损失质量。
  • output.mp4:这是输出文件路径。替换output.mp4为循环视频文件所需的名称和格式。

如何使用这个?

如果想循环播放一次,请将-stream_loop参数设置为1。或者,如果您想循环播放五次,请将-stream_loop参数设置为5。

如果你设置-stream_loop-1,那么它将无限循环!请小心,因为它会迅速变成一个巨大的文件并填满存储磁盘!

FFmpeg 循环播放视频例子

为了测试使用 FFmpeg 循环播放视频的命令行,我有一个时长 23.42 秒的视频文件。可以使用 ffprobe 找出答案,如下所示。如果您想了解有关 ffprobe 的更多信息,请查看我们对 ffprobe 的深入研究,了解它可以分析什么。

(base) krishna@Krishnas-MacBook-Pro ffmpeg % ffprobe input.mp4 -hide_banner
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2023-04-11T04:56:51.000000Z
  Duration: 00:00:23.42, start: 0.000000, bitrate: 1459 kb/s
  Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, mono, fltp, 126 kb/s (default)
    Metadata:
      creation_time   : 2023-04-11T04:56:51.000000Z
      handler_name    : AAC audio
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, 1331 kb/s, 25 fps, 25 tbr, 30k tbn (default)
    Metadata:
      creation_time   : 2023-04-11T04:56:51.000000Z
      handler_name    : H.264/AVC video
      vendor_id       : [0][0][0][0]
      encoder         : AVC Coding

现在,我将循环两次,这样创建的文件长度将是原来的三倍。以下是我的命令行:

ffmpeg -stream_loop 2 -i input.mp4 -c copy outputlooped.mp4   

现在,让我们再次使用 ffprobe 来检查输出视频的大小:

(base) krishna@Krishnas-MacBook-Pro ffmpeg % ffprobe outputlooped.mp4 -hide_banner                                 
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'outputlooped.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.3.100
  Duration: 00:01:10.22, start: 0.000000, bitrate: 1462 kb/s
  Stream #0:0[0x1](und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(progressive), 1280x720, 1331 kb/s, 25 fps, 25 tbr, 30k tbn (default)
    Metadata:
      handler_name    : H.264/AVC video
      vendor_id       : [0][0][0][0]
      encoder         : AVC Coding
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz, mono, fltp, 126 kb/s (default)
    Metadata:
      handler_name    : AAC audio
      vendor_id       : [0][0][0][0]

ffprobe 显示输出视频的长度为 1:10:22 分钟,相当于 3 x 23.42 秒。成功!我们测试并使用 FFmpeg 创建了一个视频循环。

常见的 FFmpeg 循环问题

我在循环视频时遇到了一些问题。以下是我的尝试和错误中的一些预防措施。

保持视频质量

循环播放视频不应导致质量下降。不过,如果你发现循环播放后视频质量下降,请确保在命令中使用 -c copy 选项。这样可以保持输出视频的编解码器不变,从而保持视频质量。

正在创建无限循环

如果输出视频未在您指定的持续时间或次数内循环,请仔细检查您的循环参数。确保您正确使用-stream_loop选项。

音频同步

在循环播放视频时,音频有时会不同步。如果出现这种情况,您可能需要将音频流和视频流分开,分别循环播放,然后再合并。我再重复一遍,在循环播放视频时,请始终使用 -c copy选项,以保持原始视频质量。更改视频编解码器可能会导致质量下降。

本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/30111.html

(1)

相关推荐

发表回复

登录后才能评论