[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助批处理批量视频转GIF哪里不对?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set ffmpegPath=D:\ffmpeg-master-latest-win64-gpl-shared\bin\ffmpeg.exe[quote]软件路径[/quote]
  4. set inputFolder=%~dp0
  5. set outputFolder=%inputFolder%GIFs
  6. if not exist %outputFolder% mkdir %outputFolder%
  7. for %%i in (%inputFolder%.mp4) do (
  8.     echo Converting %%i...
  9.     %ffmpegPath% -i %%i -ss 000000 -t 000500 -vf scale=320-1flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse %outputFolder%%%~ni.gif
  10.     echo Converted %%i to %outputFolder%%%~ni.gif
  11. )
  12. echo All MP4 files have been processed.
复制代码

试试将12行滤镜链里的
  1. scale=320-1flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse
复制代码
换成
  1. "scale=320:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse[out]" -map "[out]"
复制代码

TOP

稍微调整了下,在我这可以转换gif文件。320的图太小了,换成了720。楼主试试看吧
  1. @echo off
  2. color 3f
  3. title FFmpeg批量视频转GIF
  4. setlocal enabledelayedexpansion
  5. set ffmpegPath=D:\ffmpeg-master-latest-win64-gpl-shared\bin\ffmpeg.exe&rem 软件路径
  6. set inputFolder=%~dp0
  7. set outputFolder=%inputFolder%GIFs
  8. if not exist "%outputFolder%" mkdir "%outputFolder%"
  9. for %%i in ("%inputFolder%*.mp4") do (
  10.     echo 转换【%%~ni.mp4】...
  11.     if exist "%outputFolder%\%%~ni.gif" echo.&echo ---注:视频已有GIF文件,程序退出!--- &goto end
  12.     "%ffmpegPath%" -i "%%i" -y -ss 000000 -t 000500 -vf scale=720:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse "%outputFolder%\%%~ni.gif">nul 2>nul
  13.     echo.&echo 已转换 "%%~ni.mp4" to "%%~ni.gif"
  14. )
  15. echo.&echo 所有 MP4 文件均已处理。
  16. :end
  17. TIMEOUT /T 5 /NOBREAK
  18. exit
复制代码

TOP

返回列表