gpt4 book ai didi

FFMPEG 用 alpha channel 透明度替换黑色片段

转载 作者:行者123 更新时间:2023-12-04 23:14:57 26 4
gpt4 key购买 nike

我有 file.mov视频。它有许多具有不同持续时间的空白黑色片段。

我需要用透明度替换显示超过 5 秒的黑色片段。是否可以为此添加一些 alpha channel ?

评论 Mulvya 的回答:

惊人的解决方案。使用#2 部分一切正常。

在#1 部分,我创建了以下代码:

output=$(ffprobe -f lavfi -i "movie=file.mov,blackdetect=d=3.5" -show_entries tags=lavfi.black_start,lavfi.black_end -of compact=p=0 -v 0|awk '!/^$/')
echo $output

使用 awk '!/^$/'删除空行。

这是我得到的输出:

output
tag:lavfi.black_start多次重复相同的值,没有正确的结构关闭 tag:lavfi.black_end
如果我改变 blackdetect=d=3.5为其他值,例如 d=10 ,它输出与 d=3.5 相同的结果.我怎样才能正确地解决这个问题 tag:lavfi.black_start , tag:lavfi.black_end具有正确 grepping 的合成器 d=值(value)?

最佳答案

#1 运行 blackdetect 以识别片段

ffprobe -f lavfi -i "movie=file.mov,blackdetect=d=3.5" -show_entries tags=lavfi.black_start,lavfi.black_end -of compact=p=0 -v 0

编辑 :由于过滤器的怪癖,必须使用 ffmpeg 来获取此数据

下面的命令将数据保存到文本文件中。
ffmpeg -f lavfi -i movie=file.mov,blackdetect=d=3.5,metadata=print:file=- -f null - -hide_banner -v 0 | grep lavfi > times.txt 

这将打印一组持续至少 3.5 秒的黑色段时间码。

#2 添加 alpha 并将片段的 alpha 更改为 0
ffmpeg -i file.mov -vf format=rgba,colorchannelmixer=aa=0:enable='between(t,12.4,16.1)+between(t,55.1,60.0)+between(t,62.9,69.2)' -c:v libvpx-vp9 -crf 10 -b:v 0 out.mkv

在每个 between 表达式中是黑色片段的开始时间和结束时间,以秒为单位。

如果要将结果保存到文件中,则需要选择支持 alpha 的编解码器,如上述命令中的编解码器。如果您的文件已经有 alpha,请跳过格式过滤器。

关于FFMPEG 用 alpha channel 透明度替换黑色片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48040320/

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