我试图找出为什么使用 scale2ref 与覆盖复杂过滤器的结果会返回仅音频的 mp4 输出。
ffmpeg -i input.mp4 -i watermark.png -filter_complex "[1][0]scale2ref=w=oh*mdar:h=ih*0.1[logo][video];[video][logo]overlay=5:H-h-5" -c:a copy output.mp4
如果我删除 scale2ref 过滤器,则输出就是 mp4 视频。
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=5:H-h-5" -c:a copy output.mp4
两者之间的区别之一是输出中的这一行:
[vost#0:0/libx264 @ 0x10f605de0] No filtered frames for output stream, trying to initialize anyway.
我是 ffmpeg 的新手,如能得到任何帮助我将非常感激。
答案1
看来最新版本的 FFmpeg 中的“scale2ref”过滤器已损坏。该过滤器已被弃用。
我遇到了和你同样的问题,当我尝试了一些技巧来解决这个问题时,我得到了Assertion best_input >= 0 failed
。
这让我想到了这个问题,也让我发现了 FFmpeg 问题跟踪器中的这个问题:https://trac.ffmpeg.org/ticket/10795。
在此提交中,'scale2ref'过滤器已正式弃用:https://github.com/FFmpeg/FFmpeg/commit/95568c4e316e8f5f3252596b1f01ce1de22216b6。
根据该问题中的一些提交消息和通信,FFmpeg 开发人员计划通过添加新的参考选项“ref_w”和“ref_h”用“scale”过滤器替换“scale2ref”,以实现相同的功能。