programing

Android 화면의 비디오 캡처

muds 2023. 8. 14. 23:08
반응형

Android 화면의 비디오 캡처

스크린샷은 잊어버리세요, 안드로이드에서 실행 중인 애플리케이션의 비디오를 캡처할 수 있나요?뿌리가 있든 없든 상관없어요, 최소한 15fps는 갖고 싶어요.

업데이트: 외부 하드웨어를 원하지 않습니다.목적은 완벽하게 휴대할 수 있도록 하는 것이며 모든 프레임이 Android OS 내에서 캡처됩니다.만약 그것이 앱 sdk의 경계를 넘어선다면, 나는 OS 수준의 수정으로 갈 용의가 있지만, 나는 시작점이 필요합니다.

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

저는 이것이 오래된 질문이라는 것을 알지만, OP들이 좋아하는 것에 답이 없는 것처럼 보이기 때문입니다.Android Market Screencast 링크에 이를 지원하는 앱이 있습니다.

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

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

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

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

tegra 2 비호환성 때문에 스크린캐스트가 안 되는 것 같아요, 이미 해봤는데, 유청이 없어요!그래서 는 Z-Scree를 사용해 보았습니다.시장의 NR 레코더는 제 LG 옵티머스 2x에 설치했지만, 5분 동안만 빈 화면을 기록했습니다.그리고 거기서 나는 5분을 얻습니다.6MB 크기의 빈 화면 파일의 경우그래서 그들이 tegra2 칩셋과 호환되는 소프트웨어의 평화를 출시할 때까지 시도하는 것은 의미가 없습니다!

Android 4.3에는 표면에서 녹화하는 데 사용할 수 있는 새로운 MediaCodec API가 있습니다.참조: http://developer.android.com/about/versions/android-4.3.html ("표면에서 비디오 인코딩" 섹션으로 이동)

단말기가 루트로 연결된 경우 전화기나 태블릿에서 직접 화면 비디오를 녹화할 수 있습니다.저는 SCR 스크린 레코더 앱을 만들고 있습니다.내가 아는 한, 이것은 테그라 장치(넥서스 7 포함)와 안드로이드 4.2를 지원하는 유일한 앱입니다.현재 앱은 기기에 따라 9-18fps 사이를 기록하고 있지만, 저는 그것을 개선하기 위해 노력하고 있습니다.SCR Screen Recorder는 아직 베타 테스트 단계이므로 자유롭게 테스트하고 피드백을 제공하십시오.

이제 AirPlay 미러링 및 화면 녹화가 미러 APK(베타)와 함께 사이아노젠 모드로 전환되었습니다.

비디오 카메라 애플리케이션을 개발하는 경우 비디오 캡처에 사용할 API를 아는 것이 좋습니다.

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

(위 링크는 인텐트 제출을 통해 비디오 녹화를 수행하는 방법만 보여주며 실제 녹화를 수행하는 방법은 보여주지 않습니다.)

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

그리고 "화면 기록" 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;
    }

Samsung 전화기의 경우 추가 설정('cam_mode' hack)이 있습니다.

캠코더 프로필.QUTION_고해상도로 녹색 깜박임

더 유용한 링크:

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

제가 구현하지는 않았지만 그래도 당신에게 이것을 할 수 있는 아이디어를 주고 있습니다.

우선 코드를 통해 안드로이드 기기의 스크린샷을 촬영합니다.그리고 같은 함수를 호출하여 일정 시간 후에 이미지를 생성합니다.추가한 다음 프레임/이미지에서 비디오를 만드는 코드를 찾습니다.

편집

또한 이 링크를 확인하고 화면 치수에 따라 수정합니다.가장 중요한 것은 당신의 일을 여러 개의 작은 일로 나눈 다음 그것을 당신의 필요에 따라 결합하는 것입니다.

FFMPEG가 이것을 하는 가장 좋은 방법입니다. 하지만 한번 시도해 봤지만 매우 긴 절차입니다.먼저 Cygwin 및 Native C++ 라이브러리와 많은 것을 다운로드하고 연결해야 FFMPEG(C++로 구축됨)에서 작업할 수 있습니다.

Remote Manager를 살펴봅니다.하지만 화면이 큰 기기에서는 제대로 작동하지 않는 것 같습니다.하지만 DEMO는 이전에 시도할 수 있습니다.

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

일부 테스트 사용자에게 이메일로 apk를 보낼 수 있고 app의 모든 세션과 앱 충돌 및 장치 통계가 포함된 동영상을 볼 수 있습니다.

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

여기 예가 있습니다.

다음과 같은 결과에 대한 시작 활동 호출

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();
}

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

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

저는 앱을 사용하지 않았지만, Rec.가 이를 위한 방법으로 언급된 것을 보았습니다. 하지만 당신은 전화기를 뿌리 뽑아야 합니다.

언급URL : https://stackoverflow.com/questions/5382212/capture-video-of-androids-screen

반응형