video - 将透明视频合并到另一个视频时出现黑色覆盖

标签 video ffmpeg mencoder

这是我到目前为止所做的:

创建透明PNG图像的命令:

convert -size 640x480 -background transparent -fill blue \
-gravity South label:ROCK image1-0.png

创建透明视频的命令:
ffmpeg -loop 1 -f image2 -i image1-0.png -r 20 -vframes 100 \
-vcodec png -pix_fmt bgra mov-1.mov

(根据 this post ) - 我希望这个视频是 透明视频 .

用另一个视频叠加视频的命令:
ffmpeg -i final-video.mov -sameq -ar 44100 \
-vf "movie=mov-1.mov [logo];[in][logo] overlay=0:0 [out]" \
-strict experimental final-video.mov

上面的命令完美无缺,我没有遇到任何问题,但我没有得到我期望的有点像水印效果,我希望 mov-1.mov 与 final-video.mov 是透明的。

问题:
  • 有什么方法可以验证生成的视频是否透明?除了合并?
  • 不知道为什么上面的 mov-1.mov 在与 final-video.mov 合并时不透明,解决这个问题的任何信息都会很棒。

  • 请帮忙。

    最佳答案

    ImageMagick 并不总是以 FFmpeg 理解的方式生成透明 png。上次遇到这个问题时,我只能使用 GIMP 创建索引透明图像。没关系,回头看看this answer我看到我显然能够通过设置 png:color-type 以 FFmpeg 喜欢的方式使 ImageMagick 产生透明度。 .您的转换命令将变为:

    convert -size 640x480 -background transparent -fill blue \
    -gravity South label:ROCK -define png:color-type=6 image1-0.png
    

    也就是说,您不需要将图像变成自己的电影。 movie视频过滤器将接受一个透明的 png 作为输入。

    关于video - 将透明视频合并到另一个视频时出现黑色覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10948714/

    相关文章:

    Android:获取视频的所有帧(任意视频文件)

    php - 无法流式传输 FFMPEG

    ffmpeg - 扩展 + 缩放纵向视频,使纵横比保持不变,黑色边框成为视频的模糊版本

    ffmpeg - showinfo 结合 vcodec 副本

    image - 命令行视频/图像交叉淡入淡出

    javascript - 如何在javascript中从youtube获取视频数据

    ruby-on-rails - 在rails中处理后如何更新回形针视频位置

    ios - 在 iOS 上导出视频 : understanding and setting frame duration property?

    java - 重复调用终端命令的最佳方式

    video - 门编码器-> x264 : FPS problem : Video is 2x faster at the output