안드로이드 화면의 비디오 캡처


195

스크린 샷을 잊어 버려, 안드로이드에서 실행중인 응용 프로그램의 비디오를 캡처 할 수 있습니까? 뿌리 또는 비 뿌리, 나는 상관없고, 적어도 15fps를 원합니다.

업데이트 : 외부 하드웨어를 원하지 않습니다. 의도는 휴대 성이 뛰어나고 모든 프레임이 Android OS 내에서 캡처되는 것입니다. 앱 SDK의 경계를 넘어 서면 OS 수준 수정을 기꺼이 시작하지만 시작점이 필요합니다.


나는 여기서 말하는 것이 완전히 보입니다. 에뮬레이터에는 현재 화면을 비디오 파일로 리디렉션하는 기능이 있어야합니다. 게임과 앱에 대한 유익한 비디오를 만들 수 있도록 이와 같은 기능을 좋아합니다.
Robert Massaioli

1
이것에 대한 해결책을 얻었습니까? 그렇다면 우리와 공유하십시오. 나도 안드로이드 화면의 비디오를 캡쳐해야합니다.
deepa

@ deepa nope이 작업을 수행하는 좋은 방법은 없습니다.
Taranfx

이 프로젝트를 확인하십시오 : sourceforge.net/projects/ashot
Nirmal Patel

하드웨어 화면 버퍼에서 읽을 수 있습니까?
mP.

답변:


244

Android 4.4 (KitKat) 이상 장치에는 Android 장치 화면을 기록하기위한 셸 유틸리티가 있습니다. USB를 통해 adb 유틸리티를 사용하여 KitKat을 실행하는 개발자 / 디버그 모드의 장치를 연결 한 후 다음을 입력하십시오.

adb shell screenrecord /sdcard/movie.mp4
(Press Ctrl-C to stop)
adb pull /sdcard/movie.mp4

화면 녹화는 최대 3 분으로 제한됩니다.

참조 : https://developer.android.com/studio/command-line/adb.html#screenrecord


screenrecord와 같은 응답을 제공합니다 : 찾을 수없는 adb 이유는 무엇입니까?
Poison

1
Android SDK가 오래된 것 같습니다. Android SDK Manager를 열고 최신 SDK 도구를 다운로드하십시오.
Joe Fernandez

1
이것으로 오디오가 없습니다. 그럼에도 불구하고 굉장합니다.
Martin Capodici

1
추가하기 위해이 페이지에는 독립형 adb + 스크립트 "ScreenRecord.bat"가있는 패키지가 있습니다.이 화면은 두 번 클릭하여 Android 화면 비디오 녹화를 시작할 수 있습니다. skipser.com/p/2/p/record-screen-video-in -android.html
arunskrish

1
경고 : 링커 : libsac3d.so에 텍스트 재배치 오류가 발생합니다. 메모리가 낭비되고 보안 위험이 있습니다. 수정하십시오. 오류 : 코덱을 구성 할 수 없음 (err = -2147483648) 경고 : 1080x1920에서 실패, 720x1280에서 다시 시도
Pete_ch

17

나는 이것이 오래된 질문이라는 것을 알고 있지만 OP가 좋아하는 것으로 대답하지 않았기 때문에. Android 마켓 스크린 캐스트 링크 에서이를 승인하는 앱이 있습니다.


29
루트가 필요하다는 것을 언급 할 가치가 있습니다.
themightyjon

HTC One에서 작동하지 않습니다. 그래도 Galaxy S II에서 잘 작동했습니다.
MiloDC

1
이것은 루트가 필요하지 않습니다. 지금까지 유망한 것 같습니다 ... droid-at-screen.ribomation.com/installation
Fraggle

화면에서 droid는 비디오를하지 않습니다, @Fraggle. 스크린 샷 만 연속 캡처를 수행 할 수 있지만 약 1fps입니다.
Michael Petrotta 2011

현재이 sourceforge.net/projects/ashot 을 사용하여 Mac에서 화면을 표시 한 다음 표준 도구 (SnapPro X)를 사용하여 화면의 해당 부분에서 영화를 캡처합니다. 프레임 속도가 무엇인지 확실하지 않지만 1fps보다 높다고 생각합니다.
Fraggle

8

예, 비디오 출력이있는 전화를 사용하고 비디오 레코더를 사용하여 스트림을 캡처합니다.

이 기사를 참조 하십시오 http://graphics-geek.blogspot.com/2011/02/recording-animations-via-hdmi.html


그것이 내가 할 수있는 일이지만 내 요구 사항은 안드로이드 내부의 모든 것을 수행하는 것입니다. 이동 중에도 작동하도록하는 것이 의도입니다.
Taranfx

1
운이 나쁘다고 생각합니다. 즉, 모바일 장치에서 많은 비디오 인코딩을 처리 해야하는 요구 사항이 대부분 물리적으로 가능한 범위를 벗어났습니다 .Android (AFAIK)는 스트림에 액세스 할 수있는 인터페이스가 없습니다. 그렇더라도 앱이 사용자를 염탐 할 수 있기 때문에 잠재적으로 엄청난 보안 허점입니다.
Ollie C

