Android Ekranının videosunu yakalayın


195

Ekran görüntülerini unut, Android'de çalışan uygulamanın bir videosunu yakalamak mümkün mü? Köklü veya köksüz, umrumda değil, en az 15 fps istiyorum.

Güncelleme: Harici donanım istemiyorum. Amaç mükemmel taşınabilir hale getirmektir ve her kare Android işletim sisteminde yakalanır. Uygulamanın sdk sınırlarını aşarsa, işletim sistemi düzeyinde değişikliklere gitmeye hazırım, ancak bir başlangıç ​​noktasına ihtiyacım var.


Burada söylenenleri tamamen görüyorum. Öykünücü, mevcut ekranı bir video dosyasına da yönlendirme özelliğine sahip olmalıdır. Oyunlarım ve uygulamalarım hakkında bilgilendirici videolar yapabilmem için böyle bir özelliği çok isterim.
Robert Massaioli

1
Bunun için bir çözüm buldunuz mu? eğer öyleyse lütfen bizimle paylaşın. Ben de android ekran video caputre zorunda.
deepa

@deepa hayır bunu yapmanın iyi bir yolu yok.
Taranfx

Bu projeyi kontrol edin: sourceforge.net/projects/ashot
Nirmal Patel

Donanım ekran tamponundan okumak mümkün müdür?
mP.

Yanıtlar:


244

Android 4.4 (KitKat) ve üstü cihazlarda Android cihaz ekranını kaydetmek için bir kabuk yardımcı programı bulunur. KitKat çalıştıran geliştirici / hata ayıklama modunda bir aygıtı USB üzerinden adb yardımcı programıyla bağlayın ve ardından aşağıdakileri yazın:

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

Ekran kaydı maksimum 3 dakika ile sınırlıdır.

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


bana screenrecord gibi cevap veriyor: bulunamadı adb dışarı tarihli neden?
Zehir

1
Android SDK'nız güncel değil gibi görünüyor. Android SDK Yöneticisi'ni açın ve en son SDK araçlarını indirin.
Joe Fernandez

1
Utanç bununla hiç ses yok. Ama yine de harika.
Martin Capodici

1
Sadece eklemek için, bu sayfa android ekran video kaydetmeye başlamak için çift tıklanabilir bağımsız bir adb + komut dosyası "ScreenRecord.bat" olan bir paket var .. skipser.com/p/2/p/record-screen-video-in -android.html
arunskrish

1
Hatayı alıyorum UYARI: linker: libsac3d.so metin yer değiştirmelerine sahiptir. Bu, belleği boşa harcıyor ve bir güvenlik riski. Lütfen düzelt. HATA: kodek yapılandırılamıyor (err = -2147483648) UYARI: 1080x1920'de başarısız, 720x1280'de yeniden deneniyor
Pete_ch

17

Bunun eski bir soru olduğunu biliyorum ama OP'lerin beğenisine cevapsız göründüğü için. Android Market Screencast bağlantısında bunu gerçekleştiren bir uygulama var


29
Kök, btw gerektirdiğinden bahsetmeye değer.
themightyjon

HTC One cihazımda çalışmıyor. Yine de Galaxy S II'de iyi çalıştı.
MiloDC

1
Bu kök gerektirmez. Şimdiye kadar umut verici görünüyor ... droid-at-screen.ribomation.com/installation
Fraggle

Ekranda droid video yapmaz, @Fraggle. Sadece ekran görüntüleri. Sürekli yakalama yapabilir, ancak yaklaşık 1 fps'de.
Michael Petrotta

Şu anda ekranı sadece mac'umda göstermek için bu sourceforge.net/projects/ashot kullanıyorum , sonra ekranın o kısmından bir film çekmek için standart araçlarımı (SnapPro X) kullanıyorum. Kare hızının ashot'da ne olduğundan emin değilim, ancak 1 fps'den daha yüksek olduğunu düşünüyorum.
Fraggle

8

Evet, video çıkışlı bir telefon kullanın ve akışı yakalamak için bir video kaydedici kullanın

Bu makaleye bakın http://graphics-geek.blogspot.com/2011/02/recording-animations-via-hdmi.html


Yapabileceğim bu oldu ama benim ihtiyacım android içinde her şeyi yapmak. Hareket halindeyken çalışmasını sağlamak niyettir.
Taranfx

