惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
F
Fortinet All Blogs
B
Blog
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
The Register - Security
The Register - Security
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
B
Blog RSS Feed
WordPress大学
WordPress大学
Recorded Future
Recorded Future
Recent Announcements
Recent Announcements
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Secure Thoughts
雷峰网
雷峰网
Stack Overflow Blog
Stack Overflow Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Webroot Blog
Webroot Blog
AWS News Blog
AWS News Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
O
OpenAI News
月光博客
月光博客
H
Hacker News: Front Page
S
Security Affairs
W
WeLiveSecurity
The Hacker News
The Hacker News
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Help Net Security
Help Net Security
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
T
The Blog of Author Tim Ferriss
Spread Privacy
Spread Privacy
Blog — PlanetScale
Blog — PlanetScale
J
Java Code Geeks
S
Securelist
Microsoft Azure Blog
Microsoft Azure Blog
TaoSecurity Blog
TaoSecurity Blog
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
A
About on SuperTechFans

博客园 - Leone-

华为韬定律8家核心公司梳理,先进封装+晶圆代工+底层硬核全解析 暴涨10%+,江波龙这玩笑开大了 我用 AI Agent 写了个"美股看门狗",每天早上替我分析 A 股方向 为什么电脑用久了会变得越来越卡顿,其背后的计算机原理是什么? 实测GitHub开源项目:功能强大的K线量化神器 我的三板斧:只做上升趋势、只做首次回踩、只做放量启动 从通达信人工看盘到策略自动执行:零代码搭建自动盯盘交易系统! 多因子选股量化策略怎么构建 我做了个ETF轮动GUI界面版 炒股止损设多少?5%+ATR双重保护,一个公式解决 早盘竞价10分钟,如何用56个因子“算”出涨停股 完整交易系统实例:从选股到买卖全写明,避开搭建误区 双周期共振策略看着容错率高,多数人败在大小周期信号不同步 把“分歧转一致”刻进骨子里,抓主升浪就靠这一招 但凡出现“天量阴回踩”,仓位拉满,不是大涨就是连板 告别“凭感觉”炒股:看清K线背后的资金博弈逻辑 开源免费AI股票分析&交易系统 A股股票数据接口库 五年磨一剑:我把交易系统改了4次,终于做到稳定盈利 用7只ETF布局全球:我的十年定投计划,用纪律换十年后的自由 交易计划模板 通达信AI盯盘实操:3种方和4个技巧,帮你告别无效盯盘 从选股到复盘:我用 AI Agent 跑了一套股票辅助系统 牛股三绝 别只盯着K线图了!本周GitHub上这10个AI项目,正在改变交易圈 别以为均线挨得近就是粘合!少1个条件,全是诱多陷阱 A股2026一季报全景透视 从零开始构建一个现代化的前端项目:使用Vite + React + TypeScript 用好仓位管理,让高胜率落地 全市场 ETF 动量分析脚本 【如何判断一个指标是好指标】 从0到1搭建个人量化系统:我花3个月踩过的7个深坑 通达信公式预警转自动买入完整方案,Python+TRAE 实现 lesson70:jQuery Ajax完全指南:从基础到4.0新特性及现代替代优秀的方案引言:jQuery Ajax的时代价值与演进 最全剖析!霍尔木兹海峡长期封锁下 十大产业链危机脉络梳理 如何选择合适的免费待办事项App:10款软件推荐 yt-dlp无法使用--cookies-from-browser解决方法 短线高手私藏的3个量能绝技,学会就是赚 运行bat时隐藏cmd窗口 顾比均线、顾比倒数线与趋势线相结合,加上仓位管理,可构成一套完整的趋势型交易系统 成长能量场,为了终身不进医院,我一直坚持的好习惯 Win 开机自启动顺序 盘点国内14家热门智能体 CentOS运维常用命令 股票技术指标有哪些?最常用的4种指标分析教学 龙头战法:如何上车、如何持有、如何下车,看懂就开窍,值得收藏 交易日志必须记录的五个维度的信息,否则等于白写 如何配置 Nginx 使其支持对 PHP 程序的请求 /etc/systemd/system和/lib/systemd/system的区别 如何在 CentOS 上编译安装最新版 libzip
使用 ffmpeg 为视频文件添加封面
Leone- · 2026-03-20 · via 博客园 - Leone-

全程使用 CHAT GPT4 提供帮助

