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

标签 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

非常感谢这几天给我的所有帮助,它确实帮助我提高了,尽管我还有很长的路要走。

最佳答案

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

例如,以下 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/

相关文章:

batch-file - 如何使用 ffmpeg 批量转换文件?

带有 gnuplot : only one cruve plotted in an animation whereas 2 expected 的动画

video - 在 Linux 上将动画 gif 转为 avi

video - 将格式转换为 .mp4 时无法播放此视频

android - FFmpeg 错误 : Unable to find a suitable output format for ''

node.js - 如何从 node.js 写入 System.in?

command-line - PHPUnit 只能从命令行运行。为什么?

ffmpeg 使用 rtmp 无限流式传输音频和视频

audio - Cobalt raspi-2_gold 无法播放视频

firefox - 从命令行,如何知道 windows/linux 中安装了哪个 Firefox 版本?