【发布时间】:2011-03-04 06:07:41
【问题描述】:
如何在转换后的视频文件(从 avi 到 flv)上使用第二个 ffmpeg 命令添加水印?
它可以在单个命令中完成,但是,当 ffmpeg 转换视频文件时,它也会降低水印 png 图像的质量。
我现在使用的单个命令如下所示:
$ffmpeg_cmd2 = "$config[path_to_ffmpeg] -i $raw_video_path -copyts -ar 44100 -s 320x240 -vf 'movie=0:png:image/wmk.png [wm];[in][wm] overlay=10:main_h-overlay_h-10 [out]' $new_flv";
@exec("$ffmpeg_cmd2");
我想要做的是png文件的质量保持不变。我可以通过在视频转换完成后运行另一个 ffmpeg 命令来添加 vatermark 来实现吗?
第一个 ffmepg 命令完成后如何触发另一个 ffmepg 命令?
感谢所有建议。
【问题讨论】:
-
您的示例代码将无法正常工作,因为
$name[key]形式的变量在插值时需要用大括号{}括起来,例如{$config['path_to_ffmpeg']}。还要注意键名是如何被引用的;不带引号的键名不正确,而且速度也很慢。 -
@Delan Azabani - 感谢您对 Delan 的评论。此命令在我的网站上运行良好,所有 avi 文件都使用 phpmotion 脚本和此命令进行转换。
-
除非容器格式允许将未压缩的图像嵌入到单独的流中(那时不会是水印),否则没有有损压缩伪影就无法将它们合并。您将不得不提高编码质量以避免它。
-
@mario - 如何将未压缩的图像嵌入到单独的流中?
-
@Sergio。你必须发明一种支持它的容器格式。