📅  最后修改于: 2023-12-03 15:39:13.148000             🧑  作者: Mango
在图像处理和视频编辑任务中,经常需要将一系列的 PNG 图像序列转换为 MP4 视频。Shell/Bash 环境下有许多可用的工具和脚本可以帮助我们完成这一任务,本文将介绍其中两种方法。
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
:设置视频像素格式为 yuv420pexample.mp4
:设置输出文件名如果想要将该转换任务全部自动化,则可以考虑编写一个 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 视频的方法介绍。在实际应用场景中,选择使用哪种方法应根据实际情况而定。