[FFmpeg-trac] #3910(avfilter:new): uspp filter using a lot memory
FFmpeg
trac at avcodec.org
Mon Sep 1 01:07:16 CEST 2014
#3910: uspp filter using a lot memory
-------------------------------------+-------------------------------------
Reporter: chronek | Owner:
Type: enhancement | Status: new
Priority: wish | Component: avfilter
Version: git-master | Resolution:
Keywords: uspp | Blocked By:
mpfilter snow | Reproduced by developer: 0
Blocking: |
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Changes (by cehoyos):
* keywords: uspp mpfilter => uspp mpfilter snow
Old description:
> Hello,
> Trying to filter video by uspp and fixed qp, it taking almost all memory
> in my computer, it is imposible for me to filter in good resolution. I
> would like to see some improvments over memory usage in this filter, to
> be able filter 4k video with 8GB memory.
>
> How to reproduce:
>
> - filtering single impage 1920:1080 need about 5GB memory:
> ffmpeg.exe -i test.png -vf mp=uspp=7:6 out.png
>
> - filtering video 1920:1080 need about 6GB memory:
> ffmpeg.exe -loop 1 -i test.png -r 25 -t 00:00:30 -vf mp=uspp=7:6 out.avi
>
> - filtering video in 2560:1440 resolution need about 10GB memory:
> ffmpeg.exe -loop 1 -i test.png -r 25 -t 00:00:30 -vf
> scale=-1:1440,mp=uspp=7:6 out.avi
>
> - filtering video in 3840:2160 resolution ...
> i do not have that much memory ....
>
> Some log from filtering single image:
>
> C:\inne>ffmpeg.exe -i test.png -vf mp=uspp=7:6 out.png
> ffmpeg version N-65991-g8c63a0d Copyright (c) 2000-2014 the FFmpeg
> developers
> built on Aug 30 2014 22:10:41 with gcc 4.8.3 (GCC)
> configuration: --enable-gpl --enable-version3 --disable-w32threads
> --enable-av
> isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls
> --enab
> le-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-
> libcaca --
> enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc
> --enable-lib
> modplug --enable-libmp3lame --enable-libopencore-amrnb --enable-
> libopencore-amrw
> b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-
> libschroedinge
> r --enable-libsoxr --enable-libspeex --enable-libtheora --enable-
> libtwolame --en
> able-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-
> libvorbis
> --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264
> --enable-
> libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
> libavutil 54. 7.100 / 54. 7.100
> libavcodec 56. 1.100 / 56. 1.100
> libavformat 56. 3.100 / 56. 3.100
> libavdevice 56. 0.100 / 56. 0.100
> libavfilter 5. 0.103 / 5. 0.103
> libswscale 3. 0.100 / 3. 0.100
> libswresample 1. 1.100 / 1. 1.100
> libpostproc 53. 0.100 / 53. 0.100
> Input #0, image2, from 'test.png':
> Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
> Stream #0:0: Video: png, rgba, 1920x1080 [SAR 2835:2835 DAR 16:9], 25
> tbr, 2
> 5 tbn, 25 tbc
> [Parsed_mp_0 @ 0000000002afaae0] 'uspp' is a wrapped MPlayer filter
> (libmpcodecs
> ). This filter may be removed
> once it has been ported to a native libavfilter.
> Output #0, image2, to 'out.png':
> Metadata:
> encoder : Lavf56.3.100
> Stream #0:0: Video: png, rgb24, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31,
> 200 kb
> /s, 25 fps, 25 tbn, 25 tbc
> Metadata:
> encoder : Lavc56.1.100 png
> Stream mapping:
> Stream #0:0 -> #0:0 (png (native) -> png (native))
> Press [q] to stop, [?] for help
> frame= 1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
> video:56kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
> muxing ov
> erhead: unknown
> % ffmpeg -i input ... output
> ffmpeg version
> built on ...
> }}}
> Patches should be submitted to the ffmpeg-devel mailing list and not this
> bug tracker.
New description:
Hello,
Trying to filter video by uspp and fixed qp, it taking almost all memory
in my computer, it is imposible for me to filter in good resolution. I
would like to see some improvments over memory usage in this filter, to be
able filter 4k video with 8GB memory.
How to reproduce:
- filtering single impage 1920:1080 need about 5GB memory:
ffmpeg.exe -i test.png -vf mp=uspp=7:6 out.png
- filtering video 1920:1080 need about 6GB memory:
ffmpeg.exe -loop 1 -i test.png -r 25 -t 00:00:30 -vf mp=uspp=7:6 out.avi
- filtering video in 2560:1440 resolution need about 10GB memory:
ffmpeg.exe -loop 1 -i test.png -r 25 -t 00:00:30 -vf
scale=-1:1440,mp=uspp=7:6 out.avi
- filtering video in 3840:2160 resolution ...
i do not have that much memory ....
Some log from filtering single image:
{{{
C:\inne>ffmpeg.exe -i test.png -vf mp=uspp=7:6 out.png
ffmpeg version N-65991-g8c63a0d Copyright (c) 2000-2014 the FFmpeg
developers
built on Aug 30 2014 22:10:41 with gcc 4.8.3 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
--enable-gnutls --enable-iconv --enable-libass --enable-libbluray
--enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme
--enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
--enable-libopus --enable-librtmp --enable-libschroedinger --enable-
libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-
libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-
libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-
libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-
decklink --enable-zlib
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 1.100 / 56. 1.100
libavformat 56. 3.100 / 56. 3.100
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 0.103 / 5. 0.103
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100
Input #0, image2, from 'test.png':
Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
Stream #0:0: Video: png, rgba, 1920x1080 [SAR 2835:2835 DAR 16:9], 25
tbr, 25 tbn, 25 tbc
[Parsed_mp_0 @ 0000000002afaae0] 'uspp' is a wrapped MPlayer filter
(libmpcodecs). This filter may be removed once it has been ported to a
native libavfilter.
Output #0, image2, to 'out.png':
Metadata:
encoder : Lavf56.3.100
Stream #0:0: Video: png, rgb24, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31,
200 kb/s, 25 fps, 25 tbn, 25 tbc
Metadata:
encoder : Lavc56.1.100 png
Stream mapping:
Stream #0:0 -> #0:0 (png (native) -> png (native))
Press [q] to stop, [?] for help
frame= 1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
video:56kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
}}}
--
Comment:
One third of the memory allocations happen in ff_snow_common_init(),
another third in ff_snow_common_init_after_header().
--
Ticket URL: <https://trac.ffmpeg.org/ticket/3910#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list