如何解决MELT脚本水印功能生成中文乱码问题
MELT中文水印乱码解决办法
以下是针对MELT脚本中文水印乱码的具体解决步骤:
确保脚本与文本文件编码为UTF-8
- 保存bash脚本时选择UTF-8编码(不要带BOM);
- 检查水印文本文件(如
中文d中文的-1001.txt),同样用UTF-8无BOM格式保存,避免编码不兼容导致乱码。
设置UTF-8环境变量
在脚本开头添加编码环境变量,强制shell和MELT用UTF-8处理字符:export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8指定支持中文的字体
MELT默认字体通常不包含中文字符集,需要在watermark参数后添加font选项,指定系统已安装的中文字体(比如Noto Sans CJK SC、SimHei等,根据你的系统调整字体名称)。
修改后的完整脚本示例:
#!/bin/bash # 配置UTF-8编码环境 export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 /home/eyinhe/playback/temp/Shotcut/Shotcut.app/melt \ -profile hdv_720_25p \ colour:black out=349 length=349 \ -track \ test.mp4 in=0 out=249 -blank 0 -attach watermark:"+中文d中文的-1001.txt" font="Noto Sans CJK SC" \ test1.mp4 in=0 out=100 -blank 0 -attach watermark:"+中文d测试-1002.txt" font="Noto Sans CJK SC" \ -transition composite:25%/25%:50%x50% in=0 out=349 a_track=0 b_track=1 sliced_composite=1 \ -consumer avformat:/home/eyinhe/playback/temp/001.mp4 acodec=aac vcodec=libx264
如果问题仍存在,可以尝试将水印文本直接写入参数(适合短文本),比如:
-attach watermark:text="你的中文水印内容" font="Noto Sans CJK SC"
以此排除文本文件读取时的编码问题。
内容的提问来源于stack exchange,提问作者ddddccc
相关产品推荐
相关产品推荐

