This question already has answers here:
Read binary stdout data from adb shell?
(15个答案)
3年前关闭。
我正在执行adb shell调用以使用ffmpeg创建新的图像文件。目前,我将ffmpeg转换的输出jpg保存到设备中,然后使用adb pull将文件拉至计算机。我想知道是否可以省掉必须先将其保存在android上,而直接将其保存到计算机上。
这是我正在尝试运行的代码(本质上):
不幸的是,当我运行此命令时,它不仅复制ffmpeg调用的输出数据,而且还复制所有将被打印到adb标准输出的数据。因此,我剩下的是一个jpg文件,其中包含我的所有图像数据,但顶部带有一堆单词(adb shell调用的输出)。
谢谢。
sed将从样式匹配到文件结尾,并且仅将这些行打印到jpg文件中。
(15个答案)
3年前关闭。
我正在执行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文件中。