Newest 'libx264' Questions - Stack Overflow

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

Les articles publiés sur le site

  • ffmpeg for android, out of memory on encoding h264

    15 juin 2018, par Rafael Lima

    I'm getting an weird error when enconding a video with ffmpeg on android

    Failed to inject frame into filter network: Out of memory

    Althoug is a pretty objective error, I do believe this is some "generic message" for another problem, because the video I used for testing is 17MB and less than 11 seconds length and I've sucessfully tested with videos bigger than 200MB and longer than 5min

    This problem happens to any video vertical videos recorded on my phone (the videos were recorded and play fine on my phone but i cant reencode them... other video h264 were encoded fine on same phone)

    this is ffmpeg output

    ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
      built with Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
      configuration: --prefix=/home/rafa/Desktop/m4/build --target-os=android --arch=i686 --cpu=i686 --cross-prefix=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/i686-linux-android- --enable-cross-compile --cc=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/clang --cxx=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/clang++ --pkg-config=/usr/bin/pkg-config --pkg-config-flags=--static --enable-pic --enable-gpl --enable-nonfree --enable-static --disable-shared --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-doc --disable-devices --enable-libx264 --enable-libfdk-aac --enable-bsf=aac_adtstoasc --disable-asm
      libavutil      56. 14.100 / 56. 14.100
      libavcodec     58. 18.100 / 58. 18.100
      libavformat    58. 12.100 / 58. 12.100
      libavdevice    58.  3.100 / 58.  3.100
      libavfilter     7. 16.100 /  7. 16.100
      libswscale      5.  1.100 /  5.  1.100
      libswresample   3.  1.100 /  3.  1.100
      libpostproc    55.  1.100 / 55.  1.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/data/com.tomatedigital.toolsforinstagram/qqq.mp4':
      Metadata:  
        major_brand     : mp42
        minor_version   : 0
        compatible_brands: isommp42
        creation_time   : 2018-06-09T04:28:55.000000Z
        location        : -08.0638-034.8723/
        location-eng    : -08.0638-034.8723/
        com.android.version: 7.0
      Duration: 00:00:09.06, start: 0.000000, bitrate: 17349 kb/s
        Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 17088 kb/s, SAR 1:1 DAR 16:9, 30.04 fps, 30 tbr, 90k tbn, 180k tbc (default)
        Metadata:
          rotate          : 90
          creation_time   : 2018-06-09T04:28:55.000000Z
          handler_name    : VideoHandle
        Side data:
          displaymatrix: rotation of -90.00 degrees
        Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 255 kb/s (default)
        Metadata:
          creation_time   : 2018-06-09T04:28:55.000000Z
          handler_name    : SoundHandle
    Stream mapping:
      Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
      Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    Error reinitializing filters!
    Failed to inject frame into filter network: Out of memory
    Error while processing the decoded data for stream #0:0
    Conversion failed!
    

    =====================UPDATE===================

    I re-run the command with -v 9 -loglevel 99 and got paste the log file at:

    https://pastebin.com/ihawsPvZ

    If someone have real good expertise at ffmpeg i would apreciate very much the help

    =====================UPDATE 2=================

    I made more tests and the problem happens only when i record the video with my phone at vertical (other videos in vertical work and videos from my phone in horizontal also work)

    ==================UPDATE 3==================== I detected the problem happens to ANY video with the

    Metadata:
          rotate          : 90 (or any value)
    

    It was suggested to use -noautorotate as workaround and it WORKDED, but this implies in tons of other complications ex:

    -if i decide to apply any filter to the video, it will be applied to the horizontal version but the video will be played at vertical producing a totally different effect

    ex: https://i.stack.imgur.com/R3jXJ.jpg (at this photo the drawtext filter should be placed at bottom line with horizontal text, but as ffmpeg can't handle the orientation it is missplaced and rotated at runtime producing this vertical message)

    -I checked and if I set -metadata:s:v:0 rotate= while enconding it has no effect ex:

    ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate= output.mp4
    will remove the rotate metadata and produce a non rotated video

    BUT
    ffmpeg -i input.mp4 -c:v libx264 -metadata:s:v:0 rotate= output.mp4
    will keep the metadata and the produced video will be played rotated (this behavior was also noticed on the official ffmpeg 4.0 binaries for windows available at ffmpeg website)

    I'M STILL LOOKING FOR A BETTER SOLUTION, THANKS FOR THE HELP

  • ffmpeg for android out of memory

    15 juin 2018, par Rafael Lima

    I'm getting an weird error when enconding a video with ffmpeg on android

    Failed to inject frame into filter network: Out of memory

    Althoug is a pretty objective error, I do believe this is some "generic message" for another problem, because the video I used for testing is 17MB and less than 11 seconds length and I've sucessfully tested with videos bigger than 200MB and longer than 5min

    This problem happens to any video recorded on my phone (the videos were recorded and play fine on my phone but i cant reencode them... other video h264 were encoded fine on same phone)

    this is ffmpeg output

    ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
      built with Android (4691093 based on r316199) clang version 6.0.2 (https://android.googlesource.com/toolchain/clang 183abd29fc496f55536e7d904e0abae47888fc7f) (https://android.googlesource.com/toolchain/llvm 34361f192e41ed6e4e8f9aca80a4ea7e9856f327) (based on LLVM 6.0.2svn)
      configuration: --prefix=/home/rafa/Desktop/m4/build --target-os=android --arch=i686 --cpu=i686 --cross-prefix=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/i686-linux-android- --enable-cross-compile --cc=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/clang --cxx=/home/rafa/Desktop/m4/ndk/toolchain/i686/bin/clang++ --pkg-config=/usr/bin/pkg-config --pkg-config-flags=--static --enable-pic --enable-gpl --enable-nonfree --enable-static --disable-shared --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-doc --disable-devices --enable-libx264 --enable-libfdk-aac --enable-bsf=aac_adtstoasc --disable-asm
      libavutil      56. 14.100 / 56. 14.100
      libavcodec     58. 18.100 / 58. 18.100
      libavformat    58. 12.100 / 58. 12.100
      libavdevice    58.  3.100 / 58.  3.100
      libavfilter     7. 16.100 /  7. 16.100
      libswscale      5.  1.100 /  5.  1.100
      libswresample   3.  1.100 /  3.  1.100
      libpostproc    55.  1.100 / 55.  1.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/data/data/com.tomatedigital.toolsforinstagram/qqq.mp4':
      Metadata:
        major_brand     : mp42
        minor_version   : 0
        compatible_brands: isommp42
        creation_time   : 2018-06-09T04:28:55.000000Z
        location        : -08.0638-034.8723/
        location-eng    : -08.0638-034.8723/
        com.android.version: 7.0
      Duration: 00:00:09.06, start: 0.000000, bitrate: 17349 kb/s
        Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 17088 kb/s, SAR 1:1 DAR 16:9, 30.04 fps, 30 tbr, 90k tbn, 180k tbc (default)
        Metadata:
          rotate          : 90
          creation_time   : 2018-06-09T04:28:55.000000Z
          handler_name    : VideoHandle
        Side data:
          displaymatrix: rotation of -90.00 degrees
        Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 255 kb/s (default)
        Metadata:
          creation_time   : 2018-06-09T04:28:55.000000Z
          handler_name    : SoundHandle
    Stream mapping:
      Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
      Stream #0:1 -> #0:1 (copy)
    Press [q] to stop, [?] for help
    Error reinitializing filters!
    Failed to inject frame into filter network: Out of memory
    Error while processing the decoded data for stream #0:0
    Conversion failed!
    
  • How to encode frames selectively and write in different video files as per required

    10 juin 2018, par MSD Paul

    suppose, for example, I have 10 frames, I want to encode 1,2,3 in one video, 4,5,6 in another video and rest in another video. How to achieve this without encoding each of them differently by us. (as that solution will not be scalable) How to change in the code while writing encoded frames into the video file?

    How to make the write to happen into multiple video files.

    and how to change the sequence of encoding i.e. after 1 how can I possibly encode 4,5 skipping 2,3 after 4,5 done then encode 2,3. How to do this?

  • Parsing x264 to LibAV in C

    26 mai 2018, par Stephan Pich

    For a Project in School I have to encode and mux a Yuv File to mp4 using the Libav and lib x264 explicitly. I've already managed to encode the File to h264 using the libx264 but now i'm stuck muxing them into mp4.

    I know that I've to write the NALU Packages into the file but I've no Idea how to turn the NALU to AVFrame or AVPacket.

    Thanks for your help in advance.

  • H.264 codec with FMO and data partitioning support ?

    25 avril 2018, par Siego

    For a project I need to use H.264 codec for a error prone environment. For this i want to use FMO and data partitioning. But i cant find a codec that support these features or the extend profile.

    So does anybody know a H.264 libary I can use that support this?