我正在使用 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
非常感谢这几天给我的所有帮助,它确实帮助我提高了,尽管我还有很长的路要走。
最佳答案
基于间隔的水印是否固定且仅在批处理模式下需要?您也可以将视频保留为原始格式,然后使用动态水印为它们提供服务(如果您需要在不同的时间间隔、不同的水印操作等期间应用水印,这尤其有用。
例如,以下 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
关于video - 为文件夹中的所有视频添加水印并仅在特定时间间隔内启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40138375/