站长博客
站长博客随手笔记
Toggle navigation
站长博客
Home
MacOS
Database
Linux
PHP
Git
Golang
About Me
Archives
Tags
ffmpeg加水印、logo等
2021-06-08 18:52:46
793
0
0
admin
**ffmpeg添加logo** ``` ffmpeg -y -i input.mp4 -vf "movie=logo.png [logo];[in][logo] overlay=10:10 [out]" output.mp4 ``` | 输入 | logo文件 | logo位置 | 输出文件 | |--------|----------|----------|----------| | ffmpeg -y -i input.mp4 | -vf "movie=logo.png [logo];[in][logo] | overlay=10:10 | [out]" output.mp4 | ---------- ## 图片水印(需要编码,否则块效应很明显): ``` ffmpeg -y -i input.ts -c:v libx264 -b:v 4000k -c:a copy -vf "movie=marklogo.png,scale=60: 30[watermark];[in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out] " outfile.ts ``` | 输入 | 编码 | logo文件 | logo位置 | 输出文件 | |--------|----------|----------|----------| | ffmpeg -y -i input.ts | -c:v libx264 -b:v 4000k -c:a copy | -vf "movie=marklogo.png,scale=60: 30[watermark];[in][watermark] | overlay=main_w-overlay_w-10:main_h-overlay_h-10 | [out]" outfile.ts | **参数说明**: `marklogo.png`: 添加水印图像,如gitv.bmp; `scale`:水印大小,水印宽度:水印高度;此项可以省略 `overlay`:水印的位置,距离屏幕左侧的距离:距离屏幕上侧的距离; 例如: 1. 左上角:`overlay`=10:10 距离屏幕左侧和上侧的距离是10 2. 右上角:`overlay`=`main_w`-`overlay_w`-10:10 3. 左下角:`overlay`=10:`main_h`-`overlay_h`-10 4. 右下角:`overlay`=`main_w`-`overlay_w`-10:`main_h`-`overlay_h`-10 > 其中: `main_w`: 视频宽度 `main_h`: 视频高度 `overlay_w`: 水印宽度 `overlay_h`: 水印高度 ## 文字水印 ``` ffmpeg -i input.ts -c:v libx264 -b:v 4000k -c:a copy -vf "drawtext=fontsize=100:fontfile=FreeSerif.ttf:text='hello world':fontcolor=green:x=20:y=20" output.ts ``` ## 加logo ``` ffmpeg -i input.ts -i logo.png -c:v libx264 -b:v 4000k -c:a copy -filter_complex "[1:v]scale=176:144[logo];[0:v][logo]overlay=x=0:y=0" output.ts ``` ## 去logo ``` ffmpeg -i input.ts -c:v libx264 -b:v 4000k -c:a copy -vf delogo=x=1850:y=1040:w=60:h=30 output.ts ``` 其中x:距离屏幕左侧的距离 y:距离屏幕上侧的距离 w:去除区域的宽度 h:去除区域的高度 ## 多输出 ### 单输入两输出: ``` ffmpeg -y -i input.ts -c:v libx264 -b:v 4000k output1.ts -c:v libx265 -b:v 3000k output2.ts ``` 两输入两输出,一套编码参数 ``` ffmpeg -i 1.ts -i 2.ts -map 0:v -map 1:v -map 0:a -map 1:a -c:v libx264 -b:v 4000k -c:a aac -f tee "[select=\'v:0,a:0\']out1.ts| [select=\'v:1,a:1\']out2.ts" ``` 两输入两输出,两套编码参数 ``` ffmpeg -i 1.ts -i 2.ts -map 0:v -map 0:a -c:v:0 libx264 -b:v:0 4000k -c:a:0 aac -map 1:v -map 1:a -c:v:1 libx265 -b:v:1 3000k -c:a:1 aac -f tee "[select=\'v:0,a:0\']out1.ts| [select=\'v:1,a:1\']out2.ts" ``` 多屏显示(例如:四屏显示) ``` ffmpeg -i 1.ts -i 2.ts -i 3.mp4 -i 4.mp4 -filter_complex "[0:v]scale=960:540,pad=1920:1080:0:0[left];[1:v]scale=960:540[right];[left][right]overlay=960:0[up];[2:v]scale=960:540[down]; [up][down]overlay=0:540[downleft];[3:v]scale=960:540[downright];[downleft][downright]overlay=960:540;amix=inputs=4" -c:v libx264 -an out.ts ``` 遮罩 ``` ffmpeg -y -i 1.ts -c:v libx264 -b:v 4000k -filter_complex color=s=500*500:c=black@.3[vc];[0:v][vc]overlay=x=100:y=100[out] -ss 0 -to 10 -map [out] out.ts ``` 数值越大越不透明@.3@.9 ## ffmpeg视频截图命令用法 ``` ffmpeg -i input.mp4 -y -f image2 -ss 1 -t 0.001 -s 640X480 test.jpg ``` 添加Logo时,logo用全路径时需要注意使用单引号和转义符: ``` ffmpeg -y -i input.mp4 -vf "movie='D\:\path\logo.png' [logo];[in][logo] overlay=10:10 [out]" output.mp4 ```
Prev:
Flutter项目IOS真机调试及遇到的问题
Next:
Golang模板语法简明教程[新]
0
likes
793
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content