我想知道是否有人可以帮助我使用 FFMPEG 中的 drawtext 过滤器添加硬编码文件名?
我现在可以轻松添加时间码,但我想添加当前文件的文件名。可以吗?
/usr/local/bin/ffmpeg -i "P1010377.MOV" -c:a libfaac -q:a 150 -c:v libx264 -crf:v 12 -preset:v veryslow -intra -filter:v "scale=640:-1,drawtext=fontsize=15:fontfile=/Library/Fonts/Verdana.ttf:timecode='00\:00\:00\:00':rate=25:fontsize=32:fontcolor='white':box=1:boxcolor=0x000000AA:x=10:y=10" "P1010377.MOV.MP4"
答案1
将额外的 drawfilters 添加到链中,并以逗号分隔
/usr/local/bin/ffmpeg -i "P1010377.MOV" -c:a libfaac -q:a 150 -c:v libx264 -crf:v 12 -preset:v veryslow -intra -vf "scale=640:-1, drawtext=fontfile=/Library/Fonts/Verdana.ttf:text='some filename.mp4':x=100:y=100:fontcolor='white', drawtext=fontsize=15:fontfile=/Library/Fonts/Verdana.ttf:timecode='00\:00\:00\:00':rate=25:fontsize=32:fontcolor='white':box=1:boxcolor=0x000000AA:x=10:y=10" "P1010377.MOV.MP4"
答案2
有点晚了,但必须做一些类似的事情,所以我会在这里分享。
它基于'user3770489's 第一个答案,添加了自动文件名插入,但仍然使用 shell 扩展/参数到命令行。
假设您没有对一组电影文件进行 for/while 循环,而是处理单个文件,您可以:
fn="P1010377.MOV" && /usr/local/bin/ffmpeg -i "$fn" -c:a libfaac -q:a 150 -c:v libx264 \
-crf:v 12 -preset:v veryslow -intra -filter:v \
"scale=640:-1,drawtext=fontsize=15:fontfile=/Library/Fonts/Verdana.ttf: \
text='File=[$fn] - TC=': timecode='00\:00\:00\:00': rate=25:fontsize=32: \
fontcolor='white':box=1:boxcolor=0x000000AA:x=10:y=10" \
${fn/.MOV/.MOV.MP4}