Quay video màn hình Android


195

Quên ảnh chụp màn hình, có khả năng quay video ứng dụng đang chạy trong Android không? Root hoặc không root, tôi không quan tâm, tôi muốn ít nhất 15fps.

Cập nhật: Tôi không muốn bất kỳ phần cứng bên ngoài. Mục đích là làm cho nó hoàn toàn di động và mọi khung hình được chụp trong HĐH Android. Nếu nó vượt qua ranh giới của sdk ứng dụng, tôi sẵn sàng đi đến sửa đổi cấp độ hệ điều hành nhưng tôi sẽ cần một điểm khởi đầu.


Tôi hoàn toàn thấy những gì đang được nói ở đây. Có vẻ như trình giả lập nên có tính năng chuyển hướng màn hình hiện tại thành một tệp video. Tôi rất thích một tính năng như thế này để tôi có thể tạo các video thông tin về các trò chơi và ứng dụng của mình.
Robert Massaioli

1
Bạn đã có giải pháp cho điều này? Nếu vậy hãy chia sẻ với chúng tôi. tôi cũng phải quay video màn hình Android.
Deepa

@deepa không có cách nào tốt để làm điều này.
Taranfx

Kiểm tra dự án này: sourceforge.net/projects/ashot
Nirmal Patel

Có thể đọc từ bộ đệm màn hình phần cứng?
mP.

Câu trả lời:


243

Android 4.4 (KitKat) và các thiết bị cao hơn có tiện ích vỏ để ghi lại màn hình thiết bị Android. Kết nối thiết bị ở chế độ nhà phát triển / gỡ lỗi chạy KitKat với tiện ích adb qua USB và sau đó nhập như sau:

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

Ghi lại màn hình được giới hạn tối đa là 3 phút.

Tham khảo: https://developer.android.com/studio/command-line/adb.html#screenrecord


đang cho tôi phản hồi như screenrecord: không tìm thấy adb bị lỗi thời tại sao?
Ngộ độc

1
Âm thanh như SDK Android của bạn đã hết hạn. Mở Trình quản lý SDK Android và tải xuống các công cụ SDK mới nhất.
Joe Fernandez

1
Xấu hổ không có âm thanh với điều này. Nhưng dù sao cũng tuyệt vời.
Martin Capodici

1
Chỉ cần thêm, trang này có một gói có tập lệnh adb + độc lập "ScreenRecord.bat" có thể được nhấp đúp để bắt đầu quay video màn hình Android .. skipser.com/p/2/p/record-screen-video-in -android.html
arunskrish

1
Tôi nhận được lỗi CẢNH BÁO: linker: libsac3d.so có chuyển văn bản. Điều này gây lãng phí bộ nhớ và là một rủi ro bảo mật. Hãy sửa chữa. LRI: không thể định cấu hình codec (err = -2147483648) CẢNH BÁO: thất bại ở 1080x1920, thử lại ở 720x1280
Pete_ch

17

Tôi biết đây là một câu hỏi cũ nhưng vì nó dường như không được trả lời theo ý thích của OP. Có một ứng dụng tích hợp điều này trong liên kết Android Market Screencast


29
Đáng nói là nó yêu cầu root, btw.
themightyjon

Không hoạt động trên HTC One của tôi. Mặc dù vậy, nó hoạt động tốt trên Galaxy S II của tôi.
MiloDC

1
Cái này không cần root. Có vẻ như hứa hẹn cho đến nay ... droid-at-screen.ribomation.com/installation
Fraggle

droid-at-screen không làm video, @Fraggle. Chỉ cần ảnh chụp màn hình. Nó có thể chụp liên tục, nhưng với tốc độ khoảng 1fps.
Michael Petrotta

Hiện tại tôi đang sử dụng sourceforge.net/projects/ashot này để chỉ hiển thị màn hình trên máy mac của mình, sau đó sử dụng các công cụ tiêu chuẩn của tôi (SnapPro X) để quay phim từ phần đó của màn hình. Không chắc tốc độ khung hình trên ashot là bao nhiêu, nhưng tôi nghĩ cao hơn 1 khung hình / giây.
Fraggle

8

Có, sử dụng điện thoại có video và sử dụng trình quay video để ghi luồng

Xem bài viết này http://graphics-geek.blogspot.com/2011/02/recply-animations-via-hdmi.html


Đó là những gì tôi có thể làm nhưng yêu cầu của tôi là làm mọi thứ bên trong Android. Làm cho nó hoạt động trên đường đi là ý định.
Taranfx

1
Tôi nghĩ bạn không gặp may - các yêu cầu để xử lý nhiều mã hóa video, trên thiết bị di động, nằm ngoài phạm vi của hầu hết khả năng vật lý, Android (AFAIK) không có giao diện để truy cập luồng và thậm chí nếu có, đó là một lỗ hổng bảo mật rất lớn vì ứng dụng có thể theo dõi người dùng.
Ollie C

