android - 将文件内容从 android 重定向到计算机

标签 android adb io-redirection

<分区>

我正在执行一个 adb shell 调用,以使用 ffmpeg 创建一个新的图像文件。目前我是将ffmpeg转换输出的jpg保存到设备中,然后使用adb pull将文件拉到电脑上。我想知道我是否可以不必先将其保存在 android 上,而是直接将其保存到计算机上。

这是我尝试运行的(本质上)代码:

adb shell "screencap | /data/local/tmp/tools/./ffmpeg -f rawvideo -vcodec mjpeg -q:v 5 -" > C:/Users/User/Desktop/new.jpg

不幸的是,当我运行它时,它不仅复制了 ffmpeg 调用的输出数据,而且还复制了本应打印到 adb 标准输出的所有内容。所以我留下了一个包含我所有图像数据的 jpg 文件,但顶部有一堆单词(adb shell 调用的输出)。

谢谢。

最佳答案

如果您知道 jpg 文件的开头字符串,您可以在重定向到该文件之前将其通过管道传递给 sed:

adb shell "screencap | /data/local/tmp/tools/./ffmpeg -f rawvideo -vcodec mjpeg -q:v 5 - | sed -n ‘/PATTERN/,$p’" > C:/Users/User/Desktop/new.jpg

Sed 将从模式到文件末尾进行匹配,并仅将这些行打印到您的 jpg 文件中。

关于android - 将文件内容从 android 重定向到计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24541715/

相关文章:

android - textview 文本中的未知字符

android - 实现用于Android蓝牙通信的BlockingQueue Buffer

bash - 为什么管道中的重定向在 Bash 和 Zsh 中表现不同?

bash - 奇怪的 tput 行为,带有 stderr 重定向

C 将标准输出重定向到几个地方

安卓程序

android - 如何使用 Android 设备让 Google 的示例代码适用于 AdMob 4.1.0

Android adb 不断显示连接的物理设备的 "authorizing"

android - ADB命令打开所有应用程序菜单

android - Intellij Idea 找不到我的 Android 设备