视频拆分为图片、图片合并为视频(带声音)
一、应用场景
github上很多AI项目,都只提供对图片的处理,比如图片清晰度提升、图片动漫化等,但是如果要对一个视频进行处理应该怎么办呢?我的想法是将视频拆分为图片,然后将所有处理后的图片合并为视频,就相当于变相的对视频进行处理了
二、方法步骤
0、下载ffmpeg,下载的版本为win64-gpl 并将其添加到环境变量:https://github.com/BtbN/FFmpeg-Builds/releases/tag/latest
分割视频为图片
-
1、将视频分割成图片,2.mp4就是原视频,/frame%08d.png 表示分割后的图片的命名方式
-
ffmpeg -i .\input\2.mp4 -qscale:v 1 -qmin 1 -qmax 1 -vsync 0 ./output//frame%08d.png
-
-
2、获取原视频的帧速率(一秒多少帧),方便后续合成,执行以下命令:
-
易错点:在cmd的输出窗口里,多少fps就是帧速率
-
ffmpeg -i 原视频
-
合并图片为视频
-
将图片合成视频,并且将原视频的声音也添加上去,注意,下面的2个 -r 30 指代的就是上一步获取的帧速率,需要根据实际替换
-
ffmpeg -r 30 -i output/frame%08d.png -i input/2.mp4 -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r 30 -pix_fmt yuv420p output_w_audio.mp4 #30代表帧速率,要和上一步获取的值保持一致,-i后面接的的图片目录, -i onepiece_demo.mp4 -map 0:v:0 -map 1:a:0 -c:a copy 表示复制原视频的音频,-c:v libx264 -r 30 -pix_fmt yuv420p output_w_audio.mp4 表示将处理后的视频输出为output_w_audio.mp4
-