ffmpeg 水印问题

本文介绍了使用ffmpeg添加水印的两种方法,包括命令行参数和滤镜使用。同时,针对在Visual Studio 2010下移植ffmpeg时遇到的水印花屏问题进行了分析,问题源于AVFilterPad_vf_overlay_input结构初始化错误。此外,讨论了如何实现水印的透明效果、支持JPEG以及处理movie形式水印在Windows路径下的问题。

一、ffmpeg添加水印的2中方式:

fmpeg -y -i demo.3gp -i icon-72.png -filter_complex overlay=10:10 -vcodec li

bx264 -acodec copy -strict -2 merge.3gp
或者 

ffmpeg -i input  -vf 'movie=long.png[logo];[in][logo]overlay=10:10[out]' output


二、VS2010版本出现水印花屏问题:原因是因为vf_overlay.c文件移植到vs时,AVFilterPad_vf_overlay_input结构的初始化最后一位书写错误。


三、透明:使用png可以达到透明的效果


四、如何支持JPEG:allcodec.c文件中确保    REGISTER_ENCDEC (MJPEG,             mjpeg);确保是打开的,并添加mjpegdec.c/jpegls.c等文件到工程。


五、movie形式如何支持windows盘符:如果写成ffmpeg -i input  -vf 'movie=d:/long.png[logo];[in][logo]overlay=10:10[out]' output, 由于avfilter.c文件的process_options函数

    解析时将":"当作是分隔符,所以解析文件名失败,认为文件名只是d,而不是d:/long.png,导致水印失败。

    解决方法:

  char* pairs_sep = ":";

//ret = av_opt_get_key_value(&args, "=", ":",
if(ctx->filter && !strcmp(ctx->filter->name, "movie"))
{
pairs_sep = "="; //"movie=d:/icon-72.png[logo]
}
ret = av_opt_get_key_value(&args, "=", pairs_sep,
                                   shorthand ? AV_OPT_FLAG_IMPLICIT_KEY : 0,
                                   &parsed_key, &value);

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值