FFmpeg操作视频的命令:

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

posted @ 2023-04-04 16:00  wfxx  阅读(101)  评论(0编辑  收藏  举报