Newest 'libx264' Questions - Stack Overflow

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

Articles published on the website

  • What is the minimum amount of metadata is needed to stream only video using libx264 to encode at the server and libffmpeg to decode at the client?

    19 March 2012, by cloudraven

    I want to stream video (no audio) from a server to a client. I will encode the video using libx264 and decode it with ffmpeg. I plan to use fixed settings (at the very least they will be known in advance by both the client and the server). I was wondering if I can avoid wrapping the compressed video in a container format (like mp4 or mkv).

    Right now I am able to encode my frames using x264_encoder_encode. I get a compressed frame back, and I can do that for every frame. What extra information (if anything at all) do I need to send to the client so that ffmpeg can decode the compressed frames, and more importantly how can I obtain it with libx264. I assume I may need to generate NAL information (x264_nal_encode?). Having an idea of what is the minimum necessary to get the video across, and how to put the pieces together would be really helpful.

  • ffmpeg conversion skips audio

    10 March 2012, by user504879

    While converting a video to mp4 format using ffmpeg the audio gets skipped because of which the audio goes out of sync with the Video.

    One can have a look at the following Video: https://vialogues.com/vialogues/play/486

    I am using the following options for conversion

    /usr/local/bin/ffmpeg -y -i $inputfile -acodec libfaac -ar 44100 -ab 96k -vcodec libx264 -level 41 -bufsize 20000k -maxrate 25000k -g 250 -r 20 -s 480x270 -coder 1 -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +dct8x8+bpyramid -me_method umh -subq 7 -me_range 16 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -rc_eq 'blurCplx^(1-qComp)' -bf 16 -b_strategy 1 -bidir_refine 1 -refs 6 -crf 25 -deblockalpha 0 -vpre medium -deblockbeta 0 $outputfile
    

    Also the ffmpeg version is

    ffmpeg
    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
    Hyper fast Audio and Video encoder
    

    Any ideas as to why this would be happening?

  • How to solve libx264 not found when building ffmpeg-with-libx264-enabled for android?

    6 March 2012, by newentry

    i am trying build android-ffmpeg-x264 downloaded from git. Link https://github.com/halfninja/android-ffmpeg-x264

    After running ./config_make_everything.sh i am getting following error

    ERROR: libx264 not found

    If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net. Include the log file "config.log" produced by configure as this will help solving the problem.

    Makefile:1: config.mak: No such file or directory
    libavutil/Makefile:1: libavutil/../config.mak: No such file or directory
    libavutil/../subdir.mak:96: warning: overriding commands for target `libavutil/'
    libavutil/../subdir.mak:26: warning: ignoring old commands for target `libavutil/'
    libavutil/../subdir.mak:96: warning: overriding commands for target `libavutil/'
    libavutil/../subdir.mak:96: warning: ignoring old commands for target `libavutil/'
    
    tests/Makefile:44: /tests/fate.mak: No such file or directory
    tests/Makefile:45: /tests/fate2.mak: No such file or directory
    tests/Makefile:47: /tests/fate/aac.mak: No such file or directory
    tests/Makefile:48: /tests/fate/als.mak: No such file or directory
    tests/Makefile:49: /tests/fate/fft.mak: No such file or directory
    tests/Makefile:50: /tests/fate/h264.mak: No such file or directory
    tests/Makefile:51: /tests/fate/mp3.mak: No such file or directory
    tests/Makefile:52: /tests/fate/vorbis.mak: No such file or directory
    tests/Makefile:53: /tests/fate/vp8.mak: No such file or directory
    make: *** No rule to make target `/tests/fate/vp8.mak'.  Stop.
    

    config.log contains

        ratecontrol.c:(.text+0xa400): undefined reference to `memset'
    ratecontrol.c:(.text+0xa41c): undefined reference to `memset'
    ratecontrol.c:(.text+0xa448): undefined reference to `__aeabi_l2d'
    ratecontrol.c:(.text+0xa49c): undefined reference to `__aeabi_ldivmod'
    ratecontrol.c:(.text+0xa4a0): undefined reference to `__aeabi_l2d'
    ratecontrol.c:(.text+0xa4f8): undefined reference to `__aeabi_idivmod'
    ratecontrol.c:(.text+0xa794): undefined reference to `__aeabi_l2d'
    ../x264/libx264.a(set.o): In function `x264_validate_levels':
    set.c:(.text+0x200): undefined reference to `__aeabi_ldivmod'
    set.c:(.text+0x334): undefined reference to `__aeabi_idiv'
    ../x264/libx264.a(set.o): In function `x264_sei_version_write':
    set.c:(.text+0xeec): undefined reference to `strlen'
    set.c:(.text+0xf10): undefined reference to `memcpy'
    set.c:(.text+0xf3c): undefined reference to `sprintf'
    set.c:(.text+0xf44): undefined reference to `strlen'
    ../x264/libx264.a(set.o): In function `scaling_list_write':
    set.c:(.text+0x20b0): undefined reference to `memcmp'
    set.c:(.text+0x2138): undefined reference to `memcmp'
    set.c:(.text+0x2158): undefined reference to `memcmp'
    ../x264/libx264.a(set.o): In function `x264_pps_write':
    set.c:(.text+0x5870): undefined reference to `memcmp'
    set.c:(.text+0x5a7c): undefined reference to `memcmp'
    ../x264/libx264.a(set.o):set.c:(.text+0x5a9c): more undefined references to `memcmp' follow
    ../x264/libx264.a(macroblock.o): In function `x264_noise_reduction_update':
    macroblock.c:(.text+0xe10): undefined reference to `__aeabi_uldivmod'
    ../x264/libx264.a(macroblock.o): In function `x264_predict_lossless_8x8_chroma':
    macroblock.c:(.text+0x3224): undefined reference to `memcpy'
    macroblock.c:(.text+0x323c): undefined reference to `memcpy'
    ../x264/libx264.a(cabac.o): In function `x264_macroblock_write_cabac':
    cabac.c:(.text+0x2c58): undefined reference to `__assert2'
    cabac.c:(.text+0x2dd8): undefined reference to `__assert2'
    cabac.c:(.text+0x2f80): undefined reference to `__assert2'
    cabac.c:(.text+0x3020): undefined reference to `__assert2'
    ../x264/libx264.a(rectangle.o): In function `x264_macroblock_cache_ref_1_1':
    rectangle.c:(.text+0x1e4): undefined reference to `__assert2'
    ../x264/libx264.a(rectangle.o):rectangle.c:(.text+0x210): more undefined references to `__assert2' follow
    ERROR: libx264 not found
    

    1.I am using fedora to build both ffmpeg and x264 2.NDK r7

    Any solution to successfully build the code?

  • Weird and unpredictable crash when using libx264 cross-compiled with MinGW

    2 March 2012, by Daniel

    I'm working on a C++ project using Visual Studio 2010 on Windows. I'm linking dynamically against x264 which I built myself as a shared library using MinGW following the guide at

    http://www.ayobamiadewole.com/Blog/Others/x264compilation.aspx

    The strange thing is that my x264 code is working perfectly sometimes. Then when I change some line of code (or even change the comments in the file!) and recompile everything crashes on the line

    encoder_ = x264_encoder_open(&param);
    

    With the message

    Access violation reading location 0x00000000
    

    I'm not doing anything funky at all so it's probably not my code that is wrong but I guess there is something going wrong with the linking or maybe something is wrong with how I compiled x264.

    The full initialization code:

    x264_param_t param = { 0 };
    if (x264_param_default_preset(&param, "ultrafast", "zerolatency") < 0) {
      throw KStreamerException("x264_param_default_preset failed");
    }
    
    param.i_threads = 1;
    param.i_width = 640;
    param.i_height = 480;
    param.i_fps_num = 10;
    param.i_fps_den = 1;
    
    encoder_ = x264_encoder_open(&param); // <-----
    if (encoder_ == 0) {
      throw KStreamerException("x264_encoder_open failed");
    }
    
    x264_picture_alloc(&pic_, X264_CSP_I420, 640, 480);
    

    Edit: It turns out that it always works in Release mode and when using superfast instead of ultrafast it also works in Debug mode 100%. Could it be that the ultrafast mode is doing some crazy optimizations that the debugger doesn't like?

  • What parameters are required to use x264 via ffmpeg?

    15 February 2012, by nightWatcher

    i have an AVI file, i have decoded it into Raw form first, now i want to encode it in .h264 format. I am using libavcodec.dll and libavformat.dll. The point is when i try to open the codec from avcodec_open(AVCodecContext,AVCodec) It doesnot open. Am i missing some parameters that i need to specify for execution of this method for the lib x264? Any help will be deeply appreciated. Thanks