为文件夹中的所有视频添加水印,并仅在特定时间间隔内启用它

时间:2016-10-19 17:52:55

标签: video command-line ffmpeg

我正在制作一个批处理文件,使用FFMPEG将我的所有视频水印在水印中,我必须将水印放置在视频持续时间的1/3处,我目前有这个,它单独工作但是我似乎不能使它适用于整个文件夹,我做错了什么?另外,有没有办法多次启用水印?一次是持续时间的1/3,另一次是持续时间的2/3。

@echo off
setlocal
for %%I in ("%~dp0\water\*.mp4") do (
   for /F "delims=" %%I in ('ffprobe.exe -v error -show_entries format^=duration -of default^=noprint_wrappers^=1:nokey^=1 %%I.mp4 2^>^&1') do set "duration=%%I"
   'ffmpeg.exe -i "%%I" -i Watermark.png -filter_complex "[0:v]scale=iw:ih[v0];[1:v][v0]scale2ref=iw/6:ih/10[logo][0v];[0v][logo]overlay=W-w-3:H-h-3:enable='between(t,%duration%/3,(%duration%/3)+2)'[v]" -map "[v]" -map 0:a -codec:v libx264 -preset ultrafast -crf 23 -codec:a copy "%~dp0\out\%%~nI.mp4"'
)
endlocal
pause

非常感谢我在这些日子里得到的所有帮助,这确实帮助我改进了,尽管我还有很长的路要走。

2 个答案:

答案 0 :(得分:2)

基于区间的水印是固定的,只在批处理模式下需要吗?您也可以将视频保留为原始格式,然后使用动态水印为其提供服务(如果您需要在不同的时间间隔内应用水印,不同的水印操作等,这将非常有用。

例如,以下URL将采用原始视频dog.mp4并在3个时间间隔内应用水印cloudinary_icon作为叠加:2-4秒,6-8秒,10-12秒。水印在每个间隔中应用不同的不透明度设置 - 20%,40%,60%(o_20,o_40,o_60)。

http://res.cloudinary.com/demo/video/upload/l_cloudinary_icon,so_2,eo_4,o_20/l_cloudinary_icon,so_6,eo_8,o_40/l_cloudinary_icon,so_10,eo_12,o_60/dog.mp4

答案 1 :(得分:0)

我找到了解决方案,语法必须得到纠正,所以我将所有内容拆分成最小的组件,然后将它们分开工作,然后将它们连接在一起,文件夹处理有一个问题,提示就是& #34; ' ",这只是关注CMD显示的错误。