gpt4 book ai didi

ffmpeg - 将背景转换为黑色?

转载 作者:行者123 更新时间:2023-12-04 23:35:01 31 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为 on-topic对于堆栈溢出。


20 天前关闭。







Improve this question




基本问题
如果源视频的所有帧中的所有像素的白色值低于某个阈值,则将其转换为黑色,并将结果作为一系列不透明的静态图像输出。
到目前为止我的解决方案
我可以通过两步过程做到这一点:

  • 使用 ffmpeg 的 colorkey 将低于阈值的像素转换为透明过滤器,将系列输出为PNG。
  • 使用 imagemagick 将 PNG 转换为 JPEG。

  • 这种方法很慢。理想情况下,我想在 ffmpeg 中一口气完成所有事情。
    到目前为止我无法做到这一点的原因是,当输出为 JPG 等非透明格式时,即使我尝试“丢弃”alpha 层,也不会丢弃生成的透明度(如我所愿)事先使用 split 的组合和 lutrgb ;生成的 JPEG 仍然类似于原始图像。
    我当前的过滤器链:
    ffmpeg -hide_banner -y -i input.mp4 -f lavfi -i color=c=white \
    -filter_complex "[0:v]format=gray[src];
    [1][src]scale2ref[white][vid];
    [vid][white]blend=all_mode=multiply:shortest=1,colorkey=black:0.95" %05d.png

    最佳答案

    这个答案的功劳真的应该归功于@Gyan,他上面的评论足以让我走上寻找解决方案的正确轨道。
    ' premultiply filter ' Gyan 提到的将“alpha 预乘效果”应用于您的视频。对于那些不知道什么是“阿尔法预乘效应”的人[我不知道],在我阅读的所有文章中,this one信息量最大。 ffmpeg 过滤器文档中提到的过滤器的描述,比 ffmpeg 文档通常更简洁和神秘,并没有真正解释如何使用过滤器;通过反复试验[和 qwant],我找到了最终为我完成工作的表达式:
    {...rest-of-filter-chain} ,premultiply=inplace=1"

    关于ffmpeg - 将背景转换为黑色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72630776/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com