读书人

ffmpeg课程七使用举例水印制作

发布时间: 2012-11-18 10:51:22 作者: rapoo

ffmpeg教程七——使用举例——水印制作

1.1.1 添加水印

用in.avi作为输入视频,out.avi作为输出视频,pp.png表示要添加的水印图片,是png格式的,
  调整水印大小(scale = 50:50)和位置(overlay=0:0)
$ ffmpeg -i udp://@:10002 -b:v 2000000 -vf "movie=../a.png:f=png[logo];[in][logo]overlay=10:10 [out]" -f mpegts udp://172.30.58.87:1234

使用vf_overlay添加透明水印时,不必像使用vhook时那样,需要准备与待处理视频宽高像素值一致的图片,现在的图片可以就是一个水印的大小,通过参数来设置水印显示的位置。

位置参数的位置在 -vfilters 里面的 overlay= 的后面的前两个参数,参数之间是冒号分隔的。第一个参数是横向的间距,第二个是纵向的间距。可以结合与视频和水印相关的四个值来设置,这四个值分别是:mainW表示主视频宽度,mainH表示主视频高度,overlayW表示水印宽度,overlayH表示水印高度。这些值加在overlay参数中,ffmpeg将自动识别。

也就是说要让水印

显示在视频的左上角overlay参数为 overlay=0:0

显示在右上角为 overlay=main_w-overlay_w:0

显示在右下角为 overlay= main_w-overlay_w:main_h-overlay_h

显示在左下角为 overlay=0: main_h-overlay_h

上面的0可以改为5,或10像素,以便多留出一些空白。

用复合过滤器添加水印:

ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output

input:输入流

logo:水印文件,也可以是一个流。注意:需要编译时把相应的解码器编译。例如PNG图片。需要编译PNG解码器。Ffmpeg才能够识别图片文件,把图片做为一种流。

output:输出流

1,将H264编码的flv文件或者其他格式的文件,例如mp4,不重新编码,抽出其中的H264字节流裸流,用以下命令。该命令有几处要点。

a,vbsf为过滤方法,即将flv规定的H264组织方式转换回H264协议书规定的字节流格式

b,-an禁掉源文件中的音频,因为出来的码流不需要音频。

c,vcodec选择拷贝模式,这个是必然的。

./ffmpeg -i /home/media_data/youku.carton.flv -vcodec copy -vbsf h264_mp4toannexb -an /home/media_data/youku.carton.H264

读书人网 >其他相关

热点推荐