Wykonuję wywołanie powłoki adb, aby utworzyć nowy plik obrazu za pomocą ffmpeg. Obecnie zapisuję wyjściowy plik jpg z konwersją ffmpeg na urządzenie, a następnie przeciągam plik na komputer za pomocą polecenia adb pull. Zastanawiam się, czy mogę najpierw wyciąć go na Androida i po prostu zapisać go bezpośrednio na komputerze.Przekierowanie zawartości pliku z Androida na komputer
Oto kod (zasadniczo) Próbuję uruchomić:
adb shell "screencap | /data/local/tmp/tools/./ffmpeg -f rawvideo -vcodec mjpeg -q:v 5 -" > C:/Users/User/Desktop/new.jpg
Niestety, kiedy biegnę to, to kopie nie tylko dane wyjściowe wywołanie ffmpeg, ale wszystko, które zostały wydrukowane do standardowego wyjścia adb. Pozostaje mi plik jpg, który zawiera wszystkie moje dane obrazu, ale z mnóstwem słów u góry (wyjście wywołania powłoki adb).
Dziękuję.
Funkcja cichosza zmniejsza wydajność do zera, ale obraz nadal nie może zostać otwarty ... żadnych sugestii? – parameter
Wygląda na to, że jest jeszcze kilka dodatkowych linii, które będą wymagały odfiltrowania za pomocą polecenia grep lub podobnego. Czy sprawdziłeś wynikowy plik, aby zobaczyć, jakie dodatkowe elementy są dodawane na górze i/lub na dole? Ponieważ jesteś w systemie Windows, prawdopodobnie będziesz musiał ręcznie znaleźć i zainstalować narzędzie podobne do grep. – scottt
Być może, ale uważam, że teraz tak właśnie jest. http://stackoverflow.com/questions/13578416/read-binary-stdout-data-from-adb-shell – parameter