FFMPEG Video scaling without filtering

I am interested in scaling up a larger video without applying any filter or anything else. The output video should look very pixelated. How to do it in FFMPEG?

At the suggestion of Ronald S. Bultier, I use a neighboring flag. I also decided to use the rawvideo codec to avoid compression.

The current command that I run is

ffmpeg -i vid.avi -s 800x800 -sws_flags neighbor -sws_dither none -vcodec rawvideo vid2.avi 

Command line output of this command

 ffmpeg version 2.7 Copyright (c) 2000-2015 the FFmpeg developers built with Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) configuration: --prefix=/opt/local --enable-swscale --enable-avfilter --enable-avresample --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libvpx --enable-libspeex --enable-libass --enable-libbluray --enable-lzma --enable-gnutls --enable-fontconfig --enable-libfreetype --enable-libfribidi --disable-indev=jack --disable-outdev=xv --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --enable-vda --arch=x86_64 --enable-yasm --enable-gpl --enable-postproc --enable-libx264 --enable-libxvid libavutil 54. 27.100 / 54. 27.100 libavcodec 56. 41.100 / 56. 41.100 libavformat 56. 36.100 / 56. 36.100 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 16.101 / 5. 16.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.100 / 1. 2.100 libpostproc 53. 3.100 / 53. 3.100 Input #0, avi, from 'vid.avi': Duration: 00:00:25.00, start: 0.000000, bitrate: 226 kb/s Stream #0:0: Video: rawvideo, pal8, 80x80, 206 kb/s, 4 fps, 4 tbr, 4 tbn, 4 tbc File 'vid2.avi' already exists. Overwrite ? [y/N] y Output #0, avi, to 'vid2.avi': Metadata: ISFT : Lavf56.36.100 Stream #0:0: Video: rawvideo, pal8, 800x800, q=2-31, 200 kb/s, 4 fps, 4 tbn, 4 tbc Metadata: encoder : Lavc56.41.100 rawvideo Stream mapping: Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native)) Press [q] to stop, [?] for help frame= 100 fps=0.0 q=0.0 Lsize= 62608kB time=00:00:25.00 bitrate=20515.4kbits/s video:62600kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.012614% 
+5
source share
1 answer
 ffmpeg -i infile -vf scale=WIDTH:HEIGHT:flags=neighbor outfile 

or

 ffmpeg -i infile -s WIDTHxHEIGHT -sws_flags neighbor outfile 

The critical part here is flags or -sws_flags , which selects a filter (and other flags related to scaling). The default filter value is bicublin (IIRC), which means bicubic brightness and bilinear color filter. The closest neighbor will do what you ask.

See scaling options for a list of other scaling algorithms.

+12
source

All Articles