Tangkap Video dari Layar Android

195

Lupakan tangkapan layar, mungkinkah untuk mengambil video dari aplikasi yang sedang berjalan di android? Berakar atau tidak berakar, saya tidak peduli, saya ingin minimal 15fps.

Pembaruan: Saya tidak ingin ada perangkat keras eksternal. Tujuannya adalah untuk membuatnya sangat portabel dan setiap frame ditangkap dalam OS Android. Jika melintasi batas-batas aplikasi SDK, saya bersedia untuk pergi ke modifikasi tingkat OS tapi saya akan membutuhkan titik awal.

Taranfx
sumber
Saya benar-benar melihat apa yang dikatakan di sini. Sepertinya emulator harus memiliki fitur untuk mengarahkan layar saat ini ke file video juga. Saya akan menyukai fitur seperti ini sehingga saya dapat membuat video informatif dari game dan aplikasi saya.
Robert Massaioli
1
Apakah Anda punya solusi untuk ini? jika demikian silakan berbagi dengan kami. saya juga harus membatasi video layar android.
deepa
@deepa nggak ada cara yang baik untuk melakukan ini.
Taranfx
Periksa proyek ini: sourceforge.net/projects/ashot
Nirmal Patel
Apakah mungkin membaca dari buffer layar perangkat keras?
mP.

Jawaban:

243

Android 4.4 (KitKat) dan perangkat yang lebih tinggi memiliki utilitas shell untuk merekam layar perangkat Android. Sambungkan perangkat dalam mode pengembang / debug yang menjalankan KitKat dengan utilitas adb melalui USB lalu ketikkan yang berikut:

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

Rekaman layar dibatasi hingga maksimal 3 menit.

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

Joe Fernandez
sumber
memberi saya tanggapan seperti screenrecord: tidak ditemukan adb keluar tanggal mengapa?
Racun
1
Sepertinya SDK Android Anda kedaluwarsa. Buka Android SDK Manager dan unduh alat SDK terbaru.
Joe Fernandez
1
Malu tidak ada audio dengan ini. Tapi tetap saja luar biasa.
Martin Capodici
1
Sebagai tambahan, halaman ini memiliki paket yang memiliki skrip + adb mandiri "ScreenRecord.bat" yang dapat diklik dua kali untuk mulai merekam video layar android .. skipser.com/p/2/p/record-screen-video-in -android.html
arunskrish
1
Saya mendapatkan kesalahan PERINGATAN: linker: libsac3d.so memiliki relokasi teks. Ini membuang-buang memori dan merupakan risiko keamanan. Tolong perbaiki. GALAT: tidak dapat mengkonfigurasi codec (err = -2147483648) PERINGATAN: gagal pada 1080x1920, coba lagi pada
720x1280
17

Saya tahu ini adalah pertanyaan lama tetapi karena tampaknya tidak dijawab oleh keinginan OP. Ada aplikasi yang menerbitkan ini di tautan Android Market Screencast

Zafoid
sumber
29
Layak disebutkan bahwa itu membutuhkan root, btw.
themightyjon
Tidak berfungsi di HTC One saya. Bekerja dengan baik pada Galaxy S II saya.
MiloDC
1
Yang ini tidak membutuhkan root. Tampaknya menjanjikan sejauh ini ... droid-at-screen.ribomation.com/installation
Fraggle
droid-at-screen tidak melakukan video, @Fraggle. Hanya tangkapan layar. Itu dapat melakukan penangkapan terus menerus, tetapi sekitar 1fps.
Michael Petrotta
Saat ini saya menggunakan sourceforge.net/projects/ashot ini untuk hanya menampilkan layar pada mac saya, kemudian menggunakan alat standar saya (SnapPro X) untuk mengambil film dari bagian layar itu. Tidak yakin berapa frame rate pada ashot, tapi saya pikir lebih tinggi dari 1 fps.
Fraggle
8

Ya, gunakan ponsel dengan video keluar, dan gunakan perekam video untuk menangkap aliran

Lihat artikel ini http://graphics-geek.blogspot.com/2011/02/recording-animations-via-hdmi.html

Ollie C
sumber
Itu yang bisa saya lakukan tetapi persyaratan saya adalah melakukan segala sesuatu di dalam android. Membuatnya berfungsi saat bepergian adalah tujuannya.
Taranfx
1
Saya pikir Anda kurang beruntung - persyaratan untuk menangani pengodean video sebanyak itu, dengan cepat, di perangkat seluler, berada di luar cakupan kemampuan kebanyakan orang secara fisik, Android (AFAIK) tidak memiliki antarmuka untuk mengakses aliran , dan bahkan jika itu terjadi, itu adalah lubang keamanan yang berpotensi besar karena aplikasi dapat memata-matai pengguna.
Ollie C
4

@taranfx, tanpa info lebih lanjut saya berasumsi karena Anda menggunakan StackOverFlow bahwa Anda telah menginstal Alat Pengembang Android. Jika demikian, Anda dapat menjalankan emulator dan kemudian menggunakan salah satu dari banyak program tangkapan layar desktop untuk menangkap aplikasi Anda yang sedang berjalan. Screenflow pada Mac berfungsi baik untuk melakukan ini. Saya yakin ada banyak program tangkapan layar yang bagus jika Anda menggunakan Windows atau platform Nix dan saya tahu ada beberapa layanan online juga, tetapi saya tidak memiliki tautan dan saya belum menggunakannya. Berikut ini tautan untuk dokumen referensi tentang pengaturan dan menjalankan emulator. Android SDK mencakup emulator perangkat seluler ...

MWR
sumber
2
Maaf? Saya meminta pengambilan video di Android bukan di Mac atau Emulator.
Taranfx
2
MWR menyarankan penangkapan layar Android melalui emulator
Ollie C
3
Tidak semua aps dapat dijalankan di emulator.
RajV
4

Saran saya adalah menggunakan perekam layar, seperti SMRecorder. Alih-alih menggunakan emulator, yang lambat - terutama untuk game dan hal-hal yang Anda ingin video, saya sarankan menggunakan VM VirtualBox, dengan Android diinstal. Anda dapat menghubungkan debugger Dalvik ke sana dan men-debug aplikasi Anda di sana. Jika debugger memperlambat aplikasi Anda terlalu banyak, putuskan sambungan untuk merekam video. Ada banyak tautan di luar sana yang menjelaskan cara mengatur VM Android untuk debugging. Saya merasa jauh lebih baik daripada emulator. Sekarang ini tidak menangani menangkap layar langsung pada perangkat, jika Anda aplikasi menggunakan accelerometer, atau kamera yang tidak tersedia di PC. Untuk itu saya akan menggunakan aplikasi pasar android yang disebutkan di atas.

jdbertron
sumber
untuk ukuran yang baik: spkaa.com/…
Reuben L.
3

Saya kira screencast bukan penyebab ketidakcocokan tegra 2, saya sudah mencobanya, tapi tidak ada whey! Jadi saya mencoba menggunakan Z-ScreeNRecorder dari pasar, memasangnya di LG Optimus 2x saya, tetapi hanya merekam layar kosong, saya mencoba selama 5 menit. dan di sana saya mendapatkan 5 menit. file layar kosong ukuran 6mb ... jadi tidak ada gunanya mencoba sampai mereka merilis beberapa kedamaian perangkat lunak yang kompatibel dengan chipset tegra2!

Nenad
sumber
1

Dimungkinkan untuk merekam video layar langsung dari ponsel atau tablet Anda jika perangkat Anda di-rooting. Saya sedang mengerjakan aplikasi SCR Screen Recorder . Sepengetahuan saya ini adalah satu-satunya aplikasi yang mendukung perangkat Tegra (termasuk Nexus 7) dan Android 4.2. Saat ini aplikasi mencatat antara 9-18fps tergantung pada perangkat, tetapi saya sedang berusaha untuk memperbaikinya. SCR Screen Recorder masih dalam tahap pengujian beta jadi jangan ragu untuk mengujinya dan memberikan umpan balik.

Iwo Banas
sumber
1
Bagikan penelitian Anda bagaimana hal itu dapat dilakukan secara terprogram di android untuk menangkap tampilan layar secara diam-diam?
Ajay S
@Iwo Bisakah Anda membagikan riset Anda tentang cara merekam video layar secara tata bahasa? Terima kasih.
Srini Kandula
1

AirPlay Mirroring dan Perekaman Layar sekarang berada di CyanogenMod dengan Mirror APK (Beta).

Oli
sumber
1

Jika Anda mengembangkan aplikasi kamera video, maka akan lebih baik untuk mengetahui API yang akan digunakan untuk merekam video:

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

(tautan di atas hanya menunjukkan bagaimana perekaman video dapat dilakukan melalui pengiriman Intent, bukan bagaimana perekaman yang sebenarnya dilakukan)

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

dan jika Anda ingin menulis sendiri "adc screenrecord":

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

Dan tindakan perekaman utama dilakukan di sini:

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

Untuk ponsel Samsung ada pengaturan tambahan (retasan 'cam_mode'):

