[FFmpeg-trac] #1313(undetermined:new): Use more threads for decoding MTS

FFmpeg trac at avcodec.org
Wed May 16 21:02:44 CEST 2012


#1313: Use more threads for decoding MTS
-------------------------------------+-------------------------------------
             Reporter:  andreasg     |                     Type:
               Status:  new          |  enhancement
            Component:               |                 Priority:  normal
  undetermined                       |                  Version:  git-
             Keywords:               |  master
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 When processing MTS video with my application that uses FFmpeg to decode
 each video frame, the performance does not increase past two threads and
 seems to decrease slightly with eight threads (two quad-core CPUs, Intel
 Xeon E5440).  This may be due to the interlaced video.  In contrast,
 another H.264 video (movie trailer in 1080p) makes use of all eight
 threads.

 The test video is the one linked from ticket #993:
 http://file.meyersproduction.com/hg10/00009.MTS.zip

 http://trailers.apple.com/trailers/wb/harrypotterandthedeathlyhallowspart2/

 I ran each test three times with 1, 2, 4, and 8 threads and show the
 median time as reported by csh time.

 The 35.54 second MTS is decoded 2.54 times faster than real-time with one
 thread and 3.78 times faster than real-time with two threads.  The 148.68
 second MOV is decoded 4.21 times faster than real-time with one thread and
 17.89 times faster than real-time with eight threads.

 It would be great if MTS could be decoded as fast as the H.264 MOV.

 MTS
 {{{
 1: 13.857u 0.057s 0:13.98 99.4%    0+0k 0+0io 0pf+0w
 2: 15.375u 0.142s 0:09.41 164.8%   0+0k 0+0io 0pf+0w
 4: 15.931u 0.162s 0:09.44 170.4%   0+0k 0+0io 0pf+0w
 8: 16.718u 0.181s 0:11.90 141.9%   0+0k 0+0io 0pf+0w
 }}}

 MOV
 {{{
 1: 34.964u 0.142s 0:35.28 99.4%    0+0k 0+0io 0pf+0w
 2: 37.914u 0.281s 0:20.07 190.2%   0+0k 0+0io 0pf+0w
 4: 41.643u 0.435s 0:14.44 291.3%   0+0k 0+0io 0pf+0w
 8: 45.341u 0.535s 0:08.31 551.9%   0+0k 0+0io 0pf+0w
 }}}

 MTS
 {{{
 ffprobe version N-40739-ge556121 Copyright (c) 2007-2012 the FFmpeg
 developers
   built on May 16 2012 11:07:59 with gcc 4.6.3 20120306 (Red Hat 4.6.3-2)
   configuration:
   libavutil      51. 53.100 / 51. 53.100
   libavcodec     54. 21.101 / 54. 21.101
   libavformat    54.  5.100 / 54.  5.100
   libavdevice    53.  4.100 / 53.  4.100
   libavfilter     2. 74.100 /  2. 74.100
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0. 11.100 /  0. 11.100
 [h264 @ 0x2dc00e0] Increasing reorder buffer to 1
 [mpegts @ 0x2dbc220] max_analyze_duration 5000000 reached at 5003333
 Input #0, mpegts, from '/tmp/00009.MTS':
   Duration: 00:00:36.54, start: 0.766967, bitrate: 6884 kb/s
   Program 1
     Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p,
 1440x1080 [SAR 4:3 DAR 16:9], 59.96 fps, 59.94 tbr, 90k tbn, 59.94 tbc
     Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo,
 s16, 256 kb/s
 }}}

 MOV
 {{{
 ffprobe version N-40739-ge556121 Copyright (c) 2007-2012 the FFmpeg
 developers
   built on May 16 2012 11:07:59 with gcc 4.6.3 20120306 (Red Hat 4.6.3-2)
   configuration:
   libavutil      51. 53.100 / 51. 53.100
   libavcodec     54. 21.101 / 54. 21.101
   libavformat    54.  5.100 / 54.  5.100
   libavdevice    53.  4.100 / 53.  4.100
   libavfilter     2. 74.100 /  2. 74.100
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0. 11.100 /  0. 11.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/hp7part2-tlr2_h1080p.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 537199360
     compatible_brands: qt
     creation_time   : 2011-09-02 01:14:21
     comment         : Encoded and delivered by apple.com/trailers/
     comment-eng     : Encoded and delivered by apple.com/trailers/
     copyright       : © 2011 Warner Bros. Pictures. All Rights Reserved
     copyright-eng   : © 2011 Warner Bros. Pictures. All Rights Reserved
     title           : Harry Potter and the Deathly Hallows - Part 2
     title-eng       : Harry Potter and the Deathly Hallows - Part 2
   Duration: 00:02:28.69, start: 0.000000, bitrate: 9636 kb/s
     Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p,
 1920x816, 9532 kb/s, 23.98 fps, 23.98 tbr, 2997 tbn, 5994 tbc
     Metadata:
       creation_time   : 2011-09-02 01:14:21
       handler_name    : Apple Alias Data Handler
     Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo,
 s16, 98 kb/s
     Metadata:
       creation_time   : 2011-09-02 01:14:21
       handler_name    : Apple Alias Data Handler
     Stream #0:2(eng): Data: none (tmcd / 0x64636D74)
     Metadata:
       creation_time   : 2011-09-02 01:14:21
       handler_name    : Apple Alias Data Handler
       timecode        : 00:59:58:21
 Unsupported codec with id 0 for input stream 2
 }}}

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1313>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list