我需要剪切MP4视频.开头的一部分和批处理的一部分

Eri*_*nde 5 video ffmpeg batch-file batch-processing

我有几个培训视频.所有.MP4s.

我想从开头删除3.5秒,从整个文件夹末尾删除4.5秒......

我知道ffmpeg和ffprobe - 但我对它们的了解和掌握都是有限的.

有人可以提供一个脚本,或者,至少一个程序,这将使我这么容易?我一直在搜索,每次都达到死胡同或者无效的脚本.

我也愿意使用Linux/Windows而不是mac.

编辑:第一部分完成.将继续学习这个命令以便学习批处理; 这是一个简单的部分,如何批量修剪整个MP4文件夹:

for %%a in ("*.mp4") do ffmpeg -i "%%a" -ss 00:00:03.5 -vcodec copy -acodec copy "newfiles\%%~na.mp4"

pause
Run Code Online (Sandbox Code Playgroud)

Eri*_*nde 6

我非常感谢大家鼓励我继续寻找,我找到了一个完美的解决方案.这里是.我担心即使在评论中给出的例子也没有提到我,但我仍然会尝试阅读并教育自己这些命令是如何工作的.再次感谢.更换8.25(端部修剪)和4.25(开始修剪)并更改值,直到您对输出满意为止.

@Echo Off
SetLocal
Set "ext=mp4"
Set "opts=-v quiet"
Set "opts=%opts% -print_format "compact=print_section=0:nokey=1:escape=csv""
Set "opts=%opts% -show_entries "format=duration""
If Exist *.%ext% (If Not Exist "Trimmed\" MD Trimmed)
For %%a In (*.%ext%) Do Call :Sub "%%~a"
Exit/B

:Sub
For /f "Tokens=1* Delims=." %%a In (
    'FFProbe %opts% %1') Do (Set/A "ws=%%a-8.25" & Set "ps=%%b")
rem If %ws% Lss 20 GoTo :EOF
Set/A hh=ws/(60*60), lo=ws%%(60*60), mm=lo/60, ss=lo%%60
If %hh% Lss 10 Set hh=0%hh%
If %mm% Lss 10 Set mm=0%mm%
If %ss% Lss 10 Set ss=0%ss%
FFMpeg -i %1 -ss 00:00:04.2500 -to %hh%:%mm%:%ss%.%ps:~,3% -c:v copy -c:a copy "Trimmed\%~1"
Run Code Online (Sandbox Code Playgroud)