Redirigir el contenido del archivo de android a la computadora

Estoy ejecutando una llamada de shell de adb para crear un nuevo archivo de imagen con ffmpeg. Actualmente, guardo el jpg generado de la conversión de ffmpeg al dispositivo, y después tiré el archivo al ordenador usando el tirón del adb. Me pregunto si puedo cortar tener que guardarlo en el android primero, y simplemente guardar directamente en el equipo.

Aquí está el código (esencialmente) que estoy tratando de ejecutar:

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

Por desgracia, cuando ejecuto esto, no sólo copia los datos de salida de la llamada ffmpeg, sino todo lo que habría sido impreso a la salida estándar de adb. Así que me quedo con un archivo jpg que tiene todos mis datos de imagen, pero con un montón de palabras en la parte superior (la salida de la llamada de shell de adb).

Gracias.

Si tiene una utilidad grep para su dispositivo Android o su host de Windows, puede canalizar la salida a través de un grep -v y suprimir las líneas extrañas. Para minimizar el número de patrones que necesitaría suministrar a grep, podría configurar la opción de registro de ffmpeg para que se silenciara a través de -loglevel quiet .

Si conoce la cadena inicial de su archivo jpg, puede canalizarlo a sed antes de redirigirlo al archivo:

 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 coincidirá desde el patrón hasta el final del archivo e imprime sólo estas líneas en su archivo jpg.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.