FFmpeg操作视频的命令:
| |
| 图片加水印测试: |
| D:\desktop\FFmpeg\bin\ffmpeg.exe -i "D:\desktop\重庆文旅摄影协会\视觉\AI设计\01.mp4" -vf "movie=D\\:/favicon.png,scale= 60: 30 [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" -y "D:/desktop/3.mp4" |
| |
| 图片加水印测试: |
| D:\desktop\FFmpeg\bin\ffmpeg.exe -i "D:\desktop\重庆文旅摄影协会\视觉\AI设计\01.mp4" -i D\\:/favicon.png -filter_complex "overlay=10:10:alpha=0.5,scale=200:-1" -codec:a copy "D:/desktop/777.mp4" |
1.压缩视频命令:
| ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4 |
说明:
- -i input.mp4:输入视频文件名
- -c:v libx264:使用libx264编码器压缩视频
- -crf 23:视频质量,数值越小,质量越高,一般取值范围是18-28,推荐使用23
- -c:a aac:使用aac编码器压缩音频
- -b:a 128k:音频比特率,128k是常用的音频码率
- output.mp4:输出视频文件名
2.添加水印命令:
| ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" -codec:a copy output.mp4 |
说明:
- -i input.mp4:输入视频文件名
- -i watermark.png:输入水印图片
- -filter_complex "overlay=10:10":设置水印位置,10:10表示水印在视频左上角,可以根据需要调整位置,如:overlay=main_w-overlay_w-10:10 表示水印在视频右上角
- -codec:a copy:音频不需要重新编码,直接复制到输出文件中,节省时间和质量
- output.mp4:输出视频文件名
3.调整水印大小和透明度命令:
| ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10:alpha=0.5,scale=200:-1" -codec:a copy output.mp4 |
说明:
- -filter_complex "overlay=10:10:alpha=0.5,scale=200:-1":在原有的水印位置基础上增加alpha透明度为0.5,然后将水印缩放到宽度为200,高度等比例缩放,可以根据需要调整大小和透明度
- output.mp4:输出视频文件名
注意:以上命令仅供参考,具体参数需要根据实际情况调整。
字幕
视频添加字幕
| ffmpeg -i input.mp4 -i subtitle.ass -c:v copy -c:a copy -c:s ass -y output.mkv |
或:(烧录为 mp4,速度慢)
| ffmpeg -i input.mp4 -vf ass=subtitle.ass -y output.mp4 |
视频提取字幕
| ffmpeg -i video.mkv -map 0:s:0 out.ass |
这将下载第一个字幕轨。如果有多个,则使用 0:s:1 下载第二个,0:s:2 下载第三个,以此类推。可以生成任意所需的格式,改一下扩展名即可。
图片
图片压缩
| ffmpeg -i image.jpg -q 4 out.jpg |
-q 4 为压缩级别,数字越大压缩级别越高
约束比例压缩
| ffmpeg -i image.jpg -vf scale=-1:1000 out.jpg |
| |
scale=-1:1000 表示保持图片尺寸比,将高度缩减为 1000px
scale=1000:-1 表示保持图片尺寸比,将宽度缩减为 1000px
scale=1000:500 表示将宽度缩减为 1000px,高度缩减为 500px (图片可能会拉伸)
图片裁剪
| ffmpeg -i image.jpg -vf crop=1000:800:0:0 out.jpg |
| |
crop=1000:800:0:0 表示裁剪后的图片大小为 1000x800 px,从 0,0 坐标位置开始裁剪,即左上角
添加文字水印
| ffmpeg -i image.jpg -vf drawtext=fontfile="simkai.ttf":fontcolor="#D85840":fontsize=100:text="Hello World!你好,世界":x=1000:y=1000 out.jpg |
fontfile=“simkai.ttf” 为字体路径(绝对路径好像不生效?只好把字体复制到当前目录)
不支持中文的字体,中文会显示不正常
Windows 系统字体位置为 “C:/Windows/Fonts”
fontcolor=“#D85840” 为字体颜色,支持不透明度
fontsize=100 为字体大小
text=“Hello World!你好,世界!” 为要设置的文字
x=1000:y=1000 为文字起始坐标,图片左上角坐标为 (0,0)
图片旋转
PI/180 指顺时针旋转 90 度
图片左右翻转
| ffmpeg -i image.jpg -vf hflip out.jpg |
| |
图片上下翻转
| ffmpeg -i image.jpg -vf vflip out.jpg |
| |
音频
导出视频中的音频
| ffmpeg -i input.mp4 -vn -y -acodec copy output.m4a |
去除视频中的音频
| ffmpeg -i input.mp4 -an output.mp4 |
添加封面
| ffmpeg -y -i audio.mp3 -i cover.jpg -map 0:0 -map 1:0 -c copy -id3v2_version 3 output.mp3 |
去除封面
| ffmpeg -i audio.mp3 -vn -codec:a copy -map_metadata -1 output.mp3 |
m4a 转 mp3
| ffmpeg -i audio.m4a -f mp3 output.mp3 |
音频增益
| ffmpeg -i input.mp3 -af volume=-5dB -y output.mp3 |
volume=-5dB 表示将音量减少 5 dB,升高则不用加负号
音频压缩
| ffmpeg -i input.mp3 -ab 128k output.mp3 |
-ab 128k 表示将音频压缩为 128kbps 比特率
常用的比特率有 96k, 112k, 128k, 160k, 192k, 256k, 320k
视频
合并音视频
| ffmpeg -i input.mp4 -i audio.mp3 -vcodec copy -acodec copy output.mp4 |
合并多个视频文件
方法 1(直接指定文件名)
| ffmpeg -i "concat:1.ts|2.ts|3.ts" -c copy output.mp4 |
方法 2(根据配置文件合并)
file.txt:
| file '1.mp4' |
| file '2.mp4' |
| file '3.mp4' |
| ffmpeg -f concat -i file.txt -c copy -y output.mp4 |
视频转为 gif
| ffmpeg -ss 00:00:01 -i input.mp4 -s 1024x768 -r 15 output.gif |
-ss 00:00:01 表示从第 00 小时 00 分钟 01 秒 开始制作 gif,也可以简写为 1,可以省略
-s 1024x768 表示 gif 分辨率,可以省略
-r 15 表示 gif 帧率,可以省略
视频截取
| ffmpeg -ss 00:00:00 -i input.mp4 -vcodec copy -acodec copy -t 00:00:30 output.mp4 |
-ss 00:00:00 表示从第 00 小时 00 分钟 01 秒 秒开始截取
-t 00:00:30 表示向后截取 30 秒视频
修改分辨率
方法 1(直接设置分辨率)
| ffmpeg -i input.mp4 -s 640x480 output.mp4 |
方法 2(设置缩放比)
| ffmpeg -i input.mp4 -vf scale=-1:480 output.mp4 |
调整视频帧率
| ffmpeg -i input.mp4 -r 20 output.mp4 |
-r 20 表示调整视频帧率为 20 帧/s
调整视频播放速度
只调整视频速度
| ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4 |
0.5 表示 2 倍速播放,2 表示 0.5 倍速播放,以此类推
同时调整视频音频速度
| ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mp4 |
0.5*PTS[v] 表示 视频 2 倍速播放,2.0[a] 表示音频 2 倍速播放
视频截图
| ffmpeg -i input.mp4 -r 30 image-%3d.jpg |
-r 30 表示每秒提取 30 帧
image-%3d 文件命名格式是 image-001.jpg
| ffmpeg -i input.mp4 -r 30 -t 4 image-%3d.jpg |
-t 4 表示取第 4 秒的帧
| ffmpeg -i input.mp4 -r 30 -t 4 -vframes 1 image-%3d.jpg |
-vframes 1 表示取 1 帧
裁剪视频
| ffmpeg -i input.mp4 -vf crop=w=1500:h=600:x=0:y=200 output.mp4 |
w=1500 表示输出视频宽度 1500 px
h=600 表示输出视频高度 600 px
x=0 y=200 表示从坐标(0, 200)开始裁剪
视频旋转
| ffmpeg -i input.mp4 -metadata:s:v rotate="-90" -codec copy outut.mp4 |
rotate=“-90” 表示将视频顺时针旋转 90°
视频镜像
| ffmpeg -i input.mp4 -vf "hflip" outut.mp4 |
-vf “hflip” 表示将视频水平镜像,vflip 则是垂直镜像
参考链接:
FFmpeg----图片处理 https://www.jianshu.com/p/b53943fc3819
ffmpeg 从视频中提取图片 https://blog.csdn.net/lovelovelovelovelo/article/details/101443618
ffmpeg 设置视频帧率 https://blog.csdn.net/ss00_2012/article/details/74937447
使用 ffmpeg 合并多个视频文件 https://blog.csdn.net/winniezhang/article/details/89260841
FFmpeg 音视频简单合并 https://blog.csdn.net/u012725623/article/details/104008263
使用 ffmpeg 将音频文件转换为 mp3 https://cloud.tencent.com/developer/ask/sof/48924
[FFmpeg] Windows 下使用 ffmpeg 为视频添加字幕 https://blog.csdn.net/u013699869/article/details/48162417/
FFmpeg 命令行 视频转为 GIF 动图 https://www.cnblogs.com/yibinboy/p/12751659.html
使用 ffmpeg 裁剪和合并视频 https://www.cnblogs.com/sn-dnv-aps/p/10832852.html
ffmpeg 调节视频声音大小 https://www.cnblogs.com/shaosks/p/15010686.html
ffmpeg 对视频进行缩放和裁剪操作 https://www.cnblogs.com/xuguangzong/p/15775177.html
FFmpeg之视频/图片镜像旋转(十三) https://blog.csdn.net/u010164190/article/details/112689804
30分钟带你入门,20个 FFmpeg操作命令,包你学会 https://zhuanlan.zhihu.com/p/455572544
————————————————
版权声明:本文为CSDN博主「luxiu-yuruyan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/KYuruyan/article/details/124518983
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了