I’m new to the forum, so hoping to get some tech savvy help on this one.
I have 58 short video clips that have recorded in slo-mo speed. I’m trying to increase the speed x4 in a batch rather than one at a time. I know how to do it individually, but is the batch processing is an option in Shotcut.
I don’t think it can be done directly in Shotcut (someone correct me if I’m wrong)
If you are familiar with FFmpeg though, you can use it to batch process all your 50+ video clips. (solution suggested by Gemini, I did not test it)
Assuming you’re on Windows and your files are MP4s
FFmpeg must be installed on your computer and added to Windows PATH.
Steps:
Copy the lines of code below and paste them in Notepad:
@echo off
setlocal enabledelayedexpansion
mkdir sped_up_4x
for %%i in (*.mp4) do (
echo Processing: %%i
rem Check if the file has an audio track
ffprobe -v error -show_entries stream=codec_type -of csv=p=0 "%%i" | findstr /i "audio" >nul
if !errorlevel! equ 0 (
rem Video HAS audio -> Speed up both video and audio
ffmpeg -y -i "%%i" -filter_complex "[0:v]setpts=0.25*PTS[v];[0:a]atempo=2.0,atempo=2.0[a]" -map "[v]" -map "[a]" "sped_up_4x\%%~nxi"
) else (
rem Video is SILENT -> Speed up video only (ignore audio)
ffmpeg -y -i "%%i" -filter_complex "[0:v]setpts=0.25*PTS[v]" -map "[v]" "sped_up_4x\%%~nxi"
)
)
echo Batch processing complete!
pause
Save the txt file in the folder containing all your 50+ clips
Rename the txt file (including the extension) > speedup_4x.bat
Double-click the speedup_4x.bat file.
A black Command Prompt window will open, and FFmpeg will immediately begin processing all 50+ clips one after another. You will see text scrolling by as each video is processed.
Once the window says “Batch processing complete! Press any key to continue…”, the job is done, and all the new 4x accelerated videos will be sitting safely in the newly created sped_up_4x folder.
EDIT: In case your clips don’t meet the requirements in the Shotcut method suggested below by @shotcut, I just tested the FFmpeg method and it works.
If each video is going to have the same resolution, aspect ratio, and frame rate; then you can do it in Shotcut. Use Playlist and Export > From > Each Playlist Bin Item. Clips in a playlist can have unique trims, property changes, and filters.
ffmpeg issues unresolved in spite of reinstalling the programme and following instructions at cmd prompt it is not recognised. A bit stuck with this option - thanks for your advice in anycase
Sorry I’m not following the process. I have 57 selected videos in playlist. If I click on export I have 4 options. I’ve tested video/audio but that only converts 1 file at a time. Should I choose EDL ? not sure what that does… What is the next steps in this process for batch conversion? Thanks
You are using Export in the File menu. Most people use the Export panel that you get when you click Export in the main toolbar (or View > Export in the menu). Only the Export panel has the From > Each Playlist Bin Item. You still need to manually change the speed of each playlist item.
@esam65
In case you ever need other multipliers than 4X, Gemini came up with new lines of code:
When you launch batch_speedup.bat, in the Command Prompt window you’re asked:
“Choose a speed multiplier (Whole numbers only: 2, 3, 4, 5, 6, 7, 8)”
Steps
Copy/paste the lines below in Notepad.
Save as batch_speedup.txt
Rename (including extension) to: batch_speedup.bat
Place the batch_speedup.bat file in the folder containing your video clips
Double-click the batch_speedup.bat file.
Type a multiplier (hole number)
Press Enter
@echo off
setlocal enabledelayedexpansion
echo ===================================================
echo FFMPEG BATCH VIDEO SPEEDUP
echo ===================================================
echo.
echo Choose a speed multiplier (Whole numbers only: 2, 3, 4, 5, 6, 7, 8)
set /p multiplier="Enter speed: "
rem --- Native Windows Logic for Video/Audio Filters ---
if "%multiplier%"=="2" (
set "video_speed=0.5"
set "audio_speed=atempo=2.0"
) else if "%multiplier%"=="3" (
set "video_speed=0.333333"
set "audio_speed=atempo=2.0,atempo=1.5"
) else if "%multiplier%"=="4" (
set "video_speed=0.25"
set "audio_speed=atempo=2.0,atempo=2.0"
) else if "%multiplier%"=="5" (
set "video_speed=0.20"
set "audio_speed=atempo=2.0,atempo=2.5"
) else if "%multiplier%"=="6" (
set "video_speed=0.166667"
set "audio_speed=atempo=2.0,atempo=2.0,atempo=1.5"
) else if "%multiplier%"=="7" (
set "video_speed=0.142857"
set "audio_speed=atempo=2.0,atempo=2.0,atempo=1.75"
) else if "%multiplier%"=="8" (
set "video_speed=0.125"
set "audio_speed=atempo=2.0,atempo=2.0,atempo=2.0"
) else (
echo.
echo Error: Invalid speed selection. Please choose a whole number between 2 and 8.
pause
exit /b
)
rem --- Setup Output Directory ---
set "out_dir=sped_up_%multiplier%x"
mkdir "%out_dir%" 2>nul
echo.
echo Processing files at %multiplier%x speed...
echo Saving to folder: \%out_dir%
echo ---------------------------------------------------
for %%i in (*.mp4) do (
echo Processing: %%i
rem Check if the file has an audio track
ffprobe -v error -show_entries stream=codec_type -of csv=p=0 "%%i" | findstr /i "audio" >nul
if !errorlevel! equ 0 (
rem Video HAS audio
ffmpeg -y -v error -stats -i "%%i" -filter_complex "[0:v]setpts=!video_speed!*PTS[v];[0:a]!audio_speed![a]" -map "[v]" -map "[a]" "%out_dir%\%%~nxi"
) else (
rem Video is SILENT
ffmpeg -y -v error -stats -i "%%i" -filter_complex "[0:v]setpts=!video_speed!*PTS[v]" -map "[v]" "%out_dir%\%%~nxi"
)
)
echo.
echo ===================================================
echo Batch processing complete!
echo ===================================================
pause