4

@taranfx, không có thêm thông tin Tôi giả sử vì bạn đang sử dụng StackOverFlow rằng bạn đã cài đặt Công cụ dành cho nhà phát triển Android. Nếu vậy, bạn có thể chạy trình giả lập và sau đó sử dụng một trong nhiều chương trình chụp màn hình máy tính để bàn để chụp ứng dụng đang chạy của bạn. Screenflow trên Mac hoạt động tuyệt vời để làm điều này. Tôi chắc chắn có nhiều chương trình chụp màn hình tốt nếu bạn sử dụng nền tảng Windows hoặc Nix và tôi biết có một số dịch vụ trực tuyến nhưng tôi không có bất kỳ liên kết nào cũng như tôi chưa sử dụng chúng. Đây là một liên kết cho tài liệu tham khảo về việc thiết lập và chạy trình giả lập. SDK Android bao gồm trình giả lập thiết bị di động ...


2
Lấy làm tiếc? Tôi yêu cầu quay video trong Android không phải trên Mac hoặc Trình giả lập.
Taranfx

2
MWR đang đề xuất chụp màn hình Android thông qua trình giả lập
Ollie C

3
Không phải tất cả các aps có thể được chạy trong trình giả lập.
RajV

4

Đề nghị của tôi cũng là sử dụng một trình ghi màn hình, chẳng hạn như SMRecorder. Thay vì sử dụng trình giả lập chậm, đặc biệt là cho các trò chơi và những thứ bạn muốn có video, tôi khuyên bạn nên sử dụng VirtualBox VM, với Android được cài đặt. Bạn có thể kết nối trình gỡ lỗi Dalvik với nó và gỡ lỗi ứng dụng của bạn ở đó. Nếu trình gỡ lỗi làm chậm ứng dụng của bạn quá nhiều, hãy ngắt kết nối nó để quay video. Có rất nhiều liên kết ngoài đó giải thích cách thiết lập máy ảo Android để gỡ lỗi. Tôi thấy nó tốt hơn nhiều so với trình giả lập. Bây giờ, điều này không quan tâm đến việc chụp màn hình trực tiếp trên thiết bị, trong trường hợp ứng dụng của bạn sử dụng gia tốc kế hoặc máy ảnh không có trên PC. Cho rằng tôi sẽ sử dụng ứng dụng thị trường Android được đề cập ở trên.


cho biện pháp tốt: spkaa.com/ từ
Reuben L.

3

Tôi đoán screencast không phải là nguyên nhân của sự không tương thích tegra 2, tôi đã thử nó, nhưng không có whey! Vì vậy, tôi đã thử sử dụng Z-ScreeNRecorder từ thị trường, cài đặt nó trên LG Optimus 2x của tôi, nhưng nó chỉ ghi lại màn hình trống, tôi đã thử trong 5 phút. và ở đó tôi nhận được 5 phút. của tệp màn hình trống có kích thước 6mb ... vì vậy không có điểm nào cố gắng cho đến khi họ phát hành một số phần mềm tương thích với chipset tegra2!



1

Có thể quay video màn hình trực tiếp từ điện thoại hoặc máy tính bảng của bạn nếu thiết bị của bạn đã được root. Tôi đang làm việc trên ứng dụng SCR Screen Recorder . Theo hiểu biết của tôi, đây là ứng dụng duy nhất hỗ trợ các thiết bị Tegra (bao gồm Nexus 7) và Android 4.2. Hiện tại, ứng dụng ghi lại từ 9-18fps tùy thuộc vào thiết bị nhưng tôi đang làm việc để cải thiện điều đó. SCR Screen Recorder vẫn đang trong giai đoạn thử nghiệm beta, vì vậy hãy thử nghiệm và đưa ra phản hồi.


1
Chia sẻ nghiên cứu của bạn làm thế nào nó có thể được thực hiện theo chương trình trong Android để chụp lại màn hình một cách im lặng?
Ajay S

@Iwo Bạn có thể chia sẻ nghiên cứu của mình về cách ghi video màn hình theo ngữ pháp không? Cảm ơn bạn.
Srini Kandula

1

Hiện tượng phản chiếu và ghi lại màn hình AirPlay hiện có trong CyanogenMod với APK Mirror (Beta).


1

Nếu bạn phát triển các ứng dụng máy quay video, thì sẽ rất tốt nếu biết API sẽ sử dụng để quay video:

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

(liên kết ở trên chỉ hiển thị cách quay video có thể được thực hiện thông qua việc gửi Ý định chứ không phải cách ghi thực tế được thực hiện)

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