Resolusi CamcorderProfile.QUALITY_HIGH menghasilkan video berkedip hijau

Tautan yang lebih bermanfaat:

Bagaimana saya bisa menangkap rekaman video di Android?

Peter Teoh
sumber
1

Saya tidak menerapkannya tetapi saya masih memberi Anda ide untuk melakukan ini.

Pertama-tama dapatkan kode untuk mengambil tangkapan layar perangkat Android . Dan Panggil fungsi yang sama untuk membuat Gambar setelah selang waktu tertentu. Tambah kemudian cari kode untuk membuat video dari bingkai / gambar .

Edit

lihat tautan ini juga dan modifikasi sesuai dengan dimensi layar Anda. Hal utama adalah untuk membagi pekerjaan Anda menjadi beberapa tugas kecil dan kemudian menggabungkannya sesuai kebutuhan Anda.

FFMPEG adalah cara terbaik untuk melakukan ini. tetapi begitu saya sudah mencoba tetapi itu adalah prosedur yang sangat panjang. Pertama, Anda harus mengunduh pustaka cygwin dan Native C ++ dan banyak hal dan terhubung kemudian Anda dapat bekerja di FFMPEG (ini dibangun di C ++).

Zar E Ahmer
sumber
Saya melakukan hal yang sama seperti yang Anda sarankan untuk mengambil gambar setelah interval waktu atau tanpa interval, saya memiliki tampilan gulir di mana saya melakukan pengguliran dan di utas lain saya menangkap area layar, tetapi penangkapan yang sama adalah pengembalian untuk 6-7 gambar dan dari daerah lain yang berbeda ditangkap. Saya perlu urutan gambar yang lengkap.
Farrakh Javed
1

Lihatlah Remote Manager . Tapi menurut saya itu tidak berfungsi dengan benar dengan perangkat yang memiliki layar besar. Meskipun, Anda dapat mencoba DEMO sebelumnya.

Nolesh
sumber
Kedua tautan mati: /
rahulserver
@rahulserver, Google memblokirnya, karena saya menggunakan Androidnama program. Segera saya akan mempublikasikannya lagi tanpa Androidkata.
Nolesh
terima kasih telah merespons. Saya sangat membutuhkan. Jadi tolong beri tahu di sini setelah Anda menerbitkan.
rahulserver
@rahulserver, saya menerbitkannya lagi dan memperbaiki tautan.
Nolesh
1

Jika Anda ingin merekam navigasi pengguna sehingga Anda dapat menguji UI dan hal-hal lain, saya sarankan Anda untuk menggunakan TestFairy

Ini memungkinkan Anda untuk mengirim apk ke beberapa pengguna uji melalui email dan melihat video dengan semua sesi di aplikasi dan bahkan aplikasi crash dan statistik perangkat.

Tanda bahaya
sumber
1

Di Android Lollipop (5) telah ditambahkan fitur baru yang memungkinkan tangkapan layar yang dijelaskan di sini

Berikut ini sebuah contoh

Panggil startActivityForResult seperti ini

startActivityForResult(mProjectionManager.getScreenCaptureIntent(), PERMISSION_CODE);

Lalu tangkap hasilnya

@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();
}
kamar rogermush
sumber
0

Ini sudah tua, tetapi bagaimana dengan ASC ?

Richard Cotrina
sumber
Karena ketidakcocokan dengan perangkat bertenaga Tegra? .. yeah .. saya mendapat Asus Transformer: C
Richard Cotrina
Itu membutuhkan menjalankan 'aktivator' pada PC / Mac, tetapi tidak ditandatangani dan tidak menjelaskan apa yang dilakukannya atau bagaimana melakukan 'aktivasi' secara manual. Kedengarannya seperti risiko keamanan dan vektor ancaman.
Chloe
0

Jika Anda menggunakan PC, maka Anda dapat menjalankan My Phone Explorer di PC, MyPhoneExplorer Client di ponsel, mengatur tangkapan layar untuk menyegarkan secara terus-menerus, dan menggunakan Wink untuk menangkap area persegi panjang kustom layar Anda di atas jendela My Phone Explorer dengan tingkat penangkapan Anda sendiri. Kemudian konversikan ke FLV di Wink, lalu konversikan dari video Flash ke MPG dengan WinFF .

Chloe
sumber
Harus ditambahkan bahwa "PC" di sini berarti semacam Microsoft Windows.
pertama
0

Saya belum pernah menggunakan aplikasi ini, tetapi saya pernah melihat Rec. dirujuk sebagai cara untuk melakukan ini, tetapi Anda perlu melakukan root pada ponsel.

Rich Elswick
sumber