手把手教你使用ffmpeg(二)

引言

上一篇讲了ffmpeg在Mac和Linux下的安装,这篇着重介绍一下ffmpeg一些基础使用方式帮助你完成ffmpeg的入门,有兴趣的小伙伴建议参考上一篇文章先完成ffmpeg的下载再进行阅读这篇文章,边看边试边练,印象才会深刻。

手把手教你使用ffmpeg(一)

ffmpeg获取视频基础信息

ffmpeg -i videoUrl.mp4

当你安装好ffmpeg的时候可以使用以上命令获取视频的一些基础信息,比如视频的时长、分辨率、帧率、码率、编码格式、视频格式、音频编码等。这里videoUrl可以为本地绝对路径或者网络路径都是可以的。

可以看到我们拿到了视频的一些基础信息,借助ffmpeg我们可以获取这些基础信息.

可能有读者会问拿到这串信息之后我怎么拿到每个具体的值,可以直接正则匹配出来,具体的方法我就不赘述了。如果有读者需要,我再单出一篇关于正则提取视频信息的文章。

ffmpeg对视频的帧操作(图片相关)

这个功能我想大家在平时的开发工作中应该大概率会遇到,尤其是短视频日易中天的当下。

ffmpeg -i test.mp4 -vframes 1 frame.png

可以加-s 参数指定截取图片的尺寸,但是这个图片并不会裁剪。不指定默认使用视频尺寸裁剪。 ffmpeg -i test.mp4 -vframes 1 -s 352x240 frame.png

将视频前30帧转换为gif动图

ffmpeg -i test.mp4 -vframes 30 -y -f gif test.gif

该命令可以截取画面的第一帧并保存为图片.如果需要将封面图存入指定位置将图片地址写为绝对路径即可.比如:

ffmpeg -i test.mp4 -vframes 1 /www/data/frame.png

将视频按fps=8进行抽帧,会根据视频长度生成多张图。抖音视频查重截取关键帧应该就是用的类似的技术。 -r 表示的是帧率 -f 指定输出格式(这里image2指的数Image2序列), 最后一个输出文件名称使用 %3d 来指示输出的图片有三位数字 (000, 001,002....)。你也可以用 %2d (两位数字) 或者 %4d (4位数字) 这种写法也适用于上方所以命令,不过我建议除了必要最好还是指定输出文件名称.

ffmpeg -i test.mp4 -r 8 -f image2 %03d.jpg

下期讲着重描述ffmpeg对视频的操作、包括但不限于转换视频格式调整视频封面图视频静音增加字幕压缩视频裁剪视频抽取音频等等

相关推荐
Rain5093 分钟前
2.1 Nest.js 项目初始化与模块化架构
开发语言·前端·javascript·后端·架构·数据分析·node.js
cjp5607 分钟前
009. ASP.NET WEB API 用户关联esp32设备
前端·后端·asp.net
贺国亚13 分钟前
Text-to-SQL与Analytics-Agent
后端
一只叫煤球的猫31 分钟前
ThreadForge 源码解读二:一个 Task 从 submit 到完成,内部到底发生了什么?
java·后端·面试
苏三说技术44 分钟前
AgentScope Java 2.0 正式发布了!
后端
ping某1 小时前
一个“日志备份”需求,为什么会牵出整个 Linux 日志系统?
后端·架构
血小溅1 小时前
Spring AI 对 Skill/MCP 的支持全景整理
后端
晓杰'2 小时前
从0到1实现Balatro游戏后端(8):Skip Blind与Tag奖励机制设计与实现
后端·websocket·typescript·项目实战·nestjs·状态管理·游戏服务器
叫我:松哥2 小时前
基于Flask框架的校园二手书籍交易平台,注重校园场景的特殊需求,通过学号认证保障用户真实性
后端·python·sqlite·flask·bootstrap
终将老去的穷苦程序员2 小时前
基于SpringBoot的餐饮管理系统
java·spring boot·后端