FFmpeg —— 纯ffmpeg操作为视频添加文字水印(完美解决中文乱码,无需编译)

FFmpeg 添加中文文字水印解决方案
本博客介绍如何使用FFmpeg为视频添加文字水印,并完美解决在添加中文水印时出现的乱码问题。只需将simhei.ttf字体文件复制到FFmpeg执行文件的同一目录下即可正常显示中文。
### 三级标题:FFmpeg 添加中文水印乱码问题的解决方法 在使用 FFmpeg视频添加中文水印时,如果出现乱码,通常是因为字体文件或编码格式的问题。以下是几种有效的解决方法: #### 1. 使用支持中文的字体文件 确保使用的字体文件(如 `simhei.ttf` 或 `simsun.ttc`)是支持中文的,并且字体文件的路径是正确的。FFmpeg 的 `drawtext` 滤镜依赖于 `libfreetype` 和 `libfontconfig` 库来渲染字体,因此需要确保这些库已正确安装[^2]。 ```bash ffmpeg -i input.mp4 -vf "drawtext=fontfile=simhei.ttf:text='你好,世界':x=10:y=10:fontsize=24:fontcolor=white" output.mp4 ``` #### 2. 确保文本编码为 UTF-8 如果使用的是非 UTF-8 编码的文本,可能会导致乱码。确保传递给 `drawtext` 的文本是 UTF-8 编码格式。例如,在 C++ 代码中,可以将字符串转换为 UTF-8 编码[^2]。 #### 3. 安装中文字体和字体配置工具 在某些系统上,可能需要手动安装中文字体和字体配置工具。例如,在基于 Debian 的系统上,可以通过以下命令安装中文字体和相关工具: ```bash echo "deb http://deb.debian.org/debian bookworm contrib non-free" > /etc/apt/sources.list.d/contrib.list apt-get update apt-get install ttf-mscorefonts-installer fontconfig ``` 安装完成后,将字体文件复制到系统的字体目录并更新字体缓存: ```bash cd /usr/share/fonts cp simhei.ttf . mkfontscale mkfontdir fc-cache -fv ``` #### 4. 使用 SRT 文件添加字幕 如果通过 SRT 文件给视频添加字幕时出现乱码,可以尝试将 SRT 文件的编码转换为 UTF-8,或者在 FFmpeg 命令中指定正确的编码格式: ```bash ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt:force_style='FontName=SimHei,FontSize=24,PrimaryColour=&HFFFFFF&'" output.mp4 ``` #### 5. 检查 FFmpeg编译选项 确保 FFmpeg 是使用 `--enable-libfreetype` 和 `--enable-fontconfig` 选项编译的。如果没有启用这些选项,FFmpeg 可能无法正确渲染中文字符。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

信必诺

嗨,支持下哥们呗。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值