说起来这个功能确实是非常适用的,作为一名影视后期从业人员,我们经常需要输出输出输出,但是有些情况下我们只需要将成片输出一次就行,毕竟从软件里面输出是很耗费时间的一件事情,后续的东西我们完全可以在成片的基础上来操作,例如发送给客户的小样~
最近总是需要将视频压缩后发送给客户,况且不是成片所以需要添加水印,如果从新用软件再来输出一次非常耗时间,索性就折腾下FFmpeg这个水印添加功能~
"D:\Program Files\FFmpeg\bin\ffmpeg.exe" -y -i %1 -vcodec libx264 -vprofile high -preset slow -b:v 900k -maxrate 1200k -bufsize 1000k -vf scale=trunc(oh*a/2)*2:480 -threads 0 -acodec libvo_aacenc -b:a 128k %1.mp4
以上代码只是将视频输出为h.264的mp4格式。现在需要在原来的基础上为其添加水印~参考网络我们得到以下四种方式,分别是左上,右上,左下,右下。
- 旧版本使用vhook参数来实现添加水印功能,新版本一律使用-vf参数来实现且水印尺寸不能超过视频尺寸
- windows下如果使用C:\graphics\watermarklogo.png” 则必须修改为 “/graphics/watermarklogo.png”
- 使用该批处理则直接将水印放到需转换文件的目录即可
- 不能同时存在两个-vf参数,以上使用-vf scale=trunc(oh*a/2)*2:480来缩放尺寸则需要改为-s 854x480
参考代码:
REM Top left corner ffmpeg -i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:10 [out]" outputvideo.flv REM Top right corner ffmpeg -i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" outputvideo.flv REM Bottom left corner ffmpeg -i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" outputvideo.flv REM Bottom right corner ffmpeg -i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" outputvideo.flv
main_w (main video width)
main_h (main video height)
overlay_w (overlay video width)
overlay_h (overlay video hieght)
最终我们得到的代码就是
REM mp4 (H.264 / ACC) "D:\Program Files\FFmpeg\bin\ffmpeg.exe" -y -i %1 -vcodec libx264 -vprofile high -preset slow -b:v 1500k -maxrate 1200k -bufsize 1000k -s 854x480 -vf "movie=watermark.png [logo];[in][logo] overlay=main_w-overlay_w-30:main_h-overlay_h-30 [out]" -threads 0 -acodec libvo_aacenc -b:a 128k %1.mp4
文章评论
还是习惯从视频软件里面添加,edius啥的,就是edius的编码包,貌似也挺方便的
@这美 如果大批量的话你就没那么方便了!