[FFmpeg-trac] #4076(undetermined:new): Poor performance when using unsharp filter on multiple outputs

FFmpeg trac at avcodec.org
Tue Nov 4 05:32:56 CET 2014


#4076: Poor performance when using unsharp filter on multiple outputs
-------------------------------------+-------------------------------------
             Reporter:  speaker219   |                    Owner:
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
              Version:  git-master   |  undetermined
             Keywords:  unsharp      |               Resolution:
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------

Comment (by speaker219):

 Yep, same issue when using a file as input with -vcodec mpeg4, notice the
 poor performance on the first run (using unsharp filter on both outputs):

 ~60 fps when using unsharp filter on both outputs, ~94 fps when only using
 on one. CPU usage is well below 50% on both runs.

 Using unsharp on both:
 {{{
 cmd>ffmpeg -t 60 -i "testfile.mkv" -vcodec mpeg4 -vf
 "unsharp=5:5:0.2:5:5:0.0" -maxrate 1600k -bufsize 2000k -s 960x540
 -pix_fmt yuv420p -an sd.mp4 -vcodec mpeg4 -vf
 "unsharp=5:5:0.2:5:5:0.0,fps=fps=30" -maxrate 900k -bufsize 2000k -s
 854x480 -pix_fmt yuv420p -an sd.mp4


 ffmpeg version N-66809-g20df026 Copyright (c) 2000-2014 the FFmpeg
 developers
   built on Oct 11 2014 23:42:02 with gcc 4.9.1 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
 --enable-gnutls --enable-iconv --enable-li
 bass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-
 libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-
 libmodplug --enable-libmp3lame --enable-lib
 opencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-
 libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr
 --enable-libspeex --enable-libtheora --en
 able-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-zlib
   libavutil      54. 10.100 / 54. 10.100
   libavcodec     56.  4.101 / 56.  4.101
   libavformat    56.  9.100 / 56.  9.100
   libavdevice    56.  1.100 / 56.  1.100
   libavfilter     5.  1.103 /  5.  1.103
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  1.100 /  1.  1.100
   libpostproc    53.  1.100 / 53.  1.100
 Input #0, matroska,webm, from
 'J:\NewDL\Jeopardy.2014.09.26.720p.HDTV.AAC2.0.x264-NTb.mkv':
   Metadata:
     encoder         : libebml v1.2.3 + libmatroska v1.3.0
     creation_time   : 2014-09-26 02:23:22
   Duration: 00:19:56.47, start: 0.000000, bitrate: 2305 kb/s
     Stream #0:0: Video: h264 (High), yuv420p, 1280x720 [SAR 1:1 DAR 16:9],
 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
     Stream #0:1: Audio: aac, 48000 Hz, stereo, fltp (default)
 File 'sd.mp4' already exists. Overwrite ? [y/N] y
 File 'sd.mp4' already exists. Overwrite ? [y/N] y
 [mpeg4 @ 000000000034cb00] Invalid pixel aspect ratio 1280/1281, limit is
 255/255 reducing
 Output #0, mp4, to 'sd.mp4':
   Metadata:
     encoder         : Lavf56.9.100
     Stream #0:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 960x540 [SAR
 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 30k tbn, 29.97 tbc (default)
     Metadata:
       encoder         : Lavc56.4.101 mpeg4
 Output #1, mp4, to 'sd.mp4':
   Metadata:
     encoder         : Lavf56.9.100
     Stream #1:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 854x480 [SAR
 1:1 DAR 427:240], q=2-31, 200 kb/s, SAR 1280:1281 DAR 16:9, 30 fps, 15360
 tbn, 30 tbc (default)
     Metadata:
       encoder         : Lavc56.4.101 mpeg4
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> mpeg4 (native))
   Stream #0:0 -> #1:0 (h264 (native) -> mpeg4 (native))
 Press [q] to stop, [?] for help
 frame= 1799 fps= 60 q=24.8 Lq=24.8 size=    4421kB time=00:01:00.03
 bitrate= 603.3kbits/s
 video:8003kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 }}}

 Using unsharp on one:

 {{{
 cmd>ffmpeg -t 60 -i
 "J:\NewDL\Jeopardy.2014.09.26.720p.HDTV.AAC2.0.x264-NTb.mkv" -vcodec mpeg4
 -vf "unsharp=5:5:0.2:5:5:0.0" -maxrate 1600k -bufsize 2000k -s 960x540
 -pix_fmt yuv420p -an sd.mp4 -vcodec mpeg4 -vf "fps=fps=30" -maxrate 900k
 -bufsize 2000k -s 854x480 -pix_fmt yuv420p -an sd.mp4


 ffmpeg version N-66809-g20df026 Copyright (c) 2000-2014 the FFmpeg
 developers
   built on Oct 11 2014 23:42:02 with gcc 4.9.1 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
 --enable-gnutls --enable-iconv --enable-li
 bass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-
 libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-
 libmodplug --enable-libmp3lame --enable-lib
 opencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-
 libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr
 --enable-libspeex --enable-libtheora --en
 able-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-zlib
   libavutil      54. 10.100 / 54. 10.100
   libavcodec     56.  4.101 / 56.  4.101
   libavformat    56.  9.100 / 56.  9.100
   libavdevice    56.  1.100 / 56.  1.100
   libavfilter     5.  1.103 /  5.  1.103
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  1.100 /  1.  1.100
   libpostproc    53.  1.100 / 53.  1.100
 Input #0, matroska,webm, from 'testfile.mkv':
   Metadata:
     encoder         : libebml v1.2.3 + libmatroska v1.3.0
     creation_time   : 2014-09-26 02:23:22
   Duration: 00:19:56.47, start: 0.000000, bitrate: 2305 kb/s
     Stream #0:0: Video: h264 (High), yuv420p, 1280x720 [SAR 1:1 DAR 16:9],
 29.97 fps, 29.97 tbr, 1k tbn, 59.94 tbc (default)
     Stream #0:1: Audio: aac, 48000 Hz, stereo, fltp (default)
 File 'sd.mp4' already exists. Overwrite ? [y/N] y
 File 'sd.mp4' already exists. Overwrite ? [y/N] y
 [mpeg4 @ 000000000527c1e0] Invalid pixel aspect ratio 1280/1281, limit is
 255/255 reducing
 Output #0, mp4, to 'sd.mp4':
   Metadata:
     encoder         : Lavf56.9.100
     Stream #0:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 960x540 [SAR
 1:1 DAR 16:9], q=2-31, 200 kb/s, 29.97 fps, 30k tbn, 29.97 tbc (default)
     Metadata:
       encoder         : Lavc56.4.101 mpeg4
 Output #1, mp4, to 'sd.mp4':
   Metadata:
     encoder         : Lavf56.9.100
     Stream #1:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 854x480 [SAR
 1:1 DAR 427:240], q=2-31, 200 kb/s, SAR 1280:1281 DAR 16:9, 30 fps, 15360
 tbn, 30 tbc (default)
     Metadata:
       encoder         : Lavc56.4.101 mpeg4
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> mpeg4 (native))
   Stream #0:0 -> #1:0 (h264 (native) -> mpeg4 (native))
 Press [q] to stop, [?] for help
 frame= 1799 fps= 94 q=24.8 Lq=24.8 size=    4421kB time=00:01:00.03
 bitrate= 603.3kbits/s
 video:7957kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/4076#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list