FFmpeg添加日期水印未调用系统西班牙语区域设置的问题求助
FFmpeg添加日期水印未调用系统西班牙语区域设置的问题求助
我的系统区域设置已经配置为西班牙语,执行
date命令能正确输出西语格式的日期:❯ date mié 19 abr 2023 09:10:02 CEST但用FFmpeg的
drawtext滤镜添加日期水印时,命令如下:ffmpeg -i video.mp4 -filter_complex "drawtext=fontfile=/path/to/font.ttf:text='%{localtime\:%d %B %Y}':x=10:y=10:fontsize=30:fontcolor=white@0.8" -codec:a copy video_with_watermark.mp4水印却显示成英文格式的
19 April 2023,怎么才能让FFmpeg使用系统的西班牙语区域设置,或者直接在命令里指定区域呢?
这是因为FFmpeg的drawtext滤镜默认不会自动继承系统的LC_TIME环境变量,你可以试试以下两种实用的解决办法:
方法一:临时指定环境变量再执行命令
在FFmpeg命令前加上LC_TIME=es_ES.UTF-8,让进程启动时直接使用西班牙语的时间区域设置:
LC_TIME=es_ES.UTF-8 ffmpeg -i video.mp4 -filter_complex "drawtext=fontfile=/path/to/font.ttf:text='%{localtime\:%d %B %Y}':x=10:y=10:fontsize=30:fontcolor=white@0.8" -codec:a copy video_with_watermark.mp4
方法二:直接在drawtext滤镜中指定locale参数(FFmpeg 4.0+支持)
如果你的FFmpeg版本是4.0及以上,可以直接在滤镜里添加locale参数,显式指定西班牙语区域,不用修改全局环境变量:
ffmpeg -i video.mp4 -filter_complex "drawtext=fontfile=/path/to/font.ttf:text='%{localtime\:%d %B %Y}':x=10:y=10:fontsize=30:fontcolor=white@0.8:locale=es_ES.UTF-8" -codec:a copy video_with_watermark.mp4
这两种方法都能让%B占位符输出西班牙语的月份名称(比如abril),和你系统date命令的输出格式保持一致。
备注:内容来源于stack exchange,提问作者Alpha75
相关产品推荐
相关产品推荐

