【问题标题】:FFMPEG - Merging Videos with TransparencyFFMPEG - 将视频与透明度合并
【发布时间】:2013-07-02 00:31:29
【问题描述】:

我正在尝试将两个视频合并在一起,都具有透明度,使用命令

ffmpeg.exe -i person2.mov -vf "[in] scale=iw/2:ih/2,fade=out:300:30:alpha=1, pad=2*iw:ih [左]; 电影=person2.mov, 比例=iw/2:ih/2,fade=out:300:30:alpha=1 [右]; [左][右] 覆盖=main_w/3:0,fade= out:300:30:alpha=1 [out]" -b:v 768k Output_people.mov

通过这样做,我得到以下输出:

http://i263.photobucket.com/albums/ii122/Fernando461/Untitled.png

如您所见,可以将两个视频放在一起。但是,当我尝试将此视频(Output_people.mov)与另一个视频合并时,它没有相同的透明度。是否可以保持结果的透明度?

编辑 1:

这是我得到的输出:https://www.dropbox.com/s/gpid1pptfio31gd/ffmpeg-20130701-193206.log

“它没有相同的透明度”是指背景是黑色而不是透明的,所以如果我将一个视频放在一起,后面的视频就会被黑色部分覆盖前面那个。

编辑 2: 将 -vcodec qtrle 添加到代码中有效。谢谢mark4o!

【问题讨论】:

  • 请显示您完整的 ffmpeg 控制台输出。 “当我尝试将此视频 (Output_people.mov) 与另一个视频合并时,它的透明度不同”是什么意思?
  • 通过“当我尝试将这个视频 (Output_people.mov) 与另一个视频合并时,它没有相同的透明度”,我的意思是没有透明度,而是我只得到一个黑色背景。
  • 当你“合并”Output_people.mov时,你还应该显示你的命令和完整的控制台输出(你可以省略-report)。
  • 我用来将两个视频合并到Output_people.mov的命令是我放在那里的,输出可以在dropbox.com/s/gpid1pptfio31gd/ffmpeg-20130701-193206.log找到
  • ...据我所知,问题出在哪里,因此需要控制台输出。

标签: video merge ffmpeg transparency alpha


【解决方案1】:

您没有为输出指定视频编解码器,因此它使用 .mov 文件的默认视频编解码器,即 H.264(libx264 编码器)。但是 H.264 不支持 Alpha 通道。如果您希望输出视频具有透明度,则需要指定支持 Alpha 通道的输出视频编解码器,例如用于输入的通道,即 QuickTime Animation RLE (qtrle)。为此,请在输出文件名之前添加选项-c:v qtrle。另一个支持 alpha 通道并可存储在.mov 文件中的编解码器是png。

您可以使用ffmpeg -encoders 查看ffmpeg 支持的编码器列表。像ffmpeg -h encoder=qtrle 这样的命令将列出特定于该编码器的信息,包括支持的像素格式。包含字符串 argb、rgba、abgr、bgra、gbra 或 yuva 的像素格式具有 Alpha 通道。

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 2016-06-13
    • 2017-02-04
    • 2017-04-15
    • 2016-01-21
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    相关资源
    最近更新 更多