FFMPEG - 视频中的硬编码(刻录)文件名

FFMPEG - 视频中的硬编码(刻录)文件名

我想知道是否有人可以帮助我使用 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}

相关内容