使用ffmpeg用图片批量合成抖音卡点短视频

技术交流

  • 使用ffmpeg用图片批量合成抖音卡点短视频
    • ffmpeg工具准备
    • 图片和音乐文件准备
    • ffmpeg命令行合成图片
    • 短视频合成的效果

使用ffmpeg用图片批量合成抖音卡点短视频

近期在研究用批量用图片和音乐合成抖音小红书的卡点短视频。也看了很多博主的博客,有用python的moviepy的,有用cv2的,代码不完整,也尝试了很多的免费的视频编辑工具,发现都不太好用,走了一些弯路。后来发现ffmpeg是不错的工具,用命令行就可以批量的把图片文件合成卡点短视频。

ffmpeg工具准备

到https://ffmpeg.zeranoe.com/builds/下载最新的Win10的64位static版的ffmpeg的最新版本,国内下载站的是源代码或者较老的可执行文件。建议到zearnoe下载最新的版本,大小约在70M,下载网速较慢,建议用可断点续传的工具下载或者专门的下载软件下载。下载后解压,设置环境变量,把解压出来的bin目录添加到win10的系统的path目录里。设置好后,在win10的输入框中输入cmd,进入命令行模式,输入ffmpeg -version,如果正确显示,说明ffmpeg就安装好了。
使用ffmpeg用图片批量合成抖音卡点短视频_第1张图片

图片和音乐文件准备

准备10张左右的图片,jgp或者png格式,但是不能同时有两种格式,放在一个images的目录里,准备一个mp3音乐文件,时间有几十秒就可以了。照片可以有多种长宽比例。
使用ffmpeg用图片批量合成抖音卡点短视频_第2张图片

ffmpeg命令行合成图片

命令行中输入以下命令:
ffmpeg -threads 2 -loop 0 -y -r 0.7 -i /images/%3d.jpg -i 002225.mp3 -t 15 -absf aac_adtstoasc -vf “scale=‘if(gt(asar,9/16),576,1024iwsar/ih)’:'if(gt(asar,9/16),576*ih/iw/sar,1024)’, pad=576:1024:(ow-iw)/2:(oh-ih)/2,setsar=1” -vcodec libx264 -pix_fmt yuv420p -r 30 output.mp4
说明如下:
-threads 2 用2个线程处理
-loop 0 不循环读取图片,mp3音乐时长在4分多钟
-y 覆盖帧不提示
-r 0.7 每秒读取0.7张图片
-i /images/%3d.jpg 输入的图片在当前目录下,名字已经命名位001.jpg,002.jpg,可以加比如前缀a001.jpg,…注意目录中不能中文,是否其他通配的方式我不知道。
-i 002225.mp3 输入的背景音乐
-t 15 输出的视频时间控制在15秒
-absf aac_adtstoasc 音频格式设定,aac_adtstoasc据说是为了更好的支持iphone
-vf “scale=‘if(gt(asar,9/16),576,1024iwsar/ih)’:'if(gt(asar,9/16),576*ih/iw/sar,1024)’, pad=576:1024:(ow-iw)/2:(oh-ih)/2,setsar=1” 这是精华部分,图片的长宽比例可能有好几种,比如600960,7201024,这段代码的意思是输出576*1024的9:16的竖版视频,输出的视频中图片长或者宽缩放到576或者1024,保持原有图片的长宽比例不变,其余的用黑底填充。
-vcodec libx264 输出视频格式H264编码
-pix_fmt yuv420p 颜色空间选yuv420p,否则视频的封面预览图可能不能正确显示,输出的mp4视频不能在win10上用“电影和电视”正常的播放
-r 30 输出视频的帧率设为30
output.mp4 合成的视频的目录和名称

以下是命令行的回显,使用ffmpeg用图片批量合成抖音卡点短视频_第3张图片

短视频合成的效果

output.mp4只用了几秒钟就生成,时间很快,令人满意。文件大小也才1M多一点。
使用ffmpeg用图片批量合成抖音卡点短视频_第4张图片

使用ffmpeg用图片批量合成抖音卡点短视频_第5张图片
好像视频在手机上的封面是第一张照片,在电脑上封面显示的是第二张照片,有点不解,不过已经可以接受了。
使用ffmpeg用图片批量合成抖音卡点短视频_第6张图片
**后记:**我只是初次使用ffmpeg,ffmpeg博大精深,博文中可能有错误之处,请网友们自行鉴别。写本文的目的是抛砖引玉,和网友一起交流。希望网友能贡献相关的代码,例如可以批量的ffmpeg把几百个目录中的图片批量改名成ffmpeg的支持的格式,对每个目录批量执行合成视频的命令,可以支持每个目录循环使用几首背景音乐中的一首。

你可能感兴趣的:(技术交流,抖音,图片合成视频,ffmpeg,python)