1
Bence şansınız kalmadı - bu kadar video kodlamasını, hareket halindeyken, bir mobil cihazda ele almak için gereksinimlerin çoğu fiziksel olarak neler yapabileceğinin kapsamı dışındadır, Android (AFAIK) bir akışa erişmek için bir arayüze sahip değildir ve olsa bile, bir uygulama kullanıcının casusluğu yapabileceği için potansiyel olarak büyük bir güvenlik açığıdır.
Ollie C

4

@taranfx, daha fazla bilgi olmadan StackOverFlow'da olduğunuz için Android Geliştirici Araçları'nın yüklü olduğunu varsayıyorum. Öyleyse öykünücüyü çalıştırabilir ve ardından çalışan uygulamanızı yakalamak için birçok masaüstü ekran yakalama programından birini kullanabilirsiniz. Mac'teki Screenflow bunu yapmak için harika çalışıyor. Windows veya Nix platformundaysanız çok iyi ekran yakalama programları olduğundan eminim ve bazı çevrimiçi hizmetler de olduğunu biliyorum, ancak herhangi bir bağlantım yok veya bunları kullandım. Aşağıda, öykünücünün kurulması ve çalıştırılmasıyla ilgili referans belge için bir bağlantı bulunmaktadır. Android SDK, bir mobil cihaz emülatörü içerir ...


2
Afedersiniz? Mac veya Emulator'da değil Android'de video çekimi istedim.
Taranfx

2
MWR, emülatör aracılığıyla Android ekranının yakalanmasını öneriyor
Ollie C

3
Tüm aps'ler emülatörde çalıştırılamaz.
RajV

4

Benim önerim ayrıca SMRecorder gibi bir ekran kaydedici kullanmak. Yavaş öykünücüyü kullanmak yerine - özellikle video ve video izlemek isteyeceğiniz şeyler için, Android yüklü bir VirtualBox VM kullanmanızı öneririm. Dalvik hata ayıklayıcısını ona bağlayabilir ve uygulamada hata ayıklayabilirsiniz. Hata ayıklayıcı uygulamanızı çok yavaşlatırsa, videoyu kaydetmek için bağlantısını kesin. Android VM'yi hata ayıklama için nasıl ayarlayacağınızı açıklayan birçok bağlantı var. Emülatörden çok daha iyi buluyorum. Uygulamanın akselerometreyi veya PC'de bulunmayan kamerayı kullanması durumunda artık bu, doğrudan cihazda ekran yakalamaya özen göstermiyor. Bunun için yukarıda belirtilen android market uygulamasını kullanırdım.


iyi önlem için: spkaa.com/…
Reuben L.

3

Sanırım screencast tegra 2 uyumsuzluğunun hiçbir nedeni, zaten denedim, ama peynir altı suyu! Bu yüzden piyasadan Z-ScreeNRecorder kullanmayı denedim , LG Optimus 2x'e yükledim, ancak kayıt sadece boş bir ekran, 5 dakika boyunca denedim. ve orada 5dk olsun. 6mb boyutunda boş ekran dosyası ... bu yüzden tegra2 yongaseti ile uyumlu yazılım barışını serbest bırakana kadar hiçbir anlamı yok!



1

Cihazınız kökteyse ekran videosunu doğrudan telefonunuzdan veya tabletinizden kaydetmek mümkündür. SCR Ekran Kaydedici uygulaması üzerinde çalışıyorum . Bildiğim kadarıyla bu Tegra cihazlarını (Nexus 7 dahil) ve Android 4.2'yi destekleyen tek uygulamadır. Şu anda uygulama cihaza bağlı olarak 9-18 fps arasında kayıt yapıyor ancak bunu geliştirmek için çalışıyorum. SCR Ekran Kaydedici hala beta test aşamasındadır, bu yüzden test etmek ve geri bildirimde bulunmaktan çekinmeyin.


1
Sessizce ekranın viceo yakalamak için android programlı olarak nasıl araştırma araştırın?
Ajay S

@Iwo Ekran videosunun gramer olarak nasıl kaydedileceği konusundaki araştırmanızı paylaşabilir misiniz? Teşekkür ederim.
Srini Kandula


1

Video kamera uygulamaları geliştiriyorsanız, video çekimi için kullanılacak API'yı bilmek iyi olacaktır:

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

(yukarıdaki bağlantı, gerçek kaydın nasıl yapıldığını değil, yalnızca video kaydının Niyet sunumu yoluyla nasıl yapılabileceğini gösterir)

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

ve "screenrecord" adb uygulamasını kendiniz yazmak istiyorsanız:

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

