视频加水印

AviSynth+ffmpeg转换3GP为LFV加水印

之前的转换用的是mencoder进行非FLV格式到FLV格式的转换,感觉比FFMPEG支持的格式多的多,当然这里的版本是直接从官方下载的,我自己对编译不懂也没有时间去学,毕竟视频方面的知识比较深一时也是学不来的。

前天测试告诉我mencoder转换3gp后声音消失了,多试了几次果然是这样,baidu和google两处搜了N久楞是没有找到答案。后来用FFMPEG进行转换,声音还算可以,于是打算遇到3GP转FLV的时候,就用FFMPEG进行转换,只是FFMPEG不支持加水印的功能。后来重点就是去找给FFMPEG加水印的方法,还好,之前一直没有引起注意的AVS(AviSynth的简称)这时候才露出光芒来。通过它就可以支持FFMPEG调用水印,这样以来支持的水印表现形式也比mencoder只能用srt丰富的多。

下面将这两天从网上东拉西撤的代码做个备忘。
-------------------------------------------------------------------------------------------------————————AviSynth部分
video = DirectShowSource("F:/work/sy/cgp/dknz.3gp",15).BilinearResize(320,240)
logo = ImageSource("bzhe.jpg") //被遮罩的图片
logomask = ImageSource("zhe.jpg")//遮罩图片
overlay(video,logo,mask=logomask)
-------------------------------------------------------------------------------------------------————————ffmpeg部分
cd
ffmpeg.exe -i *.avs -ab 56 -ar 22050 -b 500 F:/work/sy/cgp/dknzs.flv
pause
//为了方便使用这里将FFMPEG部分做成批处理了。
-------------------------------------------------------------------------------------------------————————备注
使用到的软件:AviSynth_260402、ffmpeg
插件:从暴风影音取过来的VSFilter.dll文件。
---------------------------------------------------------------------------------------------------------------------------
当没有安装暴风影音的时候竟然不能成功转换,回头看看具体问题。
测试期间给ffmpeg加了-sameq这个参数。是按照原视频的质量进行转换的,速度倒是挺可以,质量也比不用
-sameq参数生成的马赛克效果强的多,甚至将原来小尺寸放大后依然是清晰的,
不过代价是生成的文件大的超互想象。

FFmpeg MEncoder FLV 3GP FlvMdi Avisynth 加水印参数

Mencoder 转 flv
mencoder -ffourcc FLV1 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -of lavf -oac mp3lame -lameopts aq=9:cbr:br=64:vol=2 -ovc lavc -lavcopts vcodec=flv:vbitrate=200:acodec= mp3:abitrate=56 -vf scale=320:270,expand=320:270:::1,crop=320:270:0:0 -ofps 18 -srate 22050 input.xxx -o output.flv

Mencoder 转 avi
mencoder.exe -oac mp3lame -lameopts aq=7:cbr:br=64 -srate 32000 -vf scale=220:176 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vbitrate=320 "input.xxx" -o "output.avi"
mencoder ../v/wmv.wmv -o ../v/wmv-3.flv -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3

mencoder -oac mp3lame -lameopts aq=7:cbr:br=64 -srate 32000 -vf scale=220:176 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vbitrate=320 "input.xxx" -o "output.avi"

mencoder -oac mp3lame -lameopts aq=7:cbr:br=64 -srate 22050   -vf scale=320:-3 -ovc xvid -xvidencopts bitrate=600     "wmv.wmv" -o "wmv.avi"

mencoder -oac lavc -lavcopts acodec=mp2:abitrate=64 -srate 22050   -vf scale=320:-3 -ofps 15 -ovc xvid -xvidencopts bitrate=400   rmvb.rmvb -o rmvb.avi

mencoder 1.rmvb -oac mp3lame -lameopts preset=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o rmvb.avi

RMVB转FLVCODE
mencoder -vf scale=320:240 -ffourcc FLV1 -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -ovc lavc -lavcopts vcodec=flv:vbitrate=200 -srate 22050 -oac lavc -lavcopts acodec=mp3:abitrate=56 ok/1.rmvb -o ok/rmvb.flv

利用ffmpeg的这两个参数,可以控制让ffmpeg来将一个大video劈分成许多小段的独立播放的 文件
-ss time_off        set the start time offset
-t dur ation       set the recording time

Mencoder截段参数:
-ss 0
-endpos 120

