【问题标题】:I can't capture android screen using adb screen record tool我无法使用 adb 屏幕记录工具捕获 android 屏幕
【发布时间】:2014-02-26 04:15:39
【问题描述】:

我有一个带有 android KitKat 的 nexus 4。

我尝试使用以下命令进行屏幕录制:

adb shell screenrecord --verbose /sdcard/demo.mp4

adb shell screenrecord --bit-rate 8000000 --time-limit 30 /sdcard/kitkat.mp4

两次,命令都返回此消息:

Main display is 768x1280 @60.00fps (orientation=0)
Configuring recorder for 768x1280 video at 4.00Mbps
ERROR: unable to create video/avc codec instance

在我在 AndroidStudio 中打开的调试控制台中,显示了以下日志消息:

02-02 18:16:29.058     176-4045/? E/OMX-VENC-720p﹕ Is component secure 0
02-02 18:16:29.058     176-4045/? E/OMX-VENC-720p﹕ ERROR: Omx_venc::Comp Init Returning failure
02-02 18:16:29.058     176-4045/? E/OMX-VENC-720p﹕ ERROR: venc_open failed
02-02 18:16:29.058     176-4045/? E/OMX-VENC-720p﹕ Destroy C2D instance
02-02 18:16:29.058  11072-11086/? E/ACodec﹕ Unable to instantiate a decoder for type 'video/avc'.
02-02 18:16:29.058  11072-11085/? E/MediaCodec﹕ Codec reported an error. (omx error 0x80001003, internalError -2147483648)

有人知道如何解决这个问题吗? (我尝试了较小的分辨率,但没有成功)

【问题讨论】:

  • 你厌倦了将比特率降低到 4000000 吗?
  • @Emmanuel 是的,但是没有用。
  • 您确定这是正确的日志输出吗?它抱怨的是解码器,而不是编码器,并且那里也应该有来自屏幕记录的失败消息。其他编码视频的应用程序是否有效?例如github.com/google/grafika,启动“Show + capture camera”活动并点击“record”。
  • 这在 MediaCodec::CreateByType() 中失败,甚至在它尝试配置编码器之前。它根本找不到 AVC 编解码器。这是 Android 的库存安装吗?
  • @fadden 是的。我已经安装了一个启动器。这可能是原因吗? (明天我会尝试使用默认启动器)我猜不是......不明白为什么会

标签: android android-mediacodec screen-recording


【解决方案1】:

我遇到了同样的问题...并成功解决了...但我不知道如何...

我跑的时候:

$>adb.exe shell screenrecord --verbose /sdcard/kitkat.mp4

我收到了这个错误:

主显示屏为 768x1280 @60.00fps(方向=0) 为 4.00Mbp 的 768x1280 视频配置录像机 错误:无法创建视频/avc 编解码器实例

为了解决我的问题,我首先降低了比特率:

$>adb.exe shell screenrecord --bit-rate 1000000 --time-limit 30 --verbose /sdcard/kitkat.mp4

然后当我运行默认命令时...:

$>adb.exe shell screenrecord --verbose /sdcard/kitkat.mp4

有效...

可能是因为我在第一次出错后也重新启动了adb服务器...

很奇怪……

【讨论】:

    【解决方案2】:

    重启手机后:

    ERROR: unable to create video/avc codec instance
    

    然后就成功了……

    【讨论】:

    • 重启也为我修复了它。我还注意到,当这种情况发生时,我的设备严重减慢(可能是一些内存问题),也许这就是导致原始问题的原因。
    • 遇到了录制的视频损坏的问题,重新启动我的手机修复了它。
    【解决方案3】:

    对于可能仍然遇到此问题的任何人,我遇到了完全相同的问题。我在网上找不到任何可以帮助我修复它的东西。

    无论如何,在某个时候,我在 Nexus 4 上打开了相机应用程序,我发现由于某种原因,我无法再录制视频了——该功能无法正常工作。

    此时我认为某些东西可能已损坏。我对手机进行了出厂数据重置,重置完成后,我再次尝试使用屏幕录像,问题就消失了。我能够毫无问题地在手机上录制屏幕。

    我仍然不知道是什么导致了这个问题,或者它是否与我在使用相机应用程序的视频录制功能时遇到的问题有关,但是将我的手机重置为出厂设置为我解决了这个问题。

    我希望这会有所帮助!

    【讨论】:

    • 这个答案会对这个问题做出很好的评论。
    【解决方案4】:

    我不知道这是否会有很大帮助,但是:

    尽管有错误,但设备实际上应该正在录制。所以忽略警告并检查 /sdcard,你的录音应该在那里。

    也试试这个(没有任何其他东西)

    adb shell screenrecord /sdcard/demo.mp4
    

    这应该可行。如果你得到错误

    ERROR: unable to configure codec (err-2147483648)
    WARNING: failed at ___x___,retrying at ___x___
    

    别担心。

    只是一个旁注(我相信你已经准备好了),仔细检查你的驱动程序是否正确安装并且路径配置等等。

    我正在做一个记录 Nexus/KitKat 设备的小项目:http://goo.gl/LEALYL (项目博文:http://goo.gl/BnBzNw)

    【讨论】:

    • “在 WxH 失败,在 WxH 重试”仅在 configure() 调用失败时出现,因为编解码器无法处理默认分辨率,默认分辨率设置为显示器的完整尺寸。 screenrecord 以 720p 重试。问题中的失败发生在 configure() 甚至被调用之前。它在尝试向编码器提供任何东西之前就开始了。
    • @kungapaogao 只给出屏幕记录 /sdcard/demo.mp4 后,我得到 dequeueOutputBuffer 返回-11。知道如何解决这个问题吗?
    【解决方案5】:

    尝试关闭省电模式。三星的省电模式降低了屏幕速率,screenrecord 不考虑这种差异。其他 ROM 也使用此功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-15
      • 2014-03-22
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多