当前位置: 首页 > news >正文

ffmpeg 常用命令

ffmpeg 是一个开源的音频视频处理神器,下面是一些常用的处理命令,包括视频格式之间的转换,视频简单的处理。

mp4 转 gif 动图

将 mp4 转为动图,其中两个参数比较重要,fps 和 scale 比较重要。

ffmpeg -i example.mp4 -vf "fps=15,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 example.gif-i input.mp4: 指定输入视频文件。
-vf "fps=15,scale=640:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse":fps=15: 将输出GIF的帧率设置为每秒15帧。
scale=640:-1: 将视频调整到640像素宽,同时保持宽高比。可以根据需要调整宽度。
flags=lanczos: 使用Lanczos重采样算法进行高质量的降采样。
split[s0][s1]: 将视频流分成两个流。
[s0]palettegen[p]: 从第一个流生成调色板。
[s1][p]paletteuse: 将调色板应用到第二个流。

mp4 转化成图片

用于将MKV文件转换为MP4文件,同时指定视频和音频编码器

ffmpeg -i file.mkv -c:v libx264 -c:a aac output.mp4-i file.mkv: 指定输入文件为 file.mkv。
-c:v libx264: 指定视频编码器为 libx264,这是一个高效的视频编码器,广泛用于MP4格式。
-c:a aac: 指定音频编码器为 aac,这是一种常见的高质量音频编码器。
output.mp4: 指定输出文件名为 output.mp4。

将图片列表转换为 MP4

ffmpeg -framerate 1 -i slide%d.png -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4
-framerate 1:设置帧率为每秒1帧,这意味着每张幻灯片将显示1秒。根据需要调整此值以更改每张幻灯片的显示时间。
-i slide%d.png:指定输入图像,其中 %d 是图像序列的占位符。
-c:v libx264:指定视频编码器为 libx264(用于H.264编码)。
-r 30:设置输出帧率为每秒30帧。
-pix_fmt yuv420p:设置像素格式为 yuv420p,以提高与大多数播放器的兼容性。
output.mp4:输出视频文件的名称。

提取音频

ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 2 output.mp3-i input.mp4:指定输入文件为 input.mp4。
-vn:忽略视频部分,只处理音频。
-acodec libmp3lame:使用 libmp3lame 编码器将音频重新编码为MP3格式。
-q:a 2:设置音频质量参数,值为2表示高质量(0是最高质量,9是最低质量)。
output.mp3:指定输出文件名为 output.mp3。

从视频中提取帧

ffmpeg -i input.mp4 -vf "select=eq(n\,FRAME_NUMBER)" -vsync vfr -q:v 2 output.jpg-i input.mp4:指定输入文件为 input.mp4。
-vf "select=eq(n\,FRAME_NUMBER)":使用视频过滤器选择帧,其中 FRAME_NUMBER 是您要提取的帧编号。例如,提取第100帧可以写作 select=eq(n\,100)。
-vsync vfr:使用可变帧率。
-q:v 2:设置输出图像质量,值越低质量越高(2表示高质量)。
output.jpg:指定输出文件名为 output.jpg。

反转视频

ffmpeg -i input.mp4 -vf "vflip" output_vflip.mp4-i input.mp4:指定输入文件为 input.mp4。
-vf "vflip (hflip) ":应用垂直(水平)翻转滤镜。
output_vflip.mp4:指定输出文件名为 output_vflip.mp4。

相关文章:

  • 【鸿蒙】 模拟器运⾏
  • Java程序之动物声音“模拟器”
  • SpringMVC系列七: 手动实现SpringMVC底层机制-上
  • 5.3 Python len()函数:获取字符串长度或字节数
  • Dockerfile实战
  • Vue78-缓存路由组件
  • 深度学习:关于损失函数的一些前置知识(PyTorch Loss)
  • Python低溫半导体电子束量子波算法计算
  • excel按模板文件导出多个文件并压缩为ZIP格式返回前端
  • java小代码(1)
  • 前端技术栈三(vue+Axios)
  • 【华为HCIA数通网络工程师真题-数据通信与网络基础】
  • ThreeJS-截屏下载pdf或者图片时白屏
  • 持续集成jenkins+gitee
  • 经典游戏案例:植物大战僵尸
  • python3.6+scrapy+mysql 爬虫实战
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【Amaple教程】5. 插件
  • classpath对获取配置文件的影响
  • CSS3 变换
  • C语言笔记(第一章:C语言编程)
  • JavaScript服务器推送技术之 WebSocket
  • Java教程_软件开发基础
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Median of Two Sorted Arrays
  • MySQL-事务管理(基础)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring-boot 启动时碰到的错误
  • vue中实现单选
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 理清楚Vue的结构
  • 前嗅ForeSpider中数据浏览界面介绍
  • 如何正确配置 Ubuntu 14.04 服务器?
  • - 转 Ext2.0 form使用实例
  • ​linux启动进程的方式
  • ​香农与信息论三大定律
  • #if和#ifdef区别
  • #QT(TCP网络编程-服务端)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (¥1011)-(一千零一拾一元整)输出
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (7)STL算法之交换赋值
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • (转)memcache、redis缓存
  • *1 计算机基础和操作系统基础及几大协议
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @EventListener注解使用说明