如何仅对文件夹的最后一个文件调用 ffmpeg 命令?

如何仅对文件夹的最后一个文件调用 ffmpeg 命令?

这是我的命令,剪切视频的最后 20 秒。

ffmpeg -y -sseof -20 -i  record.mp4 -vcodec libx264 -crf 27 -preset veryfast output.mp4

它运行完美,但我希望有相同的命令,用于剪切文件夹中以 .mp4 扩展名创建的最后一个文件的最后 20 秒。如果您能帮助我,谢谢。

编辑:操作系统是 Windows

答案1

您可以尝试这个批处理文件:

@echo off
FOR /F " tokens=*" %%i IN ('dir /b/a-d/od/t:c *.mp4') DO (SET a=%%i) 
ffmpeg -y -sseof -20 -i  %a% -vcodec libx264 -crf 27 -preset veryfast output.mp4

答案2

要直接/立即获取和使用目录中的最新文件,请不要设置变量,%%i而是使用循环变量:

使用dir按命令/o:-日期d==dir /o:-d /b *.mp4

  • ffmpeg要在 bat/cmd 文件中将此文件与命令一起使用:
@echo off

cd /d "%~dp0" & for /f tokens^=* %%i in ('dir /o:-d /b *.mp4')do (
ffmpeg -y -sseof -20 -i "%%~i" -vcodec libx264 -crf 27 -preset veryfast "%~dp0output.mp4" & goto :next
)

:next
  • 在命令行中使用:
2>nul del /q /f .\output.mp4 & for /f %i in ('dir /o:-d /b *.mp4')do if not exist .\output.mp4 ffmpeg -y -sseof -20 -i "%~i" -vcodec libx264 -crf 27 -preset veryfast output.mp4
  • 如果你不再使用命令,你可以goto: EOF使用goto: Next:
@echo off

cd /d "%~dp0" & for /f tokens^=* %%i in ('dir /o:-d /b *.mp4')do (
ffmpeg -y -sseof -20 -i "%%~i" -vcodec libx264 -crf 27 -preset veryfast "%~dp0output.mp4" & goto :EOF)
) 
:next 

相关内容