4

@taranfx, 더 많은 정보없이 StackOverFlow에 Android 개발자 도구가 설치되어 있다고 가정합니다. 그렇다면 에뮬레이터를 실행 한 다음 많은 데스크톱 화면 캡처 프로그램 중 하나를 사용하여 실행중인 응용 프로그램을 캡처 할 수 있습니다. Mac의 화면 흐름 은이 작업에 효과적입니다. Windows 또는 Nix 플랫폼을 사용하는 경우 좋은 화면 캡처 프로그램이 많이 있으며 온라인 서비스도 있다는 것을 알고 있지만 링크가 없거나 사용하지 않았습니다. 다음은 에뮬레이터 설정 및 실행에 대한 참조 문서 링크입니다. 안드로이드 SDK는 모바일 장치 에뮬레이터를 포함 ...


2
죄송합니다? Mac 또는 Emulator가 아닌 Android에서 비디오 캡처를 요청했습니다.
Taranfx

2
MWR은 에뮬레이터를 통해 안드로이드 화면을 캡처 할 것을 제안합니다
Ollie C

3
모든 aps를 에뮬레이터에서 실행할 수있는 것은 아닙니다.
RajV

4

또한 SMRecorder와 같은 스크린 레코더를 사용하는 것이 좋습니다. 에뮬레이터를 사용하는 대신, 특히 게임이나 비디오를 원할 때 에뮬레이터를 사용하는 대신 Android가 설치된 VirtualBox VM을 사용하는 것이 좋습니다. Dalvik 디버거를 연결하여 앱을 디버깅 할 수 있습니다. 디버거로 인해 앱 속도가 너무 느려지면 연결을 끊어 비디오를 녹화하십시오. 디버깅을 위해 Android VM을 설정하는 방법을 설명하는 많은 링크가 있습니다. 에뮬레이터보다 훨씬 낫습니다. 이제 앱이 가속도계 나 PC에서 사용할 수없는 카메라를 사용하는 경우 장치에서 직접 화면 캡처를 처리하지 않습니다. 이를 위해 위에서 언급 한 Android 마켓 앱을 사용합니다.


좋은 측정 : spkaa.com/…
Reuben L.

3

나는 스크린 캐스트가 tegra 2 비 호환성의 원인이 아니라고 생각합니다. 이미 시도했지만 유청은 없습니다! 그래서 시장에서 Z-ScreeNRecorder 를 사용해 보았고 LG Optimus 2x에 설치했지만 빈 화면 만 기록했습니다 .5 분 동안 시도했습니다. 그리고 나는 5 분을 얻는다. 6MB 크기의 빈 화면 파일 ... tegra2 칩셋과 호환되는 소프트웨어의 평화를 릴리스 할 때까지 아무런 노력도 기울이지 않습니다!



1

기기가 루팅 된 경우 휴대 전화 나 태블릿에서 직접 화면 동영상을 녹화 할 수 있습니다. SCR Screen Recorder 앱 을 만들고 있습니다. 내가 아는 한, 이것은 Tegra 기기 (Nexus 7 포함) 및 Android 4.2를 지원하는 유일한 앱입니다. 현재 앱은 기기에 따라 9-18fps 사이에서 기록되지만 개선하기 위해 노력하고 있습니다. SCR Screen Recorder는 아직 베타 테스트 단계에 있으므로 자유롭게 테스트하고 의견을 보내주십시오.


1
안드로이드에서 프로그래밍 방식으로 화면의 음성을 캡처하는 방법을 연구 결과를 공유하십시오.
Ajay S

@Iwo 스크린 비디오를 문법적으로 녹화하는 방법에 대한 연구를 공유 할 수 있습니까? 감사합니다.
Srini Kandula

1

AirPlay 미러링 및 화면 녹화 기능이 이제 미러 APK (베타)가 있는 CyanogenMod 에 있습니다.


1

비디오 카메라 응용 프로그램을 개발하는 경우 비디오 캡처에 사용할 API를 아는 것이 좋습니다.

http://developer.android.com/training/camera/videobasics.html

(위의 링크는 실제 레코딩이 수행되는 방식이 아니라 의도 제출을 통해 비디오 레코딩이 수행되는 방식 만 보여줍니다)

https://www.linux.com/learn/tutorials/729988-android-app-development-how-to-capture-video

"screenrecord"adb 응용 프로그램을 직접 작성하려면 다음을 수행하십시오.

https://android.googlesource.com/platform/frameworks/av/+/android-cts-4.4_r1/cmds/screenrecord/screenrecord.cpp

키 기록 동작은 다음과 같습니다.

