<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hello everyone.<br>
    <br>
    <span tabindex="-1" id="result_box" class="short_text" lang="en"><span
        class="hps">I'm new here, </span></span><span tabindex="-1"
      id="result_box" class="short_text" lang="en"><span class="hps">and
        I hope to</span> <span class="hps">learn a lot</span> <span
        class="hps">here</span></span>.<br>
    <br>
    I have searched on <a href="https://libav.org/">libav.org</a> , but
    I have not found an answer.<br>
    <br>
    I use FFmpeg/Libav, to encode the framebuffer of my android devices.<br>
    I do this to make some tutorials for using TWRP, an Android custum
    recovery.<br>
    <br>
    <blockquote type="cite">My computer : Kubuntu 12.04 x64 | ffmpeg
      version 0.8.9-4:0.8.9-0ubuntu0.12.04.1<br>
      <br>
      ffmpeg version 0.8.9-4:0.8.9-0ubuntu0.12.04.1, Copyright (c)
      2000-2013 the Libav developers<br>
        built on Nov  9 2013 19:08:00 with gcc 4.6.3<br>
      *** THIS PROGRAM IS DEPRECATED ***<br>
      This program is only provided for compatibility and will be
      removed in a future release. Please use avconv instead.<br>
      ffmpeg 0.8.9-4:0.8.9-0ubuntu0.12.04.1<br>
      libavutil    51. 22. 1 / 51. 22. 1<br>
      libavcodec   53. 35. 0 / 53. 35. 0<br>
      libavformat  53. 21. 1 / 53. 21. 1<br>
      libavdevice  53.  2. 0 / 53.  2. 0<br>
      libavfilter   2. 15. 0 /  2. 15. 0<br>
      libswscale    2.  1. 0 /  2.  1. 0<br>
      libpostproc  52.  0. 0 / 52.  0. 0</blockquote>
    <br>
    <span tabindex="-1" id="result_box" class="short_text" lang="en"><span
        class="hps">I</span> <span class="hps">asked for your help</span><span>,</span>
      <span class="hps">for two things :<br>
        <br>
        <blockquote type="cite">- Optimize the commands I used to encode
          the framebuffer of Nexus 4 and Nexus 7<br>
          - Find, if it exists, the command to encode the framebuffer of
          Nexus 5</blockquote>
      </span></span><br>
    Thank you in advance<br>
    <br>
    To get the framebuffer from android devices, I do "adb pull
    /dev/graphics/fb0" (using Android SDK).<br>
    <br>
    Then,<br>
    <br>
    <u><b>On Nexus 7, I do :</b></u><br>
    <br>
    fb0_nexus_7(2012) -> <a
      href="https://app.box.com/s/qtug6l3lsktiaaacvtat">https://app.box.com/s/qtug6l3lsktiaaacvtat</a><br>
    <br>
    <blockquote type="cite">ffmpeg -vframes 1 -vcodec rawvideo -f
      rawvideo -pix_fmt rgb565le -s 800x1280 -i "fb0_nexus_7(2012)"  -f
      image2 -vcodec png "fb0_nexus_7(2012)_grand.png"</blockquote>
    <br>
    <br>
    I think the command can be optimized, in view of the result in my
    Konsole :<br>
    <br>
    <blockquote type="cite">ffmpeg version
      0.8.9-4:0.8.9-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav
      developers<br>
        built on Nov  9 2013 19:08:00 with gcc 4.6.3<br>
      *** THIS PROGRAM IS DEPRECATED ***<br>
      This program is only provided for compatibility and will be
      removed in a future release. Please use avconv instead.<br>
      [rawvideo @ 0x20309e0] Estimating duration from bitrate, this may
      be inaccurate<br>
      Input #0, rawvideo, from 'fb0_nexus_7(2012)':<br>
        Duration: N/A, start: 0.000000, bitrate: N/A<br>
          Stream #0.0: Video: rawvideo, rgb565le, 800x1280, 25 tbr, 25
      tbn, 25 tbc<br>
      Incompatible pixel format 'rgb565le' for codec 'png',
      auto-selecting format 'rgb24'<br>
      [buffer @ 0x2030fc0] w:800 h:1280 pixfmt:rgb565le<br>
      [avsink @ 0x203aa20] auto-inserting filter 'auto-inserted scaler
      0' between the filter 'src' and the filter 'out'<br>
      [scale @ 0x203f380] w:800 h:1280 fmt:rgb565le -> w:800 h:1280
      fmt:rgb24 flags:0x4<br>
      Output #0, image2, to 'fb0_nexus_7(2012)_grand.png':<br>
        Metadata:<br>
          encoder         : Lavf53.21.1<br>
          Stream #0.0: Video: png, rgb24, 800x1280, q=2-31, 200 kb/s,
      90k tbn, 25 tbc<br>
      Stream mapping:<br>
        Stream #0.0 -> #0.0<br>
      Press ctrl-c to stop encoding<br>
      frame=    1 fps=  0 q=0.0 Lsize=      -0kB time=0.04 bitrate= 
      -4.4kbits/s    <br>
      video:30kB audio:0kB global headers:0kB muxing overhead
      -100.072311%</blockquote>
    <br>
    <br>
    Then I get a good picture : <a
