Using this guide in combination with ffmpeg and avisynth, I was able to batch 30 fps videos into 60 fps videos. However, whenever, there are times where each video is short and is supposed to loop onto itself. Using DirectShow Source, I get smooth frames, but with some stuttering at the first 5ish frames of the video. This stuttering is very noticeable when a file is, say, 7 seconds long. I have tried using AviSource which removes the stuttering, but adds black frames for the first 3ish frames of the video, which when looped, is very prevalent.
In short, I have a problem where the video stutters at the beginning when encoding videos in 60fps via FFmpeg.
Here is my batch file:
30 to 60 FPS START.bat
cd D:\Applications\FFgif\temp
for /f %%F in ('dir "D:\Applications\FFgif\temp\*" /b') do (
echo %%F
"D:\Applications\FFgif\30-60-2.bat" "%%F"
)
30-60-2.bat
echo DirectShowSource("%~d1%~p1%~n1%~x1", fps=30.000, audio=false, convertfps=true, Pixel_Type="YUY2").AssumeFPS(30,1).ConvertToYV12() > "D:\Applications\FFgif\temp.avs"
::echo AviSource("%~d1%~p1%~n1%~x1", Pixel_Type="YUY2").ConvertToYV12() > "D:\Applications\FFgif\temp.avs"
echo import("D:\Applications\FFgif\template.avs") >> "D:\Applications\FFgif\temp.avs"
D:\Applications\FFgif\ffmpeg.exe -i "D:\Applications\FFgif\temp.avs" -c:v libx264 -force_key_frames "expr:gte(t,n_forced/100)" -preset veryfast -profile high -crf 20 -c:a aac -b:a 128k "D:\Applications\FFgif\Compressed\%~n1.mkv"
template.avs
Cores=8
SetMemoryMax(512)
PluginPath = "D:\Applications\FFgif\MeGUI_2624_x86\tools\avisynth_plugin\"
LoadPlugin(PluginPath+"svpflow1.dll")
LoadPlugin(PluginPath+"svpflow2.dll")
Import(PluginPath+"InterFrame2.avsi")
#deinterlace
#crop
#denoise
InterFrame(Cores=Cores, GPU=true)