[FFmpeg-user] Creating an advanced filter effect that repeats the outer pixels

Jesper Taxbøl jesper at taxboel.dk
Mon Jun 8 23:08:12 CEST 2015


And the workaround I ended up using:

/usr/local/bin/ffmpeg -y -i test.MP4  -t 10 -filter_complex
"[0:v:0]crop=1440:2:0:720,scale=1440:4,crop=1440:2,scale=1440:1440[OUT]"
-c:v libx264 -pix_fmt yuv420p -preset ultrafast -tune fastdecode -tune
zerolatency -map [OUT] out.mp4

2015-06-08 22:48 GMT+02:00 Jesper Taxbøl <jesper at taxboel.dk>:

> Hmm. I have tried this pipeline which work.
>
> /usr/local/bin/ffmpeg -y -i test.MP4  -t 10 -filter_complex
> "[0:v:0]crop=1440:2:0:720,scale=1440:1440[OUT]" -c:v libx264 -pix_fmt
> yuv420p -preset ultrafast -tune fastdecode -tune zerolatency -map [OUT]
> out.mp4
>
>
> Then I try this one, which is scaling from 1440x1 to 1440x1440, it fails.
>
> /usr/local/bin/ffmpeg -y -i test.MP4  -t 10 -filter_complex
> "[0:v:0]crop=1440:1:0:720,scale=1440:1440[OUT]" -c:v libx264 -pix_fmt
> yuv420p -preset ultrafast -tune fastdecode -tune zerolatency -map [OUT]
> out.mp4
>
> ffmpeg version 2.6.2 Copyright (c) 2000-2015 the FFmpeg developers
>
>   built with Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM
> 3.6.0svn)
>
>   configuration: --prefix=/usr/local/Cellar/ffmpeg/2.6.2 --enable-shared
> --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables
> --enable-avresample --cc=clang --host-cflags= --host-ldflags=
> --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid
> --enable-libfreetype --enable-libvorbis --enable-libvpx --enable-libfaac
> --enable-libass --enable-ffplay --enable-libfdk-aac --enable-libopus
> --enable-libquvi --enable-libx265 --enable-nonfree --enable-vda
>
>   libavutil      54. 20.100 / 54. 20.100
>
>   libavcodec     56. 26.100 / 56. 26.100
>
>   libavformat    56. 25.101 / 56. 25.101
>
>   libavdevice    56.  4.100 / 56.  4.100
>
>   libavfilter     5. 11.102 /  5. 11.102
>
>   libavresample   2.  1.  0 /  2.  1.  0
>
>   libswscale      3.  1.101 /  3.  1.101
>
>   libswresample   1.  1.100 /  1.  1.100
>
>   libpostproc    53.  3.100 / 53.  3.100
>
> [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fe6a300da00] UDTA parsing failed retrying
> raw
>
>     Last message repeated 1 times
>
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.MP4':
>
>   Metadata:
>
>     major_brand     : mp42
>
>     minor_version   : 0
>
>     compatible_brands: isomavc1mp42
>
>     creation_time   : 2015-06-03 16:28:40
>
>     original_format : KODAK
>
>     comment         : KODAK PIXPRO SP360
>
>   Duration: 00:00:28.23, start: 0.000000, bitrate: 17023 kb/s
>
>     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
> 1440x1440, 15707 kb/s, 30 fps, 30 tbr, 30k tbn, 60k tbc (default)
>
>     Metadata:
>
>       rotate          : 270
>
>       creation_time   : 2015-06-03 16:28:40
>
>       handler_name    : DataHandler
>
>       encoder         : h264
>
>     Side data:
>
>       displaymatrix: rotation of 90.00 degrees
>
>     Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 32000 Hz,
> stereo, fltp, 128 kb/s (default)
>
>     Metadata:
>
>       creation_time   : 2015-06-03 16:28:40
>
>       handler_name    : DataHandler
>
> [Parsed_crop_0 @ 0x7fe6a2f00820] Invalid too big or non positive size for
> width '1440' or height '0'
>
> [Parsed_crop_0 @ 0x7fe6a2f00820] Failed to configure input pad on
> Parsed_crop_0
>
> I dont think the output encoder is to blame as the output is 1440x1440 in
> both cases. Could be an off by one error somewhere?
>
> I have my workaround now, Ill just do it in two passes to get my single
> pixel line stretched.
>
> Kind regards
>
> Jesper
>
>
> 2015-06-08 11:22 GMT+02:00 Moritz Barsnick <barsnick at gmx.net>:
>
>> On Mon, Jun 08, 2015 at 09:59:08 +0200, Jesper Taxbøl wrote:
>> > The 1440x1 is only used in the pipeline. The end result will be a
>> > resulution around 1440x11440, so that should be fine for ffmpeg.
>>
>> It should work in a pipeline. What you are trying to is to encode it
>> with libx264, that's the part that doesn't work. You should be able to
>> note that, because you see the muxer complaining, and not the filter.
>> :-)
>>
>> This works for me:
>> $ ffmpeg -y -f lavfi -i testsrc=size=1440x1440  -t 10 -filter_complex
>> "[0:v:0]crop=1440:1:0:720[OUT]" -map "[OUT]" -f null -
>> and seems to produce a 1440x1 video stream (so I conclude that the crop
>> filter doesn't seem to have a restriction).
>>
>> Expand your filter chain and let us know.
>>
>> Moritz
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
>
>
>
> --
> Jesper Taxbøl
> +45 61627501
>



-- 
Jesper Taxbøl
+45 61627501


More information about the ffmpeg-user mailing list