FFMpeg命令收藏
2024-02-01 本文已影响0人
YocnZhao
1. 水印
1.1. 加水印
把a.png当做水印加到a.mp4上,设置宽高,设置alpha。
ffmpeg -i a.mp4 -i a.png -filter_complex "overlay=W-w-10:H-h-10:alpha=0.5" output.mp4
1.2.加文字水印,并且x坐标随着时间移动
文字水印,内容为“watermark”,y为整体高度减去文字高度。x为整体宽度减去时间*20,也就是随着时间轴移动x值逐渐变小。字体大小为14,颜色为黄色,有y方向的阴影。
ffmpeg -i a.gif -vf "drawtext=text='watermark':y=h-text_h:x=w-text_w-20*t:fontsize=14:fontcolor=yellow:shadowy=2" out4.gif
1.3.去水印
注意x,y不能从0开始,会出错
ffmpeg -i a.mp4 -vf delogo=x=1:y=1:w=92:h=12:show=0 out.mp4
如果不确定水印位置可以使用ffplay
命令先确定位置在执行去水印动作。
ffplay -i a.mp4 -ss 00:00:15 -vf delogo=x=1:y=1:w=92:h=12:show=1
-ss 00:00:15
表示从15s开始执行。
2. 视频尺寸操作
2.1. 获取视频宽高
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 a.mp4
2.2. 裁剪视频尺寸
ffmpeg -i real.mp4 -vf "crop=718:1110:1:80" real_output.mp4
3. 裁剪视频时长
3.1. 裁剪视频时长
ffmpeg -y -i src.mp4 -c copy -to 00:00:16 out.mp4
3.2. 裁剪视频时长,精确到毫秒。
ffmpeg -y -ss 0 -t 00:00:16 -i src.mp4 -c:v libx264 -preset superfast -c:a copy out.mp4
3. 音轨相关
3.1. 截取指定时间长度的音频
# 下面命令的意思是从50秒开始,截取2分钟的音频
# ss:指定开始时间 t:指定提取时间
# 时间戳必须采用HH:MM:SS.xxx格式或以秒为单位;如果不指定t选项,则一直到末尾
# 两种写法都可以 下面是第一种
ffmpeg -i chain.mp4 -ss 00:00:50 -t 00:02:00.0 -q:a 0 -map a chainmusic.mp3
# 第二种
ffmpeg -i chain.mp3 -ss 00:00:50 -t 00:02:00 1m.mp3
3.2. 截取指定时间区间的音频
# 截取50秒到1分钟之间的音频
ffmpeg -i chain.mp3 -ss 00:00:50 -to 00:01:00 10s.mp3
3.3. 从视频中提取完整音频
# 下面两种方法都可以
ffmpeg -i chain.mp4 -q:a 0 -map a chain.mp3
# -i 要处理的视频 -vn 禁用视频
ffmpeg -i chain.mp4 -vn t.mp3
3.4. 使用 FFmpeg 添加音轨的方法取决于你想要实现的具体功能。如果你想将一个音频文件合并到一个视频文件中,可以使用以下命令:
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v -map 1:a -c:v copy -shortest output.mp4
其中,video.mp4 是你想要添加音轨的视频文件,audio.mp3 是你想要添加的音频文件,-map 0:v 表示使用视频文件的视频流,-map 1:a 表示使用音频文件的音频流,-c:v copy 表示不对视频进行重新编码,-shortest 表示在视频和音频结束时选择最短的时间戳作为输出的时间戳,output.mp4 是输出文件的文件名。
3.5. 如果你想要给视频添加背景音乐,可以使用以下命令:
ffmpeg -i video.mp4 -i music.mp3 -filter_complex "[0:a]volume=1.0[a];[1:a]volume=0.5[b];[a][b]amix=inputs=2:duration=first" -c:v copy -shortest output.mp4
其中,video.mp4 是你想要添加背景音乐的视频文件,music.mp3 是你想要添加的背景音乐文件,-filter_complex 表示使用复杂的音频滤镜,[0:a]volume=1.0[a] 表示将视频文件的音频流音量调整为 1.0,[1:a]volume=0.5[b] 表示将音乐文件的音频流音量调整为 0.5,[a][b]amix=inputs=2:duration=first 表示将两个音频流混合成一个流,-c:v copy 表示不对视频进行重新编码,-shortest 表示在视频和音频结束时选择最短的时间戳作为输出的时间戳,output.mp4 是输出文件的文件名。