📜  将 png 图像序列转换为 mp4 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:39:13.148000             🧑  作者: Mango

将 png 图像序列转换为 mp4 - Shell/Bash

在图像处理和视频编辑任务中,经常需要将一系列的 PNG 图像序列转换为 MP4 视频。Shell/Bash 环境下有许多可用的工具和脚本可以帮助我们完成这一任务,本文将介绍其中两种方法。

方法一:使用 FFmpeg

FFmpeg 是一个开源的跨平台音视频处理工具,其功能强大,常被用来进行音视频转码、剪辑、裁剪、滤镜处理等操作。它也是将 PNG 图像序列转换为 MP4 视频的常用工具之一。

以下是将名为 example%03d.png 的 PNG 图像序列转换为输出文件 example.mp4 的命令行示例:

ffmpeg -r 25 -f image2 -s 1920x1080 -i example%03d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p example.mp4

该命令行中各参数的含义如下:

  • -r 25:设置输出视频的帧率为 25 帧每秒
  • -f image2:设置输入文件格式为 image2
  • -s 1920x1080:设置输出视频的分辨率为 1920x1080
  • -i example%03d.png:设置输入文件名格式,其中 %03d 表示文件名中的序列号占三位数,例如 example001.png、example002.png、example003.png 等
  • -vcodec libx264:设置视频编码器为 libx264
  • -crf 25:设置视频输出质量,数值越小输出的视频质量越高,但文件大小也越大
  • -pix_fmt yuv420p:设置视频像素格式为 yuv420p
  • example.mp4:设置输出文件名
方法二:使用 Bash 脚本

如果想要将该转换任务全部自动化,则可以考虑编写一个 Bash 脚本。以下是一个示例脚本:

#!/bin/bash
framerate=25
resolution="1920x1080"
inputformat="png"
outputformat="mp4"
inputpattern="example%03d.png"
outputfilename="example.mp4"
codec="libx264"
crf=25
pixfmt="yuv420p"

ffmpeg -r $framerate -f image2 -s $resolution -i $inputpattern -vcodec $codec -crf $crf -pix_fmt $pixfmt $outputfilename

在该脚本中,我们使用了和方法一中相同的 FFmpeg 命令,但是将需要输入的参数作为变量传入了脚本中。这样,就可以更方便地修改脚本中的参数,以适应不同的场景需求。

以上就是将 PNG 图像序列转换为 MP4 视频的方法介绍。在实际应用场景中,选择使用哪种方法应根据实际情况而定。