href="http://ikslawok.free.fr/my_nexus_fr/nexus_5/twrp/pb_ffmpeg/fb0_nexus_7%282012%29_post.png">http://ikslawok.free.fr/my_nexus_fr/nexus_5/twrp/pb_ffmpeg/fb0_nexus_7%282012%29_post.png</a><br>
    <br>
    <br>
    <br>
    <u><b>On Nexus 4, I do :</b></u><br>
    <br>
    fb0_nexus_4 -> <a
      href="https://app.box.com/s/z6vko37ywj9vkn8vn0ug">https://app.box.com/s/z6vko37ywj9vkn8vn0ug</a><br>
    <br>
    <blockquote type="cite">ffmpeg -vframes 1 -vcodec rawvideo -f
      rawvideo -pix_fmt rgba -s 768x1280 -i "fb0_nexus_4"  -f image2
      -vcodec png "fb0_nexus_4_grand.png"</blockquote>
    <br>
    I think the command can be optimized too, in view of the result in
    my Konsole :<br>
    <br>
    <blockquote type="cite">ffmpeg version
      0.8.9-4:0.8.9-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav
      developers<br>
        built on Nov  9 2013 19:08:00 with gcc 4.6.3<br>
      *** THIS PROGRAM IS DEPRECATED ***<br>
      This program is only provided for compatibility and will be
      removed in a future release. Please use avconv instead.<br>
      [rawvideo @ 0x188a9e0] Estimating duration from bitrate, this may
      be inaccurate<br>
      Input #0, rawvideo, from 'fb0_nexus_4':<br>
        Duration: N/A, start: 0.000000, bitrate: N/A<br>
          Stream #0.0: Video: rawvideo, rgba, 768x1280, 25 tbr, 25 tbn,
      25 tbc<br>
      Incompatible pixel format 'rgba' for codec 'png', auto-selecting
      format 'rgb24'<br>
      [buffer @ 0x188afc0] w:768 h:1280 pixfmt:rgba<br>
      [avsink @ 0x1894a40] auto-inserting filter 'auto-inserted scaler
      0' between the filter 'src' and the filter 'out'<br>
      [scale @ 0x18993c0] w:768 h:1280 fmt:rgba -> w:768 h:1280
      fmt:rgb24 flags:0x4<br>
      Output #0, image2, to 'b0_nexus_4_grand.png':<br>
        Metadata:<br>
          encoder         : Lavf53.21.1<br>
          Stream #0.0: Video: png, rgb24, 768x1280, q=2-31, 200 kb/s,
      90k tbn, 25 tbc<br>
      Stream mapping:<br>
        Stream #0.0 -> #0.0<br>
      Press ctrl-c to stop encoding<br>
      frame=    1 fps=  0 q=0.0 Lsize=      -0kB time=0.04 bitrate= 
      -4.4kbits/s    <br>
      video:30kB audio:0kB global headers:0kB muxing overhead
      -100.071004%</blockquote>
    <br>
    <br>
    Then I get a good picture : <a
