Newest 'libx264' Questions - Stack Overflow

http://stackoverflow.com/questions/tagged/libx264

Les articles publiés sur le site

  • x264 library speed - Altivec vs SSE2 -

    25 février 2013, par Omer Merdan

    I have simple cheap dualcore intel-3ghz-debian and access to super-expensive powerPc7-Aix.

    And after few days of strugle, i compiled libx264 and tested it on both computers:

    1. GCC: library x264 on intel (with SSE2 capabilities) and
    2. GCC on 16 core powerPc (with altivec).

    ... and result is that cheap intel is x2 times faster ! (with altivec disabled, intel is 10x times faster)

    My question: is this normal? Does all other powerPC-users have same results? Can powerPc-altivec-optimisation of x264 library work at same speed with intel... or MMX/SSE optimisation is officially at least 2 times faster for this library?

    I am not interested in multi-thread options. Number of cores and threads are irrelevant. Just simple one-thread x264 encoding with default "medium preset" using rawvideo as source, sse vs altivec.

    Maybe native Aix XLC compiler provide better results? (i managed only gcc to work)

    ... mac-powerpc-users maybe know something about this.

    powrPc7-Aix:$ time (cat raw10sec.y4m |x264 --input-res 720x576 --fps 50 -o /dev/null -)
    x264: 64-bit XCOFF
    x264 [info]: using cpu capabilities: Altivec
    time: real 0m33.559s
    ---
    intelDebian:$ time (cat raw10sec.y4m |x264 --input-res 720x576 --fps 50 -o /dev/null -)
    x264: ELF 32-bit LSB executable
    x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
    time: real 0m16.503s
    
  • .mov conversion to .mp4 using ffmpeg doesn't convert the entire video

    5 février 2013, par user504879

    I am trying to convert a mov file which I got from saving my powerpoint presentation to a movie file. However only a part of the presentation is converted not the entire one and also running qt-start doesn't make the exported mp4 to stream over rtmp. Is there something which I am missing?

    I am attaching the output which i get when I am trying to convert the file using ffmpeg

    $ export LD_LIBRARY_PATH=/usr/local/lib; /usr/local/bin/ffmpeg -y -i /data/tmp/vialogues_prez.mov -r 20 -g 40 -acodec libfaac -ar 44100  -ab 96k -vcodec libx264 -s 640x480 -vpre medium /data/videos/vialogues_prez.mp4
    
    FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
      built on Feb 19 2011 19:03:56 with gcc 4.4.5
      configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
      libavutil     50.15. 1 / 50.15. 1
      libavcodec    52.72. 2 / 52.72. 2
      libavformat   52.64. 2 / 52.64. 2
      libavdevice   52. 2. 0 / 52. 2. 0
      libswscale     0.11. 0 /  0.11. 0
      libpostproc   51. 2. 0 / 51. 2. 0
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x186f460]max_analyze_duration reached
    
    Seems stream 0 codec frame rate differs from container frame rate: 600.00 (600/1) -> 0.08 (1/12)
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/tmp/vialogues_prez.mov':
      Metadata:
        major_brand     : qt  
        minor_version   : 537199360
        compatible_brands: qt  
        comment         : Microsoft PowerPoint Movie
        comment-eng     : Microsoft PowerPoint Movie
      Duration: 00:04:47.00, start: 0.000000, bitrate: 22 kb/s
        Stream #0.0(eng): Video: qtrle, bgra, 640x480, 21 kb/s, 0.01 fps, 0.08 tbr, 600 tbn, 600 tbc
        Stream #0.1(eng): Video: 0x0000, 600 tbr, 600 tbn, 600 tbc
        Stream #0.2(eng): Video: 0x0000, 600 tbr, 600 tbn, 600 tbc
    [libx264 @ 0x1873b50]using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64
    [libx264 @ 0x1873b50]profile High, level 3.0
    [libx264 @ 0x1873b50]264 - core 114 - 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=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=200 ratetol=20.0 qcomp=0.60 qpmin=10 qpmax=51 qpstep=4 ip_ratio=1.41 aq=1:1.00
    Output #0, mp4, to '/data/videos/vialogues_prez.mp4':
      Metadata:
        encoder         : Lavf52.64.2
        Stream #0.0(eng): Video: libx264, yuv420p, 640x480, q=10-51, 200 kb/s, 20 tbn, 20 tbc
    Stream mapping:
      Stream #0.0 -> #0.0
    Press [q] to stop encoding
    frame=    4 fps=  0 q=32766.0 Lsize=      50kB time=45.05 bitrate=   9.0kbits/s    
    video:49kB audio:0kB global headers:0kB muxing overhead 1.740573%
    [libx264 @ 0x1873b50]frame I:1     Avg QP:32.73  size:  8427
    [libx264 @ 0x1873b50]frame P:3     Avg QP:20.68  size: 13640
    [libx264 @ 0x1873b50]mb I  I16..4: 60.8% 14.6% 24.7%
    [libx264 @ 0x1873b50]mb P  I16..4: 28.7%  7.2% 15.4%  P16..4:  2.0%  1.3%  1.4%  0.0%  0.0%    skip:43.9%
    [libx264 @ 0x1873b50]final ratefactor: -16.67
    [libx264 @ 0x1873b50]8x8 transform intra:14.2% inter:5.0%
    [libx264 @ 0x1873b50]coded y,uvDC,uvAC intra: 25.2% 18.4% 13.0% inter: 5.3% 7.4% 7.2%
    [libx264 @ 0x1873b50]i16 v,h,dc,p: 63% 34%  1%  2%
    [libx264 @ 0x1873b50]i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 41% 31%  1%  1%  1%  1%  1%  4%
    [libx264 @ 0x1873b50]i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 29% 33% 19%  2%  3%  3%  4%  3%  4%
    [libx264 @ 0x1873b50]i8c dc,h,v,p: 75% 20%  4%  1%
    [libx264 @ 0x1873b50]Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x1873b50]ref P L0: 57.0% 12.2% 26.2%  4.7%
    [libx264 @ 0x1873b50]kb/s:1.14
    

    any help is appreciated.

  • VLC libx264 build error - "undefined reference to 'x264_encoder_open_128'"

    17 janvier 2013, par Tyler Scott

    Primary issue

    Steps to attempt to repeat this error.

    • Download latest git (git://git.videolan.org/x264.git).
    • Run ./configure - You can use any options, the error is present with all.
    • Run sudo make - It will compile all of the code but when it comes time to link the code it runs into the error

      /usr/local/lib/libavcodec.a(libx264.o): In function 'X264_init':
      /.../libx264.c:418: undefined reference to 'x264_encoder_open_128'

    This will then fall out and exit make. I have removed all apt packages relating to x264. I have searched my computer for any possible libraries that might be related and removed them. This problem persists. Can someone explain what is going wrong and the simplest way to solve this?

    Additional info

    This error also shows up when building avconv. It also fails at linking time with the same error. So I can assume it is nothing wrong with that directory or source.

  • How can I get RGB pixels from an opengl FrameBufferObject for libx264 encoding ?

    29 décembre 2012, par XieRan

    I want to get RGB pixels from the FrameBufferObject: fboName. Is there any method ? Do memmory map from GPU to CPU cost large time ?

        glGenFramebuffers(1, &fboName);
        glBindFramebuffer(GL_FRAMEBUFFER, fboName);     
        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, colorTexture, 0);
        glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, depthRenderbuffer);
    
  • speeding up x264 encoding (C++ code with libavcodec)

    20 décembre 2012, par Hrishikesh_Pardeshi

    I am trying to capture windows screen (continuous screen shots) and encode them into x264. For that I am using avcodec_encode_video2 function available with libavcodec. However, it takes a huge amount of time. The time fluctuates between 25 – 1800 milliseconds for encoding individual frames.

    I tried tried both 1080p and 720p with video recording on screen.

    These are the settings I am using. This was tested on Windows 7, win32 release build with 4 GB of RAM.

    bit_rate = 2000, width = 1920, height = 1080 qmin = 0, qmax = 0, max_b_frames = 0, frame_rate = 25, pixel_format = YUV 4:4:4. The remaining settings are default which are fetched using avcodec_get_context_defaults3().

    Sample data(in milliseconds) for 20 frames (consecutive and chosen randomly) in a set of 250 frames. { 121, 106, 289, 126, 211, 30, 181, 58, 213, 34, 245, 50, 56, 364, 247, 171, 254, 83, 82, 229 }

    For the application it is a must that it captures at least at 15 fps. Can someone help out to tell whether any options can be used to improve the frame rate. I need to encode lossless, but I am open to some file size increase.

    Thanks in advance.