static status_t recordScreen(const char* fileName) {
    status_t err;

<...>

    // Configure, but do not start, muxer.
    sp<MediaMuxer> muxer = new MediaMuxer(fileName,
            MediaMuxer::OUTPUT_FORMAT_MPEG_4);
    if (gRotate) {
        muxer->setOrientationHint(90);
    }

    // Main encoder loop.
    err = runEncoder(encoder, muxer);
    if (err != NO_ERROR) {
        encoder->release();
        encoder.clear();

        return err;
    }

삼성 전화의 경우 추가 설정 ( 'cam_mode'핵)이 있습니다.

CamcorderProfile.QUALITY_HIGH 해상도로 녹색 깜박임 비디오 생성

더 유용한 링크 :

Android에서 비디오 녹화를 캡처하려면 어떻게해야합니까?


1

나는 그것을 구현하지 않았지만 여전히 나는 당신에게 이것을 할 아이디어를주고있다.

우선 안드로이드 장치스크린 샷 을 찍을 코드를 얻습니다 . 그리고 일정한 시간 간격을두고 이미지를 생성하는 동일한 기능을 호출하십시오. 프레임 / 이미지에서 비디오 를 작성하는 코드를 추가 한 다음 찾으십시오 .

편집하다

이 링크를 도하고 화면 크기에 따라 국지적 중요한 것은 여러 개의 작은 작업으로 작업을 분할 한 다음 필요로 결합하는 것입니다 수정합니다.

가장 좋은 방법은 FFMPEG 입니다. 그러나 한 번 시도했지만 매우 긴 절차입니다. 먼저 cygwin 및 Native C ++ 라이브러리와 많은 것들을 다운로드하고 연결해야 FFMPEG (C ++로 빌드 됨)를 사용할 수 있습니다.


나는 당신이 시간 간격 후에 또는 간격없이 이미지를 찍을 것을 제안한 것과 같았습니다. 스크롤보기를하고 스크롤을하고있는 다른 스레드에서 화면 영역을 캡처하고 있지만 동일한 캡처는 6-7 이미지를 반환합니다 다른 영역보다 캡처됩니다. 일련의 이미지가 필요합니다.
Farrakh Javed

1

Remote Manager를 살펴보십시오 . 그러나 화면이 큰 장치에서는 제대로 작동하지 않는 것 같습니다. 그래도 DEMO 를 시도해 볼 수 있습니다 .


두 링크 모두 죽었습니다 : /
rahulserver

@rahulserver, Google Android은 프로그램 이름으로 사용했기 때문에 차단했습니다 . 곧 나는 아무 Android말없이 다시 출판 할 것이다 .
Nolesh

답변 해 주셔서 감사합니다. 필사적으로 필요합니다. pls는 u가 게시되면 여기에 통지합니다.
rahulserver

@rahulserver, 나는 그들을 다시 게시하고 링크를 수정했습니다.
Nolesh

1

UI 및 기타 사항을 테스트 할 수 있도록 사용자 탐색을 기록하려면 TestFairy 를 사용하는 것이 좋습니다.

그것은 당신이 이메일을 통해 일부 테스트 사용자에게 APK를 보내고 응용 프로그램의 모든 세션과 응용 프로그램 충돌 및 장치 통계와 비디오를 볼 수 있습니다.


1

Android Lollipop (5)에는 여기에 설명 된 화면 캡처 허용 하는 새로운 기능이 추가되었습니다.

여기에 예가 있습니다

다음과 같이 startActivityForResult를 호출하십시오.

startActivityForResult(mProjectionManager.getScreenCaptureIntent(), PERMISSION_CODE);

그런 다음 결과를 캡처하십시오.

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode != PERMISSION_CODE) {
        Log.e(TAG, "Unknown request code: " + requestCode);
        return;
    }
    if (resultCode != RESULT_OK) {
        Toast.makeText(this,
                "User denied screen sharing permission", Toast.LENGTH_SHORT).show();
        return;
    }
    mMediaProjection = mProjectionManager.getMediaProjection(resultCode, data);
    mVirtualDisplay = createVirtualDisplay();
}

0

이것은 오래되었지만 ASC는 어떻습니까?


Tegra 구동 장치와 호환되지 않기 때문에? .. yeah .. 나는 아수스 변압기를 얻었다 : C
Richard Cotrina

PC / Mac에서 '활성화 기'를 실행해야하지만 서명되지 않았으며 수동으로 활성화하거나 수행하는 방법을 설명하지 않습니다. 보안 위험 및 위협 벡터처럼 들립니다.
Chloe

0

PC에있는 경우 PC에서 내 전화 탐색기 를 실행 하고 전화기 에서 MyPhoneExplorer 클라이언트 를 실행하고 화면 캡처를 계속 새로 고치도록 설정하고 윙크 를 사용 하여 내 전화 탐색기 창에서 화면의 사용자 정의 사각형 영역을 캡처 할 수 있습니다. 자신의 캡처 속도로. 그런 다음 Wink에서 FLV로 변환 한 다음 WinFF 를 사용하여 Flash 비디오에서 MPG로 변환하십시오 .


여기서 "PC"는 일종의 Microsoft Windows를 의미합니다.
rwst

0

앱을 사용하지 않았지만 Rec를 보았습니다 . 이를 수행하는 방법으로 언급되었지만 전화를 루팅해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.