Batch file Ffmpeg-感叹号停止水印

Batch file Ffmpeg-感叹号停止水印,batch-file,ffmpeg,watermark,ffprobe,Batch File,Ffmpeg,Watermark,Ffprobe,我正在使用以下代码自动为文件夹中的视频添加水印: for %%a in ("C:\Users\Work\Desktop\Redo\*.mp4") do ( for /F "delims=" %%I in ('ffprobe -v quiet -show_entries stream^=width -of csv^=p^=0:s^=x %%a') do set "codec=%%I" ffmpeg -i logo.png -y -v quiet -vf scale=!codec!*0.

我正在使用以下代码自动为文件夹中的视频添加水印:

for %%a in ("C:\Users\Work\Desktop\Redo\*.mp4") do (
   for /F "delims=" %%I in ('ffprobe -v quiet -show_entries stream^=width -of csv^=p^=0:s^=x %%a') do set "codec=%%I"
   ffmpeg -i logo.png -y -v quiet -vf scale=!codec!*0.25:-1 scaled.png
   ffmpeg -i "%%a" -vf "movie=scaled.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h [out]" "C:\Users\Work\Desktop\Redo Done\%%~na.mp4"
)
一些视频无法嵌入水印,并出现以下类似错误:

C:\Users\Work\Desktop\Redo\Arcade_h-overlay_h [out]: No such file or directory
我发现所有的视频都有感叹号(!),名字是“做这个”

如何在标题中使用感叹号将这些视频添加到水印?

setlocal disabledelayedexpansion
对于“%C:\Users\Work\Desktop\Redo\*.mp4”中的%%a,请执行以下操作(
对于/F“delims=”%%I in('
ffprobe-v quiet-show_entries stream^=width-of csv^=p^=0:s^=x“%%%a”
""做"(
ffmpeg-i logo.png-y-v quiet-vf scale=%%i*0.25:-1 scaled.png
ffmpeg-i“%%a”-vf”movie=scaled.png[watermark];[in][watermark]overlay=10:main\u h-overlay\u h[out]“C:\Users\Work\Desktop\Redo Done\%%~na.mp4”
)
)
当延迟扩展激活时,展开可替换参数的
时,感叹号将丢失。因为您只使用延迟扩展来检索
编解码器
值,所以不要这样做,您不需要它。变量中的值已经作为
的可替换参数可用,因此,只需将ffmpeg命令放在的第二个
中,并直接使用检索到的值即可