[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