Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is what I have so far:

for i in *.mp4; do ffprobe -show_format -i "%i"

// get duration, then need to somehow subtract 30 seconds, and marry these two commands

ffmpeg -ss 0 -i "$i" -t %duration% "${i%.mp4}-cut.mp4

I thought it would be simple, ugh.. why you no have -endtrim switch, ffmpeg? or does it? Maybe another command line one like this can?

share|improve this question
If you have found a solution to your question, please post it as an answer. – Ambo100 Apr 21 '14 at 19:38

Post on behalf of the OP who solved the problem themselves:


@echo off
for %%i in (*.mp4) do (
call _trim2.bat "%%i"


@echo off
for /f "tokens=*" %%a in ('_ffprobe -show_format -i %1 ^| find "duration"') do set _duration=%%a
set _duration=%_duration:~9%
for /f "delims=. tokens=1*" %%b in ('echo %_duration%') do set /a "_durS=%%b"
for /f "delims=. tokens=2*" %%c in ('echo %_duration%') do set "_durMS=%%c"
rem following line is seconds to cut
set /a "_durS-=30"
set "_newduration=%_durS%.%_durMS%"
set "_output=%~n1"
md _fixed
_ffmpeg -ss 0 -i %1 -t %_newduration% -c copy "_fixed\%_output%.mp4"

the processed filed will be put in .\_fixed\samename.mp4 and will all be 30 seconds shorter.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .