正如标题所说,我想将一些 PGS 字幕刻录到视频中,但它们的输出位置错误。
ffmpeg 命令:
ffmpeg -y -report -ss 5 -t 5 -i input.mkv -filter_complex "[0:v:0][0:s:0]overlay[o]" -map "[o]" output.mp4
可能相关的是 ffmpeg 打印此警告的次数非常多:
[来自流 0:3 @ 0000022f59d36180 的图 0 输入] 过滤器上下文 - w:1424 h:1080 fmt:28,传入帧 - w:1920 h:1080 fmt:28 pts_time:4.523 [来自流 0:3 @ 0000022f59d36180 的图 0 输入] 并非所有过滤器都支持动态更改视频帧属性。
视频尺寸为 1424x1080。添加后-canvas_size 1920x1080
警告消失,但字幕出现在错误的 X 位置和 Y 位置。我不明白为什么这会让警告消失,为什么-canvas_size 1424x1080
什么都不做。
使用overlay=y=H-h
没有效果,据我所知,它认为视频和字幕流的高度是相同的。
当我刻录基于图像的字幕时,通常不会发生这种情况。
我已将日志文件放在 pastebin 上,因为尽管 ffmpeg 标签页面说将日志文件放在问题中,但这样做会使我的字符数超出 3 倍:https://pastebin.com/LVV3J4Xd
答案1
也许您可以使用此过滤器自动调整视频流的基于图像的字幕大小,以避免遇到覆盖过滤器问题:
对于我自己来说,有用的代码如下:
"[0:s:7][0:v]scale2ref[sub][vid];[vid][sub]overlay=shortest=1[out]"