通常而言,电脑上的资源管理器会使用视频的第一帧来作为缩略图,如果视频文件中有封面存在,则会使用封面作为文件缩略图(Windows 自带的资源管理器是这样,具体要看资源管理器的实现)

与 GPT4 沟通后,发现可以使用 ffmpeg 为视频添加封面。原理是为文件添加一个视频流,并标记为封面。

添加封面#

ffmpeg -i "input.mp4" -i "cover.jpg" -map 0 -map 1 -c copy -disposition:v:1 attached_pic "output.mp4"

这个ffmpeg命令用于将一张图片(cover.jpg)作为封面嵌入到一个MP4视频文件(input.mp4)中,并输出一个新的视频文件(output.mp4)。命令中的各个选项和参数含义如下:

ffmpeg: 这是命令行程序的名称,用于调用FFmpeg工具。
-i input.mp4: -i标志指定输入文件,这里input.mp4是第一个输入文件,即原视频文件。
-i cover.jpg: 再次使用-i标志添加第二个输入文件,这里cover.jpg是你想嵌入为封面的图片文件。
-map 0: -map选项用于手动选择输入流(视频、音频、字幕等)添加到输出文件中。0是一个索引号,指的是第一个-i参数指定的文件(即input.mp4)。这个选项指示FFmpeg将整个第一个输入文件的所有流(视频流、音频流等)复制到输出文件中。
-map 1: 同理,这里1指的是第二个输入文件,即cover.jpg。这个选项指示FFmpeg将图片作为一个单独的流添加到输出文件中。
-c copy: -c选项指定编解码器(codec)。这里使用copy来告诉FFmpeg对所有选定的流进行“直接复制”,即不要重新编码,保持原有格式和质量。这可以减少处理时间并避免质量损失。
-disposition:v:1 attached_pic: 这里的-disposition选项用于设置特定流的处置类型。v:1是一个流选择器,它指定要处理的是第二个视频流(在这个上下文中,是我们的封面图片)。attached_pic表示这个流应被视作附加的图片,通常用于封面或缩略图。
output.mp4: 指定输出文件的名字。

总结起来,这个命令告诉FFmpeg将input.mp4视频的所有流,以及cover.jpg图片作为封面,一起复制到output.mp4输出文件中,而不重新编码它们,并将封面图片设置为“附加图片”以供播放器识别。

移除已有封面#

如果一个视频文件已经有了封面,则可能需要先移除原有封面。

如已经存在的文件的流是这样的

  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x1080, 5004 kb/s, 29.97 fps, 29.97 tbr, 29970 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 185 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]
  Stream #0:2[0x0]: Video: mjpeg (Baseline), yuvj444p(pc, bt470bg/unknown/unknown), 1280x857 [SAR 72:72 DAR 1280:857], 90k tbr, 90k tbn (attached pic)

要移除的其实就是第 3 个流

ffmpeg -i "input.mp4" -map 0 -map -0:2 -c copy "output_nocover.mp4"

-i input.mp4:这是 input file 的标志,input.mp4 是要处理的视频文件名。
-map 0:这个选项告诉 ffmpeg 将输入文件 1.mp4 中的所有流(音频、视频、字幕等)都映射到输出文件。这里的 0 代表输入文件的索引号,通常情况下一个命令中只有一个输入文件,所以这里用 0 来表示它。
-map -0:2:这是一个排除特定流的选项。-map 选项之后的 - 符号表示排除操作。0:2 指代输入文件中的第三个流(流的索引从0开始计数),根据您提供的 ffmpeg -i 输出信息,这个流是封面图片。因此,这个选项告诉 ffmpeg 排除这个封面图片流,不将它映射到输出文件中。
-c copy:这个选项指示 ffmpeg 对所有被映射的流(即除了被排除的封面图片流之外的所有流)使用“复制”编解码器。这意味着 ffmpeg 不会对音频、视频进行重新编码,而是直接复制原始数据。这样可以加快处理速度,同时避免质量损失。
output_nocover.mp4:这是输出文件的名字,处理后的文件将不再包含原来的封面图像。

总结来说,这条命令的作用是复制 1.mp4 文件中的所有流到一个新的文件 output_nocover.mp4,但是排除了封面图像流。这样处理后的视频文件将保留原有的视频和音频流,但不包括封面图像。

附查看文件中流信息的命令

ffprobe -i "input.mp4" -hide_banner