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


0

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

Answers:


2

通过逗号分隔将额外的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"

谢谢,但我想让FFMPEG自我引用它正在处理的文件 - 而不将它作为参数传递给命令行。那可能吗?
Taapo

1
如果碰巧在视频元数据中,您可能会得到它 text=%{metadata\:filename} (或类似的)但传递已知的文件名参数更有可能工作。 ffmpeg.org/ffmpeg-filters.html#toc-drawtext-1
user3770489

0

不太晚,但不得不做类似的事情,所以我会在这里分享。

它基于'user3770489的第一个答案,添加了自动文件名插入,但仍然使用命令行的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}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.