惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 至尊龙骑

C# 使用FFmpeg 命令录音录像时设置 水印以及水印位置 C# 使用FFmpeg 命令 水印以及水印位置 录音录像时设置分辨率-分辨率一般是宽高比是 4:3 和16:9 少数是 5:4 C# 中监听 IPv6 回环地址----HttpListener C# 中监听 IPv6 回环地址(Loopback Address)----socket和tcp IPv6 地址 后端设置了跨域但是还是提示跨域问题,原因是这里有两个独立的安全策略在起作用:Chrome和Edge浏览器安全策略强制修改方案 开放所有跨域 ----前端和后端 Win11 上遇到的 WinForm 文件拖拽功能失效,但在 Win10 或其他系统上正常的问题 设置iis的后缀名可以下载 linux执行systemctl enable redis.service 报 Failed to execute operation: Bad message linux redis 8.2.1软件开机启动redis.service与etc下的rc.local配置2种方式 Linux redis 8.2.1源码编译 Linux开机启动设置全攻略 Linux 设置nginx 以及java jar自启动 Linux系统简单源码安装NGINX版本1.28.0 DistributedLock 实现.Net分布式锁 Windows 10\11 离线安装.NET Framework 3.5(包括.NET 2.0和3.0) - 至尊龙骑 跨域处理 utools无法搜索快捷方式和部分软件问题
FFmpeg 命令 水印以及水印位置 FFmpeg 命令录音录像时分辨率 FFmpeg 查看分辨率以及指定分辨率
至尊龙骑 · 2026-03-05 · via 博客园 - 至尊龙骑
### FFmpeg 命令 水印以及水印位置  FFmpeg 命令录音录像时分辨率 FFmpeg 查看分辨率以及指定分辨率
```
1、FFmpeg 命令 水印 以及水印位置
水印时间---有双引号
string vf = $"drawtext=fontsize=56:x=100:y=100:fontcolor=red:text=\"{text}\"";//整个 -vf 参数值用 \"...\" 包裹(因为含 : 和 =)
要在 FFmpeg 的 drawtext 滤镜中将文字居中显示在视频正中心,不能使用固定的 x = 100:y = 100,而应使用 动态表达式,基于视频的宽度(w)和高度(h)以及文本自身的尺寸(text_w, text_h)来计算位置。
居中文本(水平 + 垂直居中)drawtext=fontsize=56:fontcolor=red:text='你的文字':x=(w-text_w)/2:y=(h-text_h)/2
参数说明:
| 表达式 | 含义 |
| --------| ------|
| `w` | 视频宽度(pixels) |
| `h` | 视频高度(pixels) |
| `text_w` | 当前文本渲染后的宽度 |
| `text_h` | 当前文本渲染后的高度 |
| `(w - text_w) / 2` | 水平居中:左边距 = (总宽 - 文字宽) ÷ 2 |
| `(h - text_h) / 2` | 垂直居中:上边距 = (总高 - 文字高) ÷ 2 |

其他常见居中需求
| 需求 | 表达式 |
| ------| --------|
 | 水平居中,顶部对齐 | `x = (w - text_w) / 2:y = 0` |
| 水平居中,底部对齐 | `x = (w - text_w) / 2:y = h - text_h` |
| 垂直居中,左对齐 | `x = 0:y = (h - text_h) / 2` |
| 垂直居中,右对齐 | `x = w - text_w:y = (h - text_h) / 2` |
| 带边距的居中(如上下留 50px) | `x = (w - text_w) / 2:y = (h - text_h) / 2 - 50` |

⚠️注意事项
必须指定字体(可选但推荐)
默认字体可能不支持中文或样式不一致,建议指定:

:fontfile =/ path / to / arial.ttf
Windows 示例:

:fontfile = C\\:/ Windows / Fonts / arial.ttf
中文显示为方框?
确保字体支持中文(如 msyh.ttc 微软雅黑)
路径中的 \ 要转义为 \\ 或 /

: fontfile = C\\:/ Windows / Fonts / msyh.ttc
实时流(dshow)中 text_w/ text_h 可能延迟生效
在录制开始的前几帧,文本尺寸可能未计算完成,导致短暂偏移(通常 1~2 帧后正常)。
✅ 最终命令示例(完整)

ffmpeg -rtbufsize 200M -f dshow -i video="..." -f dshow -i audio="..." \
  -pix_fmt yuv420p -tune zerolatency -ac 1 -ar 8000 -ab 44100 \
  -vf "drawtext=fontsize=56:fontcolor=red:text='2026-03-04 14:30:00':x=(w-text_w)/2:y=(h-text_h)/2" \
  -y output.mp4
这样文字就会完美居中在视频画面中央!

2、FFmpeg 命令录音录像时分辨率
FFmpeg 命令录音录像时候是没有固定“默认”分辨率!它完全取决于你的 DirectShow 视频采集设备(摄像头)的当前输出格式。
🔍 详细解释
- f dshow 表示使用 Windows 的 DirectShow 接口采集音视频。
FFmpeg 不会自动设置分辨率,而是直接使用设备当前激活的媒体类型(media type)中的分辨率。
常见情况:
表格
设备类型    可能的默认分辨率
笔记本内置摄像头    640x480(VGA)、1280x720(HD)
USB 摄像头 640x480、1280x720、1920x1080(取决于驱动和设备能力)
虚拟摄像头(OBS - VirtualCam 等)    用户自定义(如 1920x1080)
⚠️ 同一个摄像头,在不同软件中可能输出不同分辨率(因为每个软件会请求不同的格式)。
                ✅ 如何查看你的设备实际输出的分辨率?

FFmpeg 查看分辨率以及指定分辨率---分辨率一般是宽高比是 43 和16:9 少数是 54

方法 1:运行 FFmpeg 并观察日志
ffmpeg -f dshow -i video="你的摄像头名称" -t 1 -f null -
在输出中查找类似:
Input #0, dshow, from 'video=Integrated Camera':
  Duration: N/A, start: 12345.678901, bitrate: N/A
    Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), **1280x720**, 30 fps...
→ 这里 1280x720 就是当前使用的分辨率。

方法 2:列出设备支持的所有分辨率
ffmpeg -list_options true -f dshow -i video="你的摄像头名称"
输出示例:
DirectShow video device options
 Pin "Capture"
    pixel_format=yuyv422  min s=640x480 fps=5 max s=640x480 fps=30
    pixel_format=yuyv422  min s=1280x720 fps=5 max s=1280x720 fps=30
    pixel_format=mjpeg     min s=1920x1080 fps=5 max s=1920x1080 fps=30
✅ 如何强制指定分辨率?
在 -i 参数前使用 -video_size:
ffmpeg -f dshow -video_size 1280x720 -i video="摄像头名" ...
支持的值必须是设备实际支持的分辨率,否则会报错。
📌 回到你的 drawtext 居中问题
✅ 你写的:
x=(w-text_w)/2:y=(h-text_h)/2
是完全正确的,无论分辨率是 640x480 还是 1920x1080,文字都会自动居中。
因为:
w = 实际视频宽度(如 1280)
h = 实际视频高度(如 720)
text_w, text_h = 文字渲染后的像素尺寸
所以 无需知道具体分辨率,表达式会自动适配!
✅ 建议:在录制时显式指定分辨率(避免意外)
ffmpeg -rtbufsize 200M \
  -f dshow -video_size 1280x720 -framerate 30 -i video="..." \
  -f dshow -i audio="..." \
  -pix_fmt yuv420p -tune zerolatency \
  -ac 1 -ar 8000 -ab 44100 \
  -vf "drawtext=fontsize=56:fontcolor=red:text='2026-03-04 14:30:00':x=(w-text_w)/2:y=(h-text_h)/2" \
  -y output.mp4
这样可确保每次都是 1280x720,行为更可控。
💡 总结
表格
问题    答案
默认分辨率?    由摄像头设备决定,常见为 640x480 或 1280x720
w 和 h 是什么?    实际输入视频的宽高,自动获取
需要手动设置吗?    不需要,x=(w-text_w)/2 会自动适配任何分辨率
如何固定分辨率?    使用 -video_size 1280x720
如果你告诉我你的摄像头型号或 ffmpeg -list_options 的输出,我可以帮你确定最合适的分辨率。
```