FFmpeg处理音视频命令汇总

在学习及使用的过程中用到的命令记录一下,方便查找。同时记录下一些常用的参数说明,方便理解修改。

参数说明
  • -i——设置输入文件
  • -f——设置输出格式
  • -y——若输出文件已存在时则覆盖文件
  • -fs——超过指定的文件大小时则结束转换
  • -t——指定输出文件的持续时间,以秒为单位
  • -ss——从指定时间开始转换,以秒为单位
  • -title——设置标题
  • -timestamp——设置时间戳
  • -vsync——增减Frame使影音同步
  • -c——指定输出文件的编码
  • -metadata——更改输出文件的元数据
  • -b:v——设置影像流量,默认为200Kbit/秒。(单位请引用下方注意事项)
  • -r——设置帧率值,默认为25
  • -s——设置画面的宽与高
  • -aspect——设置画面的比例
  • -vn——不处理影像,于仅针对声音做处理时使用
  • -vcodec( -c:v )——设置影像影像编解码器,未设置时则使用与输入文件相同之编解码器
  • -b:a——设置每Channel(最近的SVN版为所有Channel的总合)的流量。(单位请引用下方注意事项)
  • -ar——设置采样率
  • -ac——设置声音的Channel数
  • -acodec ( -c:a ) ——设置声音编解码器,未设置时与影像相同,使用与输入文件相同之编解码器
  • -an——不处理声音,于仅针对影像做处理时使用
  • -vol——设置音量大小,256为标准音量。(要设置成两倍音量时则输入512,依此类推。)
视频裁剪

ffmpeg -i input.mp4 -ss 开始时间 -t 持续时间 -vcodec copy -acodec copy -preset superfast output.mp4

音视频分离
  • 获取视频轨道 ffmpeg -i input.mp4 -an -vcodec copy output.mp4
  • 获取音频轨道 ffmpeg -i input.mp4 -vn -acodec copy output.mp3
文件拼接

这儿的文件可以是视频也可以是音频
ffmpeg -y -f concat -safe 0 -i a.txt -c copy %s
-f 表示采用concat协议 -c表示采用什么编码 copy表示不重新编码 a.txt 文件中的内容及格式如下,以音频为例

file input1.mp3
file input2.mp3

注意文件格式,相同格式输出文件的格式也要一样,如果不同需要进行转码(格式不同没有验证过)

添加图片水印
  • ffmpeg -y -i input.mp4 -i input.png -filter_complex [0:v]scale=iw:ih[outv0];[1:0]scale=100.0:50.0[outv1]overlay=10:10:enable=between(t,0,1) -preset superfast output.mp4
    overlay后面表示距左边跟上边的距离是10 enable=between(t,0,1)表示从0秒到1秒显示,之后消失
  • **ffmpeg -y -i input.mp4 -i input.png -filter_complex overlay=W/2-w/2:H/2-h/2:enable=between(t,0,1) -preset superfast output.mp4 **
    W表示视频宽H表示视频高w表示图片宽h表示图片高
添加背景音乐

ffmpeg -y -i input.mp4 -i input.mp3 -vcodec copy -acodec copy -t 时间 output.mp4
-t后面的时间表示持续时间,举例:时间=20 生成后的视频就是20秒 即使视频时长大于20秒

添加GIF

ffmpeg -y -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex [0:v]scale=iw:ih[outv0];[1:0]scale=100.0:50.0[outv1];[outv0][outv1]overlay=10:10:shortest=1 -preset superfast output.mp4
但是测试gif播完后就变成静止的了

添加文字

ffmpeg -y -i %s -vf drawtext=fontfile=%s:text=%s:x=10:y=10:fontsize=24:fontcolor=white:shadowy=2 %s

混音

1、ffmpeg -y -i %s -i %s -filter_complex [0:a]volume=1[a1];[1:a]volume=0.5[a2];[a1][a2]amix=inputs=2:duration=first:dropout_transition=1[aout] -map [aout] output.mp4
代码里面volume可以进行设置音量大小
amix=inputs=2:duration=first:dropout_transition=1
inputs代表音轨输入数量
duration代表时长,当前使用第一个输入作为时长
dropout_transition代表转换时间为1秒,最后效果是逐渐减淡

2、ffmpeg -y -i input1.mp3 -i input2.mp3 -filter_complex [0:a][1:a]amerge=inputs=2[a] -map 0:v -map [a] -ac 1 -c:v copy -shortest output.mp3

后续再使用其他命令的时候再更新

最后记录一些命令参考的博文:

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值