VideoHelp Forum

Our website is made possible by displaying online advertisements to our visitors. Consider supporting us by disable your adblocker or Try ConvertXtoDVD and convert all your movies to DVD. Free trial ! :)
+ Reply to Thread
Results 1 to 8 of 8
Thread
  1. 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?
    Quote Quote  
  2. aBigMeanie aedipuss's Avatar
    Join Date
    Oct 2005
    Location
    666th portal
    Search Comp PM
    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
    Quote Quote  
  3. For a dos game, pointresize (nearest neighbor) is usually the best if you want to preserve the pixel edges and the original look
    Quote Quote  
  4. Originally Posted by aedipuss View Post
    don't bother. any upscaling will reduce quality, let the end user make it bigger if they want.

    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:
    Quote Quote  
  5. 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.
    Quote Quote  
  6. Originally Posted by CrazyMLC View Post
    What I wish it looked like:
    That's a point resize, aka nearest neighbor.

    Here's hq2x():
    Click image for larger version

Name:	hq2x.png
Views:	1245
Size:	202.0 KB
ID:	13511
    Quote Quote  
  7. Member
    Join Date
    Nov 2009
    Location
    United States
    Search PM
    FFmpeg has nearest neighbor resizing.
    just add "-sws_flags neighbor" to your command line.

    Here's the list of available flags for SWScaler:

    SWScaler AVOptions:
    -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
    bitexact E.V..
    -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
    Quote Quote  



Similar Threads