Ve anahtar kayıt işlemi burada yapılır:

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 telefon için ek ayarlar var ('cam_mode' hack):

CamcorderProfile.QUALITY_HIGH çözünürlük yeşil yanıp sönen video üretir

Daha faydalı bağlantılar:

Android'de nasıl video kaydı yapabilirim?


1

Ben uygulamadı ama yine de size bunu yapmak için bir fikir veriyorum.

Her şeyden önce , Android cihazının ekran görüntüsünü almak için kodu alın . Ve belirli bir süre sonra Görüntüler oluşturmak için aynı işlevi çağırın. Ekle sonra çerçevelerden / görüntülerden video oluşturmak için kodu bulun .

Düzenle

bakınız bu bağlantıyı da ve ekran boyutuna göre arazisi ile merkez şey birkaç küçük görevler halinde işe bölmek ve sonra ihtiyaç olarak birleştirmektir değiştirin.

FFMPEG bunu yapmanın en iyi yoludur. ama bir kez denedim ama çok uzun bir prosedür. Öncelikle cygwin ve Native C ++ kütüphanesini ve birçok şeyi indirip bağlanmalı ve daha sonra FFMPEG üzerinde çalışabilirsiniz (C ++ ile oluşturulmuştur).


Bir süre sonra veya aralıksız görüntü çekmenizi önerdiğim gibi yaptım, kaydırma yaptığım kaydırma görünümü var ve başka bir iş parçacığında ekran alanı yakalıyorum, ancak aynı yakalama 6-7 görüntü için geri dönüyor ve başka bir alan daha ele geçirilir. Tam bir görüntü dizisine ihtiyacım var.
Farrakh Javed

1

Remote Manager'a bir göz atın . Ama bana öyle geliyor ki büyük ekranlı cihazlarda düzgün çalışmıyor. Yine de, daha önce DEMO'yu deneyebilirsiniz .


Her iki bağlantı da öldü: /
rahulserver

@rahulserver, Google onları engelledi, çünkü ben Androidprogram adına kullandım . Yakında onları tekrar haber vermeden yayınlayacağım Android.
Nolesh

cevap verdiğiniz için teşekkürler. Bu yüzden u yayınladıktan sonra lütfen buraya bildirmeyin.
rahulserver

@ rahulserver, onları tekrar yayınladım ve bağlantıları düzelttim.
Nolesh

1

Kullanıcı arayüzünü ve diğer şeyleri test edebilmeniz için kullanıcı navigasyonunu kaydetmek istiyorsanız, TestFairy'yi kullanmanızı öneririm

APK'yı bazı test kullanıcılarına e-postayla göndermenize ve uygulamadaki tüm oturumları ve hatta uygulama kilitlenmelerini ve cihaz istatistiklerini içeren bir video görmenizi sağlar.


1

Android Lollipop'ta (5) burada açıklanan ekran yakalamaya izin veren yeni bir özellik eklendi

İşte bir örnek

Bunun gibi startActivityForResult öğesini arayın

startActivityForResult(mProjectionManager.getScreenCaptureIntent(), PERMISSION_CODE);

Sonra sonucu yakalayın

@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

Bu eski, ama ya ASC ?


Tegra ile çalışan cihazlarla uyumsuzluk nedeniyle mi? .. evet .. Asus Transformer'ım var: C
Richard Cotrina

PC / Mac üzerinde bir 'aktivatör' çalıştırmayı gerektirir, ancak imzasızdır ve ne yaptığını ya da 'aktivasyonun' manuel olarak nasıl yapılacağını açıklamaz. Bir güvenlik riski ve tehdit vektörü gibi geliyor.
Chloe

0

Eğer bir PC üzerinde ise o zaman çalıştırabilirsiniz My Phone Explorer , PC'de MyPhoneExplorer Client , telefonda sürekli yenilemek için ekran yakalama ayarlamak ve kullanmak Wink My Phone Explorer penceresinde üzerinde ekranınızın özel dikdörtgen bir alanı yakalamak için kendi yakalama oranınızla. Sonra Wink'te bir FLV'ye dönüştürün, ardından WinFF ile Flash videodan MPG'ye dönüştürün .


Burada "PC" nin bir çeşit Microsoft Windows anlamına geldiği de eklenmelidir.
rwst

0

Ben uygulamayı kullanmadım, ama Rec gördüm . bunu yapmanın bir yolu olarak adlandırılır, ancak telefonu rootlamanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.