ffmpeg -y -i 1080p.mp4 -i bugua.mp3 -i iubirea.aac -map 0:v -map 1:a -map 2:a -metadata:s:a:0 language=eng -metadata:s:a:0 title="Title 1" -metadata:s:a:1 language=sme -metadata:s:a:1 title="Title 2" -c:v copy -c:a libopus output.mp4
Filter
使用scale滤镜实现的,关于scale的更多配置请看scale AVOptions
。iw
是输入文件的宽度ih
是输入文件的高度,如果值设置为-1会根据原比例以及给定的一个宽或者高算出该值
ffmpeg -y -i 1080p.mp4 -vf "scale=iw/2:-1" -c:a copy output.mp4
- 添加固定水印
使用overlay滤镜实现的,关于overlay的选项可以看overlay AVOptions
。左上角是坐标起始位置,H
表示输入视频的高,h
表示logo文件的高,W
表示输入视频的宽,w
表示logo文件的宽
# 左上角
ffmpeg -y -i 1080p.mp4 -i logo.jpg -filter_complex "overlay=0:0" output.mp4
# 左下角
ffmpeg -y -i 1080p.mp4 -i logo.jpg -filter_complex "overlay=0:H-h" output.mp4
# 右下角
ffmpeg -y -i 1080p.mp4 -i logo.jpg -filter_complex "overlay=W-w:H-h" output.mp4
# 右上角
ffmpeg -y -i 1080p.mp4 -i logo.jpg -filter_complex "overlay=W-w:0" output.mp4
# x偏移50,y坐标偏移50
ffmpeg -y -i 1080p.mp4 -i logo.jpg -filter_complex "overlay=50:50" output.mp4
- 添加时间水印
- 字体文件fontfile:/System/Library/Fonts/PingFang.ttc
- 字体大小fontsize:36
- 字体颜色fontcolor:Black
- 偏移:x=100,y=0
- 内容text:使用pts函数生成时间格式,使用localtime获取时间内容,localtime参数设置为
date "+%s"
(获取当前时间的秒数),详细信息需要阅读源码libavfilter/vf_drawtext.c
ffmpeg -y -i 1080p.mp4 -vf "drawtext=fontfile=/System/Library/Fonts/PingFang.ttc:fontsize=36:fontcolor=Black:x=100:y=0:text='%{pts\:localtime\:`date "+%s"`\:%H-%M-%S}'" output.mp4
$ ffmpeg -y -i bugua.mp3 -filter_complex showvolume output.mp4
$ ffmpeg -i bugua.mp3 -filter "atempo=2.0" output.mp3
SAR DAR PAR
我们通过ffmpeg -i 1080p.mp4的时候会看到显示的信息中有SAR和DAR,这两个是什么简称呢?
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 2986 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc (default)
- SAR(sample aspect ratio)存储长宽比是以像素为单位的图像宽度与高度的比率,例如采集分辨率是1920x1080,我的采样分辨率是1920x1080,那么SAR是1:1。如果我的采样分辨率是1280x720,那么SAR仍旧是1:1,因为宽高比没有变化。如果采样的分辨率是200x200,那么SAR就是16:9。如果采样的分辨率是200x500,那么SAR就是40:9。计算方式就是:(采集长 / 采集宽) / (采样长 / 采样宽)
- DAR(display aspect ratio)显示设备(画布)宽高比,比如我们的分辨率是200x200,DAR是16:9,那么我们的显示分辨率应该是355x200,这样我们的视频比例才正常
- PAR(pixel aspect ratio)像素长宽比,是描述数位影像的像素的宽和高之间的比率
- 他们三个的关系:PAR x SAR = DAR,所以已知两者可以计算第三者参数
像素长宽比 2:1
像素长宽比 1:1