相关疑难解决方法(0)

从adb shell读取二进制stdout数据?

是否可以从adb shell命令读取二进制stdout?例如,如何使用screencap的所有示例包括两个步骤:

adb shell screencap -p /sdcard/foo.png
adb pull /sdcard/foo.png
Run Code Online (Sandbox Code Playgroud)

但是,该服务支持写入stdout.例如,您可以执行以下操作:

adb shell "screencap -p > /sdcard/foo2.png"
adb pull /sdcard/foo2.png
Run Code Online (Sandbox Code Playgroud)

这同样有效.但是,如何阅读亚行的产出呢?我想做的是以下内容:

adb shell screencap -p > foo3.png
Run Code Online (Sandbox Code Playgroud)

并避免中间写入SD卡.这会生成看起来像PNG文件的strings foo3.png东西(正在运行生成带有IHDR,IEND等的东西)并且大小大致相同,但就图像阅读器而言,文件已损坏.

我也尝试在java中使用ddmlib来做到这一点,结果是一样的.我很乐意使用任何必要的图书馆.我的目标是减少获取捕获的总时间.在我的设备上,使用双命令解决方案,获取图像大约需要3秒钟.使用ddmlib和捕获stdout需要不到900毫秒,但它不起作用!

是否有可能做到这一点?

编辑:这是两个文件的hexdump.第一个,screen.png来自stdout并且已损坏.第二个,xscreen来自双命令解决方案并且有效.图像应在视觉上相同.

$ hexdump -C screen.png | head
00000000  89 50 4e 47 0d 0d 0a 1a  0d 0a 00 00 00 0d 49 48  |.PNG..........IH|
00000010  44 52 00 00 02 d0 00 00  05 00 08 06 00 00 00 6e  |DR.............n|
00000020  ce …
Run Code Online (Sandbox Code Playgroud)

android adb

60
推荐指数
7
解决办法
3万
查看次数

如何使用ffmpeg最小化实时流媒体的延迟

我有个问题.我想从我的网络摄像头用ffmpeg进行直播.

  1. 我启动了ffserver并且它可以工作.
  2. 从另一个终端我使用此命令启动ffmpeg流,它可以工作:

    sudo ffmpeg -re -f video4linux2 -i /dev/video0 -fflags nobuffer -an http://localhost:8090/feed1.ffm
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在我的配置文件中,我有这个流:

    <Stream test.webm>
    Feed feed1.ffm
    Format webm
     NoAudio
     VideoCodec libvpx
     VideoSize 720x576
     VideoFrameRate 25
     # Video settings
        VideoCodec libvpx
        VideoSize 720x576           # Video resolution
        VideoFrameRate 25           # Video FPS
        AVOptionVideo flags +global_header  # Parameters passed to encoder 
                                        # (same as ffmpeg command-line parameters)
        AVOptionVideo cpu-used 0
        AVOptionVideo qmin 10
        AVOptionVideo qmax 42
        #AVOptionVideo quality good
        PreRoll 5
         StartSendOnKey
        VideoBitRate 400            # Video bitrate
     </Stream>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我用它启动流

    ffplay …

streaming ffmpeg delay http-live-streaming webm

27
推荐指数
4
解决办法
6万
查看次数

如何将Android手机屏幕流式传输到PC

如何将当前显示的屏幕从我的Android设备实时流式传输到PC?有没有付费/免费工具可以做到这一点?

android screen transmission screen-capture

19
推荐指数
1
解决办法
7万
查看次数

如何增加Android Kitkat的ADB屏幕记录的时间限制

我正在使用ADB的屏幕录制功能来录制我的应用程序的视频.它非常方便实用.我发现的唯一问题是最长时限为3分钟(180秒).

我们可以通过哪种方式或方法或方式来增加这个时间限制?

android

10
推荐指数
5
解决办法
1万
查看次数

Android,原生OpenGL / OpenMAX,屏幕截图

用例

使用USB将Android屏幕镜像到PC

潜在(本地)实施方法

  1. 使用Android开放源代码,根据您的需要修改屏幕记录,然后使用ADB重新安装在Android设备上
  2. 使用众所周知的本机API(例如OpenGL / OpenMAX)捕获屏幕

讨论区

方法1当然可以工作(在shell帐户下),但是,每次更新Android操作系统时,都需要对自定义代码进行更新以适应操作系统的变化,而方法2则API保持固定,并且没有需要担心操作系统的变化,问题是是否可以仅使用OpenGL / OpenMAX来实现镜像?

问题

综上所述,通过USB镜像android屏幕的最佳方法是什么?

android android-source opengl-es-2.0 openmax

0
推荐指数
1
解决办法
3323
查看次数