ffmpeg 实用命令 -- 设置预览图

在为视频文件设置预览图(缩略图)之前,我们首先要准备这样一张图片。FFmpeg 支持用 thumbnail 过滤器自动从视频中抽取一张预览图。它会从头到尾以 thumbnail=n 中的 n (默认为 100)数量的帧为扫描步长来抽取预览图。

bash 复制代码
# 自动选取 1 张预览图,按宽边为 1080 缩放分辨率,然后保存到文件
ffmpeg -i clip.mp4 -vf thumbnail,scale=-1:1080 -vframes 1 thumb.png
# 以 30 帧为扫描步长,从视频中自动选取 3 张预览图以供挑选(并在保存时进行三位数编号)
ffmpeg -i clip.mp4 -vf thumbnail=30,scale=-1:1080 -vframes 3 thumb-%03d.pngs

或者,利用在 截取帧为图片 一节中提到的帧截取方法,指定截取某一帧作为图片:

bash 复制代码
# 指定截取视频中的第 100 帧
ffmpeg -i clip.mp4 -vf 'select=eq(n\,100)' -vframes 1 thumb.png

最后,预览图当然也可以由用户利用 FFmpeg 以外的软件自行准备。甚至,即使图与视频内容无关,在技术上也是能把它设置为预览图的------但还是别了吧。

在预览图文件 thumb.png 准备完成后,我们就可以将其嵌入到视频文件了。对于 MP4 文件,这需要使用 disposition 参数:

bash 复制代码
ffmpeg -i video.mp4 -i thumb.png -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4

上例接受了第 1 个输入文件(#0) video.mp4 与第 2 个输入文件(#1) thumb.jpg 的所有流数据,然后将输入 #1 设置为预览图。请注意,我们必须像例中一样用 -map 指明接受两个输入的流数据,否则 ffmpeg 会自动只保留一个视频流。

对于 MKV 文件,我们则需要使用 -attach 参数来嵌入缩略图(也称 MKV 封面)。

bash 复制代码
# 文件名必须为 cover.jpg或conver.png。如果使用 PNG 文件(cover.png),请相应地将后续参数改为 mimetype=image/png
ffmpeg -i video.mkv -c copy -attach cover.jpg -metadata:s:t:0 mimetype=image/jpeg out.mkv
相关推荐
浩瀚之水_csdn19 小时前
av_packet_alloc详解
ffmpeg
Echo_NGC22372 天前
【FFmpeg 使用指南】Part 3:码率控制策略与质量评估体系
人工智能·ffmpeg·视频·码率
xmRao2 天前
Qt+FFmpeg 实现 PCM 音频转 AAC 编码
qt·ffmpeg·pcm
xmRao2 天前
Qt+FFmpeg 实现录音程序(pcm转wav)
qt·ffmpeg
阿里巴啦3 天前
python+yt-dlp开源项目,支持 YouTube, Bilibili, TikTok/抖音,快手 等多个平台的视频/音频/字幕下载/ai摘要等功能
python·ffmpeg·whisper·音视频·视频处理·ai摘要·音视频转录
来鸟 鸣间4 天前
linux下ffmpeg源码编译
linux·运维·ffmpeg
Echo_NGC22374 天前
【FFmpeg使用指南】Part 2:滤镜图架构与信号处理
架构·ffmpeg·音视频·信号处理
Echo_NGC22374 天前
【FFmpeg使用指南】Part 1:核心架构与媒体流处理
ffmpeg·音视频·媒体·视频
ssxueyi4 天前
用 Claude Code 从零开发自己的Direct3D 硬件加速播放器
ffmpeg·ai编程·directx·视频播放器·从零开始·claude code·csdn征文活动
Yan_uuu4 天前
ubuntu18.04 安装 x264、ffmpeg、nv-codec-hearers 支持GPU硬件加速
c++·图像处理·ubuntu·ffmpeg