【问题标题】:Encode Android's frame's .raw file to .png file format using ffmpeg使用 ffmpeg 将 Android 框架的 .raw 文件编码为 .png 文件格式
【发布时间】:2012-11-22 20:48:04
【问题描述】:

我使用了来自source 的脚本。它的作用是从移动(android)手机读取帧缓冲区信息并将其保存为 .raw 文件。然后它使用 ffmpeg 编码器创建 .png 文件。不幸的是,我得到的 png 图像就像(附在下面)。我尝试使用使用的“-pix_fmt”选项,并尝试使用 rgba 而不是该代码中使用的 rgb32(顺便说一句,它们都不起作用)。我使用了另一个脚本 (ascreenshooter.py) 来分析这个原始图像的标头以找到一些图像标头。它们被列为:

版本:1
bpp: 32
尺寸:2088960
宽度:544
身高:960
red_offset: 0
红色长度:8
blue_offset: 16
蓝色长度:8
green_offset:8
green_length:8
alpha_offset: 0
alpha_length: 8

请建议是否可以将此 .raw 图像文件编码为 png 格式。如果有可能比我应该使用的 ffmpeg 选项以及是否有其他更有效的工具确实退出了这个编码过程。

根据要求提供示例原始图像:

http://tabak.csc.ncsu.edu/arpit.raw

【问题讨论】:

  • 你能提供一个示例原始输入文件吗?
  • 嗨@LordNeckbeard,我也提供了.raw 图像。请让我知道我哪里出错了。谢谢。

标签: android python ffmpeg adb screenshot


【解决方案1】:

您知道脚本最终实际使用的是哪种图像采集工具吗?如果它使用screencap - 那么您可以使用screencap -p filename.png 将图像直接保存到.png 文件中,而无需稍后进行转换。

【讨论】:

    【解决方案2】:
    cd /mnt
    adb pull /dev/graphics/fb0 fb0
    #LOAD RAW
    
    ffmpeg   -vcodec rawvideo   -f rawvideo   -pix_fmt rgb32   -s 1024x768   -i ./fb0     -f image2   -vcodec png screendump.png
    
    ##### 768x1024 PORTRAIT, 1024x768 LANDSCAPE
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2017-12-16
      • 2015-08-27
      • 2013-02-27
      • 1970-01-01
      • 2017-12-22
      相关资源
      最近更新 更多