【视频剪辑】批量设置视频封面
设置视频封面虽然好用,可还是运行的很慢。分享,记录之。
·
我想看的《海贼王》很多封面都是统一的,我想要看剧情到哪里了。所以,我需要从视频提取一个视频帧显示成封面。网上的批量设置封面工具太贵,而ffmpeg工具批处理命令能满足自己的需求。
修改前:

修改后:

以下是实现方案
方法一:
将图片作为附加图片信息封装到视频上,以下是代码。将bat文件放到视频文件夹运行
@echo off
chcp 65001
::在下方设置需要处理的视频格式
set Ext=*.ts,*.avi,*.mp4,*.wmv,*.flv,*.mkv,*.rmvb,*.rm,*.mov
md temp
md output
for %%a in (%Ext%) do (
ffmpeg -ss 315 -i "%%a" -vf thumbnail,scale=1280:720 -frames:v 1 -y "temp\%%~na.jpg"
ffmpeg -i "%%a" -i "temp\%%~na.jpg" -map 1 -map 0 -c copy -disposition:0 attached_pic -y "output\%%~na.mp4"
)
pause
方法来源于 ffmpeg批量修改视频缩略图(封面)-CSDN博客,如有侵权请联系。
如果要代码具体参数含义的看 使用 ffmpeg 为视频文件添加封面 - J.晒太阳的猫 - 博客园
方法二:
将图片插入到视频第1帧或者说插入视频前几帧,作为遮盖物overlay到视频开头。以下是代码
@echo off
chcp 65001
::在下方设置需要处理的视频格式
set Ext=*.ts,*.avi,*.mp4,*.wmv,*.flv,*.mkv,*.rmvb,*.rm,*.mov
md temp
md output
for %%a in (%Ext%) do (
ffmpeg -ss 315 -i "%%a" -vf thumbnail -frames:v 1 -y "temp\%%~na.jpg"
ffmpeg -i "%%a" -i "temp\%%~na.jpg" -filter_complex "[0:v][1:v]overlay=0:0:enable='between(n,0,11)'" -c:a copy "temp\%%~na.mp4"
)
pause
-filter_complex这个是主要参数,意思是将图片跟视频完全重叠。当然如果要部分重叠可以更改以下后面的数字。后面的enable='between(n,0,11)'的n表示帧,如果是enable='between(t,0,11)'就表示秒。参考 也许能用得上的FFmpeg常用命令 - 哔哩哔哩-搜文字【按秒加入图片】。
疑问集锦
- 方法一运行速度快于方法二,也就是修改附加信息要比插入帧更快。
- 方法一如果运行后发现有些软件并没有显示封面,比如billfish,需要用以下代码解决
@echo off
chcp 65001
::在下方设置需要处理的视频格式
set Ext=*.ts,*.avi,*.mp4,*.wmv,*.flv,*.mkv,*.rmvb,*.rm,*.mov
md temp
md output
for %%a in (%Ext%) do (
ffmpeg -ss 315 -i "%%a" -vf thumbnail -frames:v 1 -y "temp\%%~na.jpg"
ffmpeg -i "%%a" -i "temp\%%~na.jpg" -filter_complex "[0:v][1:v]overlay=0:0:enable='between(n,0,11)'" -c:a copy "temp\%%~na.mp4"
ffmpeg -i "temp\%%~na.mp4" -i "temp\%%~na.jpg" -map 1 -map 0 -c copy -disposition:0 attached_pic -y "output\%%~na.mp4"
)
pause
注意:for循环里第2行和第3行顺序不能反,否则封面设置会失效。
总结
分享
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)