và nếu bạn muốn tự viết ứng dụng adb "screenrecord":

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

Và hành động ghi âm chính được thực hiện ở đây:

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

Đối với điện thoại Samsung có cài đặt bổ sung (hack 'cam_mode'):

Máy quay phim Độ phân giảiProfile.QUALITY_HIGH tạo ra video nhấp nháy màu xanh lá cây

Liên kết hữu ích hơn:

Làm cách nào tôi có thể quay video trên Android?


1

Tôi đã không thực hiện nó nhưng tôi vẫn cho bạn một ý tưởng để làm điều này.

Trước hết hãy lấy mã để chụp ảnh màn hình của thiết bị Android . Và gọi chức năng tương tự để tạo hình ảnh sau một khoảng thời gian. Thêm sau đó tìm mã để tạo video từ khung / hình ảnh .

Biên tập

cũng xem liên kết này và sửa đổi nó theo kích thước màn hình của bạn. Điều chính là chia công việc của bạn thành nhiều nhiệm vụ nhỏ và sau đó kết hợp nó theo nhu cầu của bạn.

FFMPEG là cách tốt nhất để làm điều này. nhưng một khi tôi đã thử nhưng nó là một thủ tục rất dài. Trước tiên, bạn phải tải xuống thư viện cygwin và Native C ++ và rất nhiều thứ và kết nối sau đó bạn có thể làm việc trên FFMPEG (nó được xây dựng trong C ++).


Tôi đã làm giống như bạn đề nghị chụp ảnh sau một khoảng thời gian hoặc không có khoảng thời gian, tôi có chế độ xem cuộn trong đó tôi đang cuộn và trong một luồng khác tôi đang chụp khu vực màn hình, nhưng một lần chụp tương tự sẽ trả về 6-7 hình ảnh và hơn một khu vực khác được bắt giữ. Tôi cần chuỗi hình ảnh đầy đủ.
Farrakh Javed

1

Hãy xem Trình quản lý từ xa . Nhưng dường như nó không hoạt động chính xác với các thiết bị có màn hình lớn. Mặc dù, bạn có thể thử DEMO trước đây.


Cả hai liên kết đều đã chết: /
rahulserver

@rahulserver, Google đã chặn chúng, vì tôi đã sử dụng Androidtên của chương trình. Tôi sẽ sớm công bố chúng một lần nữa mà không cần Androidlời.
Nolesh

Cảm ơn vì đã phản hồi. Tôi đang rất cần. Vì vậy, xin vui lòng thông báo ở đây khi bạn đã xuất bản.
rahulserver

@rahulserver, tôi đã xuất bản chúng một lần nữa và sửa các liên kết.
Nolesh

1

Nếu bạn muốn ghi lại điều hướng người dùng để bạn có thể kiểm tra UI và những thứ khác, tôi khuyên bạn nên sử dụng TestF Hộ

Nó cho phép bạn gửi apk tới một số người dùng thử nghiệm qua email và xem video với tất cả các phiên trong ứng dụng và thậm chí cả ứng dụng gặp sự cố và thống kê thiết bị.


1

Trong Android Lollipop (5), một tính năng mới đã được thêm vào , cho phép chụp màn hình được giải thích tại đây

Đây là một ví dụ

Gọi startActivityForResult như thế này

startActivityForResult(mProjectionManager.getScreenCaptureIntent(), PERMISSION_CODE);

Sau đó nắm bắt kết quả

@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

Cái này cũ rồi, còn ASC thì sao?


Do không tương thích với các thiết bị hỗ trợ Tegra? .. vâng .. tôi có một Máy biến áp Asus: C
Richard Cotrina

Nó yêu cầu chạy một 'trình kích hoạt' trên PC / Mac, nhưng không được ký và không giải thích những gì nó làm cũng như cách thực hiện 'kích hoạt' theo cách thủ công. Nghe có vẻ như một rủi ro bảo mật và mối đe dọa vector.
Chloe

0

Nếu bạn đang sử dụng PC thì bạn có thể chạy My Phone Explorer trên PC, MyPhoneExplorer Client trên điện thoại, đặt chế độ chụp màn hình để làm mới liên tục và sử dụng Wink để chụp khu vực hình chữ nhật tùy chỉnh trên màn hình của bạn trên cửa sổ My Phone Explorer với tỷ lệ chụp của riêng bạn. Sau đó chuyển đổi thành FLV trong Wink, sau đó chuyển đổi từ video Flash sang MPG bằng WinFF .


Cần phải nói thêm rằng "PC" ở đây có nghĩa là một số loại Microsoft Windows.
rwst

0

Tôi chưa sử dụng ứng dụng này, nhưng tôi đã thấy Rec. được tham chiếu như một cách để làm điều này, nhưng bạn cần root điện thoại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.