这是我的命令,剪切视频的最后 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