href="http://ikslawok.free.fr/my_nexus_fr/nexus_5/twrp/pb_ffmpeg/fb0_nexus_4_grand.png">http://ikslawok.free.fr/my_nexus_fr/nexus_5/twrp/pb_ffmpeg/fb0_nexus_4_grand.png</a><br>
    <br>
    <u><b><br>
      </b></u><u><b>I tried, without success on Nexus 5 :</b></u><br>
    <br>
    fb0_nexus_5 -> <a
      href="https://app.box.com/s/7p2091hg9evyacxi52s3">https://app.box.com/s/7p2091hg9evyacxi52s3</a><br>
    <br>
    <blockquote type="cite">ffmpeg -vframes 1 -vcodec rawvideo -f
      rawvideo -pix_fmt rgba -s 1080x1920 -i "fb0_nexus_5"  -f image2
      -vcodec png "fb0_nexus_5_grand.png"</blockquote>
    The result in my Konsole :<br>
    <br>
    <blockquote type="cite">ffmpeg version
      0.8.9-4:0.8.9-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav
      developers<br>
        built on Nov  9 2013 19:08:00 with gcc 4.6.3<br>
      *** THIS PROGRAM IS DEPRECATED ***<br>
      This program is only provided for compatibility and will be
      removed in a future release. Please use avconv instead.<br>
      [rawvideo @ 0x20199e0] Estimating duration from bitrate, this may
      be inaccurate<br>
      Input #0, rawvideo, from 'fb0_nexus_5':<br>
        Duration: N/A, start: 0.000000, bitrate: N/A<br>
          Stream #0.0: Video: rawvideo, rgba, 1080x1920, 25 tbr, 25 tbn,
      25 tbc<br>
      Incompatible pixel format 'rgba' for codec 'png', auto-selecting
      format 'rgb24'<br>
      [buffer @ 0x2019fc0] w:1080 h:1920 pixfmt:rgba<br>
      [avsink @ 0x2023a40] auto-inserting filter 'auto-inserted scaler
      0' between the filter 'src' and the filter 'out'<br>
      [scale @ 0x20283c0] w:1080 h:1920 fmt:rgba -> w:1080 h:1920
      fmt:rgb24 flags:0x4<br>
      Output #0, image2, to 'fb0_nexus_5_grand.png':<br>
        Metadata:<br>
          encoder         : Lavf53.21.1<br>
          Stream #0.0: Video: png, rgb24, 1080x1920, q=2-31, 200 kb/s,
      90k tbn, 25 tbc<br>
      Stream mapping:<br>
        Stream #0.0 -> #0.0<br>
      Press ctrl-c to stop encoding<br>
      frame=    1 fps=  0 q=0.0 Lsize=      -0kB time=0.04 bitrate= 
      -4.4kbits/s    <br>
      video:50kB audio:0kB global headers:0kB muxing overhead
      -100.042899%</blockquote>
    <br>
    <br>
    Then I get this "picture" : <a
href="http://ikslawok.free.fr/my_nexus_fr/nexus_5/twrp/pb_ffmpeg/fb0_nexus_5_grand.png">http://ikslawok.free.fr/my_nexus_fr/nexus_5/twrp/pb_ffmpeg/fb0_nexus_5_grand.png</a><br>
    <br>
    I only know that Nexus 5 use pixel format "RGBX_8888", and
    resolution is 1080x1920<br>
    <br>
    <blockquote type="cite">Starting the UI...Pixel format: 1080x1920 @
      32bpp<br>
      Pixel format: RGBX_8888<br>
      framebuffer: fd 4 (1080 x 1920)</blockquote>
    <br>
    <br>
    I hope I have provided all the information, and respect the mailing
    lists rules, to get some help.<br>
    <br>
    Thank you for your help.<br>
    <br>
    Have a good day.
  </body>
</html>