I (losslessly) recorded myself playing an old retro game in dosbox, and I want to scale it up 2x without making it blurry.
I have ffmpeg and the know-how to enter in a command line for it, but that's about it.
What do I type in to get this to work?
+ Reply to Thread
Results 1 to 8 of 8
don't bother. any upscaling will reduce quality, let the end user make it bigger if they want.--
"a lot of people are better dead" - prisoner KSC2-303
For a dos game, pointresize (nearest neighbor) is usually the best if you want to preserve the pixel edges and the original look
Ah, but you see the end user is me. I want to make it bigger by simply increasing the size of each pixel, in each frame, from 1x1 to 2x2. That is my goal.
But that sounds rather silly. ANY upscaling will blur the image? I would think there would be a nearest neighbor algorithm to increase the size built into ffmpeg.
For those who want to know the reason why, I want to take screenshots of the losslessly encoded video and use them in a Let's Play, as the video itself isn't very entertaining to watch. If I just took screenshots of the game while it was running, I would miss key moments. I'm only human.
I could take screenshots of the current video and resize the images themselves, but that process is a bit more arduous. I'd rather not have to go through and scale each image up by hand. (And I don't know how to use bash to automate the process with GIMP.)
It'd be a much easier solution for me to resize the video. I want it pixellated and crisp.
Here's an example.
What the video looks like:
What I wish it looked like:
ffmpeg accepts avs scripts if you've compiled support (commonly distributed binaries have it) ; you can use pointresize() through avisynth
I don't know if you can specify a scaling algorithm in libavfilter, so ffmpeg alone is probably insufficient
virtualdub's resize filter has a nearest neighbor option as well
Last edited by poisondeathray; 15th Aug 2012 at 22:10.
FFmpeg has nearest neighbor resizing.
just add "-sws_flags neighbor" to your command line.
Here's the list of available flags for SWScaler:
-sws_flags <flags> E.V.. scaler flags
fast_bilinear E.V.. fast bilinear
bilinear E.V.. bilinear
bicubic E.V.. bicubic
experimental E.V.. experimental
neighbor E.V.. nearest neighbor
area E.V.. averaging area
bicublin E.V.. luma bicubic, chroma bilinear
gauss E.V.. gaussian
sinc E.V.. sinc
lanczos E.V.. lanczos
spline E.V.. natural bicubic spline
print_info E.V.. print info
accurate_rnd E.V.. accurate rounding
full_chroma_int E.V.. full chroma interpolation
full_chroma_inp E.V.. full chroma input
-srcw <int> E.V.. source width
-srch <int> E.V.. source height
-dstw <int> E.V.. destination width
-dsth <int> E.V.. destination height
-src_format <int> E.V.. source format
-dst_format <int> E.V.. destination format
-src_range <int> E.V.. source range
-dst_range <int> E.V.. destination range
-param0 <double> E.V.. scaler param 0
-param1 <double> E.V.. scaler param 1