转载自原文地址:https://www.cnblogs.com/zjchao/articles/14098202.html
1.添加水印——movie过滤器:
ffmpeg -i inputfile -vf “movie=masklogo,scale= 60: 30[watermask]; [in] [watermask] overlay=30:10 [out]” outfile
参数说明:
marklogo:添加的水印图片;
scale:水印大小,水印长度*水印的高度;
overlay:水印的位置,距离屏幕左侧的距离*距离屏幕上侧的距离;mainW主视频宽度, mainH主视频高度,overlayW水印宽度,overlayH水印高度
左上角overlay参数为 overlay=0:0
右上角为 overlay= main_w-overlay_w:0
右下角为 overlay= main_w-overlay_w:main_h-overlay_h
左下角为 overlay=0: main_h-overlay_h
上面的0可以改为5,或10像素,以便多留出一些空白。
example:ffmpeg -y -i record.mp4 -vf "movie=d\:mark.jpg,scale=60:-1[watermark];[in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] " output_image/output.mp4
2.添加水印——合流
ffmpeg -i input -i logo -filter_complex ‘overlay=10:main_h-overlay_h-10’ output
input:输入流
logo:水印文件,也可以是一个流。注意:需要编译时把相应的解码器编译。例如PNG图片。需要编译PNG解码器。Ffmpeg才能够识别图片文件,把图片做为一 种流。注意:PNG图片必须含有alpha通道。Overlay过滤器是根据alpha通道来进行复盖的。所以,你想要透明效果时,须先制做一张透明的PNG图片。
output:输出流
也可以用下面命令: ffmpeg -i input -vf ‘movie=long.png[logo];[in][logo]overlay=10:10[out]’ output ,movie过滤器用来把两个流组合成一个流。它有一个输出PAD。
2.1 添加文字水印
左上角参数为 x=10:y=10
右上角为 x=w-text_w:y=0
右下角为 x=w-text_w:y=h-line_h
左下角为 x=0:y=h-line_h
# 添加普通水印
ffmpeg -y -i /opt/transcode/input/record.mp4 -vf "drawtext=fontfile=DejaVuSans.ttf:text=抖音:x=10:y=10:fontsize=24:fontcolor=white:shadowy=2" /opt/transcode/output/output.mp4
#添加滚动水印
ffmpeg -i https://www.qipa250.com/Video/qipa250.mp4 -vf "drawtext=fontfile=/data/web/qipa250/static/font/big.ttf: text='欢迎来到门店涨直播间': y=h-line_h-10:x=(mod(2*n\,w+tw)-tw):fontsize=34:fontcolor=yellow:shadowy=2" qipa250_wenzi.mp4
添加底部中间水印
ffmpeg -i https://www.qipa250.com/Video/qipa250.mp4 -vf "drawtext=fontfile=/data/web/qipa250/font/big.ttf:text='欢迎来到奇葩天地网':y=h-line_h-20:x=(w-text_w)/2:fontsize=34:fontcolor=yellow:shadowy=2" qipa250_wenzi.mp4
3. 截图以及其他命令
从视频文件中提取声音文件: ffmpeg -i xxx.mp4 -vcodec copy xxx.aac
提取视频文件:ffmpeg -i xxx.mp4 -vcodec copy -an output.mp4
视频文件裁剪: ffmpeg -threads 2 -i xxx.mp4 -ss 00:00:20 -t 20 out.mp4
原mp3文件裁剪: ffmpeg -i source_mp3.mp3 -ss 00:01:12 -t 00:01:42 -acodec copy output_mp3.mp3
音视频合成命令 ffmpeg -i video2.avi -i audio.mp3 -vcodec copy -acodec copy output.avi
ffmpeg -i video2.avi -i audio.mp3 output.avi
视频转GIF: ffmpeg -i input.mov -r 10 output.gif
裁剪尺寸: 将原视频缩小一半,并裁剪画面正中的正方形区域
ffmpeg -i input.mov -vf scale=iw/2:-1,crop=ih output.mp4
scale=width:height iw/ih 表示输入宽度/高度 -1 表示按输入尺寸等比自动计算
crop=width:height❌y x:y 指定裁剪的左上角位置,默认值为 (in_w-out_w)/2 和 (in_h-out_h)/2,即输出视频为原视频的中央区域
加速/减速视频: ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5PTS[v];[0:a]atempo=2[a]" -map “[v]” -map “[a]” output.mp4
setpts=0.5PTS 中的 0.5 是视频速度放慢一半
atempo=2 中的 2 是相对应的音频速度(=1/视频速度)
音频淡入/淡出 : 前 3 秒淡入,最后 3 秒淡出
ffmpeg -i input.mov -af afade=t=in:st=0:d=3,afade=t=out:st=13:d=3 output.mov
视频截图
每秒输出一张图: ffmpeg -i input.mov -vf fps=1 -q:v 2 output%03d.png
输出第 10 秒的截图:ffmpeg -i input.mov -ss 00:00:10 -vframes 1 output.jpg
每秒截图,大小为原视频的一半,输出一张 10x3 的网格图: ffmpeg -y -i input.mp4 -vf “fps=1,scale=iw/2:-1,tile=10x3” -an output.jpg
ffmpeg -y -i record.mp4 -ss 1:00 -vframes 1 -s 1080x768 output_image/image.jpg
ffmpeg -y -i record.mp4 -s 1080x768 -vf fps=1/n output_image/image%3d.jpg
$cmd = ffmpeg -y -i record.mp4 -vf "fps=1/5,scale=iw/2:-1,tile=10x3" -an output_image/image.jpg
ffmpeg -y -i record.mp4 -s 352x240 -vf fps=1/5 -q:v 2 output_image/image%3d.jpg
水印模板
ffmpeg -y -i record.mp4 -vf "movie=d\\:mark.jpg,scale=60:-1[watermark];[in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] " output_image/output.mp4
ffmpeg -i https://www.qipa250.com/Video/qipa250.mp4 -vf “drawtext=fontfile=/data/web/qipa250/static/font/big.ttf: text=‘欢迎来到门店涨直播间’: y=h-line_h-10:x=(mod(2*n,w+tw)-tw):fontsize=34:fontcolor=yellow:shadowy=2” qipa250_wenzi.mp4
>>> 音视频开发 视频教程: https://ke.qq.com/course/3202131?flowToken=1031864
>>> 音视频开发学习资料、教学视频,免费分享有需要的可以自行添加学习交流群 739729163 领取