1

avconvUbuntuで使用してビデオを反転しようとしています。1 分間の動画をめくると、処理と変換に 12 ~ 40 秒かかります。

動画ファイルサイズ:7MB、収録時間:1分

avconv -i 1_1.mp4 -c:v libx264 -c:a copy -vf "vflip" conv.mp4

結果は次のとおりです。

avconv version 0.8.12-4:0.8.12-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Jun 10 2014 15:32:44 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1_1.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2013-06-06 07:42:07
  Duration: 00:03:45.15, start: 0.000000, bitrate: 266 kb/s
    Stream #0.0(eng): Video: h264 (High), yuv420p, 640x360 [PAR 1:1 DAR 16:9], 216 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc
    Metadata:
      creation_time   : 2013-06-06 07:42:07
    Stream #0.1(eng): Audio: aac, 32000 Hz, mono, s16, 46 kb/s
    Metadata:
      creation_time   : 2013-06-06 07:42:07
[buffer @ 0x972c240] w:640 h:360 pixfmt:yuv420p
[libx264 @ 0x9745e20] using SAR=1/1
[libx264 @ 0x9745e20] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x9745e20] profile Main, level 3.0
[libx264 @ 0x9745e20] 264 - core 120 r2151 a3f4407 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=0 open_gop=1 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.25 aq=1:1.00
Output #0, mp4, to 'conv.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2013-06-06 07:42:07
    encoder         : Lavf53.21.1
    Stream #0.0(eng): Video: libx264, yuv420p, 640x360 [PAR 1:1 DAR 16:9], q=-1--1, 25 tbn, 25 tbc
    Metadata:
      creation_time   : 2013-06-06 07:42:07
    Stream #0.1(eng): Audio: libvo_aacenc, 32000 Hz, mono, 46 kb/s
    Metadata:
      creation_time   : 2013-06-06 07:42:07
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
frame= 5627 fps=153 q=-1.0 Lsize=    7880kB time=225.04 bitrate= 286.9kbits/s    
video:6487kB audio:1271kB global headers:0kB muxing overhead 1.580010%
[libx264 @ 0x9745e20] frame I:27    Avg QP:15.59  size: 19598
[libx264 @ 0x9745e20] frame P:1478  Avg QP:20.11  size:  3175
[libx264 @ 0x9745e20] frame B:4122  Avg QP:29.13  size:   344
[libx264 @ 0x9745e20] consecutive B-frames:  1.9%  0.5%  2.1% 95.5%
[libx264 @ 0x9745e20] mb I  I16..4: 20.1%  0.0% 79.9%
[libx264 @ 0x9745e20] mb P  I16..4:  1.2%  0.0%  1.7%  P16..4: 23.9% 12.3%  5.6%  0.0%  0.0%    skip:55.2%
[libx264 @ 0x9745e20] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8: 18.4%  2.3%  0.2%  direct: 0.3%  skip:78.8%  L0:41.7% L1:51.7% BI: 6.6%
[libx264 @ 0x9745e20] coded y,uvDC,uvAC intra: 64.4% 44.0% 15.7% inter: 4.3% 4.8% 0.2%
[libx264 @ 0x9745e20] i16 v,h,dc,p: 40% 19% 13% 28%
[libx264 @ 0x9745e20] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 22% 17%  5%  7%  6%  6%  5%  4%
[libx264 @ 0x9745e20] i8c dc,h,v,p: 65% 13% 19%  3%
[libx264 @ 0x9745e20] Weighted P-Frames: Y:1.9% UV:1.2%
[libx264 @ 0x9745e20] ref P L0: 72.8%  7.2% 13.5%  6.4%  0.0%
[libx264 @ 0x9745e20] ref B L0: 91.2%  8.8%
[libx264 @ 0x9745e20] kb/s:236.07

そしてかかった時間は13秒。

4

1 に答える 1

0

You are approaching the problem from the wrong angle. The size of the file is not the problem here. In order to run vflip the avconv must do the following:

 ┌──────────┐         ┌──────────┐         ┌────────────┐
 │ Decode a │⇨⇨⇨⇨⇨⇨⇨⇨ │ Run vlip │         │  Reencode  │
 │  frame   │         │  filter  │⇨⇨⇨⇨⇨⇨⇨⇨ │ the  frame │
 └──────────┘         └──────────┘         └────────────┘

So you cannot approach the question by asking "How long can the rotation of 7MiB file take?" but rather "How long does it take to decode every frame, rotate it, and reencode it back again?"

13 seconds is not as horrible as you may think. You have 5627 frames 640x360 in size. Try to create this many pictures and see how long some other application will take to flip them upside down. My guess would be that it'll take a good part of 13 seconds. The rest of the time your avconv is busy doing decoding and reencoding.

于 2014-11-09T11:00:09.110 に答える