FFmpeg 转 3gp:
ffmpeg -y -i **.** -ac 1 -acodec amr_nb -ar 8000 -ab 24 -s 128x96 [-vcodec mpeg4] -b 40k -r 8 **.3gp

FFmpeg 转 flv:
ffmpeg -i inputfile.xxx -ab 56 -ar 22050 -qmin 2 -qmax 16 -b 320k -r 15 -s 320x240 outputfile.flv

FFmpeg截图参数
对视频文件截图:
ffmpeg -i xxx.xxx -y -f image2 -ss 8 -t 0.001 -s 350x240 xxx.jpg

对已有flv截图:
ffmpeg -i xxx.flv -y -f image2 -ss 8 -t 0.001 -s 350x240 xxx.jpg

把视频的前30帧转换成一个Gif :
ffmpeg -i xxx.xxx -vframes 30 -y -f gif xxx.gif

截取从10秒开始持续10秒的片段

FFmpeg 加水印 参数:
ffmpeg -i inputfile.xxx -tagpict ":220:210" -ab 56 -ar 22050 -qmin 2 -qmax 16 -b 320k -r 15 -s 320x240 outputfile.flv

水印参数说明:
-tagpict ":220:210"
(在ffmpeg所在目录中寻找0002.mjpg、mask.mjpg两个用作水印处理的图片文件,然后在指定的坐标,比如此处的:220:210,把水印在转码过程中添加到视频文件的每一桢上)

AviSynth加水印:
首先ffmpeg/Mencoder编译时需要--enable-avisynth;
转换参数:ffmpeg -y -i 1.avs -b 320k rmvb-avs.flv
1.avs编写格式:
video = DirectShowSource("rmvb.rmvb",15).BilinearResize(320,240)
logo = ImageSource("logo2.jpg")
logomask = ImageSource("mask2.jpg")
overlay(video,logo,mask=logomask)


mencoder 转 flv 同时加字幕水印

试了一下,可以加进去,但有些参数还设置不好.比如 中文的字幕只显示成"_____",文件的各项设置
cd mencoder
mencoder ../file/test.mov -o ../flv/zbzbzb.flv -of lavf -oac mp3lame -lameopts abr:br=56
-ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:v4mv:last_pred=3 -subpos 5 -subfont
-text-scale 10 -unicode -font c:/arial.ttf -sub ../file/test.srt -lavfopts
i_certify_that_my_video_stream_does_not_use_b_frames -srate 22050
pause

上面是在一个批处理文件中执行的,所以写成这样子

subpos 是说明字幕的位置:垂直方向上越大越靠下,水平方向的参数我没找到,最小0,最大100
subfont-text-scale 设置字体的大小
-unicode 文字编码方式,其他的没试过
-font 字体文件
-sub 你的字幕文件
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FFmpeg是一个开源的跨平台音视频处理工具,可以用于水印水印是指在视频中添一些文字、图片或者其他图形元素,用于标识、保护版权或者增美观度。 下面是使用FFmpeg给视频水印的步骤: 1. 下载和安装FFmpeg:你可以从FFmpeg官方网站(https://ffmpeg.org/)下载适合你操作系统的版本,并按照官方文档进行安装。 2. 准备水印素材:你可以准备一张图片作为水印,也可以使用文字作为水印。如果使用图片作为水印,建议使用透明背景的PNG格式图片。 3. 构建FFmpeg命令:打开命令行终端,输入以下命令来给视频水印: ``` ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=W-w-10:H-h-10" output.mp4 ``` 其中,`input.mp4`是输入视频文件的路径,`watermark.png`是水印图片的路径,`output.mp4`是输出视频文件的路径。`overlay=W-w-10:H-h-10`表示将水印放置在视频右下角,距离右边和底部各10个像素。 如果要使用文字作为水印,可以使用`drawtext`滤镜,例如: ``` ffmpeg -i input.mp4 -vf "drawtext=text='Watermark':x=10:y=10:fontsize=24:fontcolor=white" output.mp4 ``` 其中,`text='Watermark'`表示水印文字内容,`x=10:y=10`表示水印的位置,`fontsize=24`表示字体大小,`fontcolor=white`表示字体颜色为白色。 4. 执行命令:在命令行中执行构建好的FFmpeg命令,等待处理完成。 请注意,以上命令只是示例,你可以根据实际需求调整参数和选项。FFmpeg具有丰富的功能和选项,可以满足不同的视频处理需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值