So, I was doing this:
ffmpeg -i /media/johann/5461-000B/DCIM/100MEDIA/IMAG0079.AVI -ss 00:00:00 -t 00:00:20 ~/Public/240321/240321_0079.avi ; rm /media/johann/5461-000B/DCIM/100MEDIA/IMAG0079.AVI
one at a time changing the IMAG0079 to IMAG0080 etc every time. I am sure there must be a way to perform two actions (ffmpg) and (rm) on each file in a folder. Can anyone help (For next time)
Thanks!
Use another folder instead of name
The input filename changes each time.
for i in $(find . -iname *.avi) do echo “$i” mv “$1” …/dir2/“$i” done
Almost, here is the one that worked:
for i in *.avi; do ffmpeg -i "$i" -ss 00:00:00 -t 00:00:10 ~/Public/test/${i%.*}.avi ; done
Thanks for pointing me in the right direction.
Try this:
for file in ./* do echo "$file" done
To do some substitution operation om the filename you can use Bash Parameter Expansion.
What about something like this:
for i in /media/johann/5461-000B/DCIM/100MEDIA/*.AVI; do newpath="$HOME/Public/240321/$(basename "$i" | sed 's/^IMAG/240321_/g')"; ffmpeg -i "$i" -ss 00:00:00 -t 00:00:20 "$newpath" && rm "$i"; done
Awesome! Thanks, I knew there had to be a way!
edit: This also works:
for i in *.avi; do ffmpeg -i "$i" -ss 00:00:00 -t 00:00:10 ~/Public/test/${i%.*}.avi ; done
But yours is much nicer.