Android की स्क्रीन पर कब्जा वीडियो


195

स्क्रीनशॉट को भूल जाओ, क्या यह एंड्रॉइड में चल रहे एप्लिकेशन के वीडियो को कैप्चर करना है? निहित या गैर-निहित, मुझे परवाह नहीं है, मैं कम से कम 15fps चाहता हूं।

अपडेट: मुझे कोई बाहरी हार्डवेयर नहीं चाहिए। आशय यह है कि इसे पूरी तरह से पोर्टेबल बनाया जाए और हर फ्रेम को Android OS में कैद किया जाए। यदि यह एप्लिकेशन एसडीके की सीमाओं को पार करता है, तो मैं ओएस स्तर के संशोधनों पर जाने को तैयार हूं लेकिन मुझे एक प्रारंभिक बिंदु की आवश्यकता होगी।


मैं पूरी तरह से देखता हूं कि यहां क्या कहा जा रहा है। ऐसा लगता है कि एमुलेटर में वर्तमान स्क्रीन को वीडियो फ़ाइल में पुनर्निर्देशित करने की सुविधा होनी चाहिए। मुझे इस तरह की एक सुविधा पसंद आएगी ताकि मैं अपने गेम और ऐप्स के जानकारीपूर्ण वीडियो बना सकूं।
रॉबर्ट मासायोली

1
क्या आपको इसके लिए समाधान मिला? यदि ऐसा है तो कृपया हमारे साथ साझा करें। मैं भी Android स्क्रीन के वीडियो के लिए है।
गहराया

@deepa nope ऐसा करने का कोई अच्छा तरीका नहीं है।
टरनफैक्स

इस परियोजना की जाँच करें: sourceforge.net/projects/ashot
निर्मल पटेल

क्या हार्डवेयर स्क्रीन बफर से पढ़ना संभव है?
एम.पी.

जवाबों:


243

एंड्रॉइड 4.4 (किटकैट) और उच्चतर उपकरणों में एंड्रॉइड डिवाइस स्क्रीन को रिकॉर्ड करने के लिए शेल उपयोगिता है। USB पर एडीबी उपयोगिता के साथ किटकैट चलाने वाले डेवलपर / डिबग मोड में एक डिवाइस कनेक्ट करें और फिर निम्न टाइप करें:

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


मुझे पटकथा की तरह प्रतिक्रिया दे रहा है: नहीं मिला adb बाहर दिनांकित क्यों है?
जहर

1
ऐसा लगता है जैसे आपका Android SDK पुराना हो गया है। Android SDK प्रबंधक खोलें और नवीनतम SDK उपकरण डाउनलोड करें।
जो फर्नांडीज

1
शर्म की बात है कि इसके साथ कोई ऑडियो नहीं है। लेकिन फिर भी भयानक।
मार्टिन कैपोडिसी

1
बस जोड़ने के लिए, इस पृष्ठ में एक स्टैंडअलोन adb + स्क्रिप्ट "ScreenRecord.bat" है, जो कि एंड्रॉइड स्क्रीन वीडियो रिकॉर्डिंग शुरू करने के लिए डबल क्लिक किया जा सकता है .. Skipser.com/p/2/p/record-screen-video-in -android.html
arunskrish

1
मुझे त्रुटि प्राप्त हो रही है: लिंकर: libsac3d.so में पाठ स्थानांतरण हैं। यह स्मृति को बर्बाद कर रहा है और एक सुरक्षा जोखिम है। कृपया ठीक करें। त्रुटि: कोडेक को कॉन्फ़िगर करने में असमर्थ (गलत = -2147483648) चेतावनी: 1080x1920 पर विफल, 720x1280 पर पुन: प्रयास कर रहा है
पीट_च

17

मुझे पता है कि यह एक पुराना सवाल है लेकिन चूंकि यह ओपी को पसंद आ रहा है। एक ऐप है जो एंड्रॉइड मार्केट स्क्रेन्कास्ट लिंक में इसे accopmlishes करता है


29
यह उल्लेख करते हुए कि इसे रूट, btw की आवश्यकता है।
themightyjon

मेरे एचटीसी वन पर कार्यात्मक नहीं। मेरे गैलेक्सी एस II पर ठीक काम किया, हालांकि।
मिलोडो

1
इस एक को जड़ की आवश्यकता नहीं है। अब तक होनहार लगता है ... droid-at-screen.ribomation.com/installation
Fraggle

Droid-at-screen वीडियो, @Fraggle नहीं करता है। बस स्क्रीनशॉट। यह लगातार कब्जा कर सकता है, लेकिन लगभग 1fps पर।
माइकल पेट्रोत्ता

वर्तमान में मैं अपने मैक पर स्क्रीन दिखाने के लिए इस sourceforge.net/projects/ashot का उपयोग कर रहा हूं , फिर स्क्रीन के उस हिस्से से मूवी कैप्चर करने के लिए अपने मानक टूल (स्नैपप्रो एक्स) का उपयोग कर रहा हूं। निश्चित नहीं है कि फ्रेम दर क्या है, लेकिन मुझे लगता है कि 1 एफपीएस से अधिक है।
फ्रैगल

8

हां, वीडियो आउट वाले फ़ोन का उपयोग करें, और स्ट्रीम कैप्चर करने के लिए वीडियो रिकॉर्डर का उपयोग करें

इस लेख को देखें http://graphics-geek.blogspot.com/2011/02/recording-animations-via-hdm.html


यही मैं कर सकता था, लेकिन मेरी आवश्यकता Android के अंदर सब कुछ करने की है। इसे चलते-फिरते काम करना मंशा है।
टारनफैक्स

1
मुझे लगता है कि आप भाग्य से बाहर हैं - एक मोबाइल डिवाइस पर, मक्खी पर, बहुत अधिक वीडियो एन्कोडिंग को संभालने की आवश्यकताएं, इस बात के दायरे से बाहर हैं कि शारीरिक रूप से सबसे अधिक सक्षम हैं, Android (AFAIK) के पास स्ट्रीम को एक्सेस करने के लिए कोई इंटरफ़ेस नहीं है , और यहां तक ​​कि अगर यह किया है, यह एक संभावित भारी सुरक्षा छेद के रूप में एक app उपयोगकर्ता पर जासूसी कर सकता है।
ओली सी

4

@tranfx, अधिक जानकारी के बिना मैं मान रहा हूँ जब से आप StackOverFlow पर हैं कि आपके पास Android डेवलपर उपकरण स्थापित हैं। यदि ऐसा है तो आप एमुलेटर चला सकते हैं और फिर अपने रनिंग एप्लिकेशन को कैप्चर करने के लिए कई डेस्कटॉप स्क्रीन कैप्चर प्रोग्राम में से एक का उपयोग कर सकते हैं। मैक पर स्क्रीनफ्लो ऐसा करने के लिए बहुत अच्छा काम करता है। मुझे यकीन है कि यदि आप विंडोज या निक्स प्लेटफॉर्म पर हैं तो कई अच्छे स्क्रीन कैप्चर प्रोग्राम हैं और मुझे पता है कि कुछ ऑनलाइन सेवाएं भी हैं, लेकिन मेरे पास कोई लिंक नहीं है और न ही मैंने उनका उपयोग किया है। यहाँ एमुलेटर स्थापित करने और चलाने पर संदर्भ दस्तावेज़ के लिए एक लिंक है। Android SDK में एक मोबाइल डिवाइस एमुलेटर शामिल है ...


2
माफ़ करना? मैंने मैक या एमुलेटर पर एंड्रॉइड में वीडियो कैप्चर करने के लिए कहा।
टारनफैक्स

2
एमडब्ल्यूआर एमुलेटर के माध्यम से एंड्रॉइड स्क्रीन पर कब्जा करने का सुझाव दे रहा है
ओली सी

3
सभी एप्स को एमुलेटर में नहीं चलाया जा सकता है।
राजवी

4

मेरा सुझाव एक स्क्रीन रिकॉर्डर का उपयोग करना भी है, जैसे SMRecorder। एमुलेटर का उपयोग करने के बजाय, जो धीमा है - विशेष रूप से गेम और चीजों के लिए जो आप एक वीडियो चाहते हैं, मैं एंड्रॉइड स्थापित करने के साथ एक वर्चुअलबॉक्स वीएम का उपयोग करने की सलाह देता हूं। आप इसमें Dalvik डिबगर को कनेक्ट कर सकते हैं और आप वहां ऐप डिबग कर सकते हैं। यदि डिबगर बहुत धीमा हो जाता है, तो आप वीडियो रिकॉर्ड करने के लिए इसे बंद कर दें। डिबगिंग के लिए Android VM को सेट करने के तरीके के बारे में बताते हुए कई लिंक हैं। मुझे यह एमुलेटर से कहीं बेहतर लगता है। अब यह डिवाइस पर सीधे स्क्रीन कैप्चर करने का ध्यान नहीं रखता है, यदि आप ऐप में एक्सीलरोमीटर, या कैमरा का उपयोग करते हैं जो पीसी पर उपलब्ध नहीं हैं। उसके लिए मैं ऊपर उल्लिखित android बाजार ऐप का उपयोग करूंगा।


अच्छे उपाय के लिए: spkaa.com/…
रूबेन एल।

3

मुझे लगता है कि स्क्रैन्कास्ट टेग्रा 2 असंगतता का कोई कारण नहीं है, मैंने पहले ही कोशिश की थी, लेकिन कोई मट्ठा नहीं! इसलिए मैंने बाजार से Z-ScreeNRecorder का उपयोग करने की कोशिश की , इसे मेरे एलजी ऑप्टिमस 2x पर स्थापित किया, लेकिन यह केवल रिक्त स्क्रीन रिकॉर्ड करता है, मैंने 5min की कोशिश की। और वहाँ मैं 5min मिलता हूं। 6mb आकार की रिक्त स्क्रीन फ़ाइल ... इसलिए जब तक वे सॉफ़्टवेयर के कुछ शांति को जारी करने की कोशिश नहीं कर रहे हैं, जो tegra2 चिपसेट के साथ संगत है!


2

एंड्रॉइड 4.3 में एक नया मीडियाकोड एपीआई है जिसका उपयोग सतह से रिकॉर्ड करने के लिए किया जा सकता है। देखें: http://developer.android.com/about/versions/android-4.3.html ("एक सतह से वीडियो एन्कोडिंग" अनुभाग पर स्क्रॉल करें)


1

यदि आपका डिवाइस निहित है, तो सीधे अपने फोन या टैबलेट से स्क्रीन वीडियो रिकॉर्ड करना संभव है। मैं SCR स्क्रीन रिकॉर्डर ऐप पर काम कर रहा हूं । मेरे ज्ञान का सबसे अच्छा करने के लिए यह Tegra उपकरणों (Nexus 7 सहित) और Android 4.2 का समर्थन करने वाला एकमात्र ऐप है। फिलहाल ऐप डिवाइस के आधार पर 9-18fps के बीच रिकॉर्ड करता है लेकिन मैं इसे बेहतर बनाने के लिए काम कर रहा हूं। एससीआर स्क्रीन रिकॉर्डर अभी भी बीटा परीक्षण चरण में है इसलिए इसे परीक्षण करने और प्रतिक्रिया देने के लिए स्वतंत्र महसूस करें।


1
अपने शोध को साझा करें कि स्क्रीन के वाइस को चुपचाप पकड़ने के लिए एंड्रॉइड में प्रोग्रामेटिक रूप से कैसे किया जा सकता है?
अजय एस।

@ क्या आप स्क्रीन अनुसंधान को व्याकरणिक रूप से रिकॉर्ड करने के बारे में अपने शोध को साझा कर सकते हैं? धन्यवाद।
श्री कांधुला

1

एयरप्ले मिररिंग और स्क्रीन रिकॉर्डिंग अब मिरर एपीके (बीटा) के साथ CyanogenMod में है ।


1

यदि आप वीडियो-कैमरा एप्लिकेशन विकसित कर रहे हैं, तो वीडियो कैप्चरिंग के लिए उपयोग करने के लिए एपीआई जानना अच्छा होगा:

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

(उपरोक्त लिंक केवल यह दिखाता है कि वीडियो रिकॉर्डिंग इंटेंट सबमिशन के माध्यम से कैसे की जा सकती है, न कि वास्तविक रिकॉर्डिंग कैसे की जाती है)

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

और यदि आप "पटकथा" एडीबी आवेदन स्वयं लिखना चाहते हैं:

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

सैमसंग फोन के लिए अतिरिक्त सेटिंग्स ('कैम_मोड' हैक) है:

CamcorderProfile.QUALITY_HIGH रिज़ॉल्यूशन हरी टिमटिमाता वीडियो बनाता है

अधिक उपयोगी लिंक:

मैं एंड्रॉइड पर वीडियो रिकॉर्डिंग कैसे पकड़ सकता हूं?


1

मैंने इसे लागू नहीं किया, लेकिन फिर भी मैं आपको ऐसा करने का विचार दे रहा हूं।

सबसे पहले एंड्रॉइड डिवाइस का स्क्रीनशॉट लेने के लिए कोड प्राप्त करें । और समय के अंतराल के बाद छवियां बनाने के लिए समान फ़ंक्शन को कॉल करें। फिर फ़्रेम / चित्रों से वीडियो बनाने के लिए कोड खोजें ।

संपादित करें

इस लिंक को भी देखें और इसे अपने स्क्रीन आयाम के अनुसार संशोधित करें। मुख्य बात यह है कि अपने काम को कई छोटे कार्यों में विभाजित करें और फिर इसे अपनी आवश्यकता के रूप में संयोजित करें।

FFMPEG ऐसा करने का सबसे अच्छा तरीका है। लेकिन एक बार मैंने कोशिश की है लेकिन यह बहुत लंबी प्रक्रिया है। सबसे पहले आपको cygwin और Native C ++ लाइब्रेरी को डाउनलोड करना होगा और बहुत सारा सामान और कनेक्ट करना होगा फिर आप FFMPEG पर काम कर सकते हैं (यह C ++ में बनाया गया है)।


जैसा कि आपने समय के अंतराल के बाद या बिना अंतराल के छवियों को लेने से सुझाव दिया था, मेरे पास स्क्रॉलिंग दृश्य है जिसमें मैं स्क्रॉल कर रहा हूं और दूसरे धागे में मैं स्क्रीन क्षेत्र पर कब्जा कर रहा हूं, लेकिन एक ही कैप्चरिंग 6-7 छवियों के लिए रिटर्न है और एक अलग क्षेत्र पर कब्जा कर लिया है। मुझे चित्रों का पूरा अनुक्रम चाहिए।
फारुक जावेद

1

रिमोट मैनेजर पर एक नज़र डालें । लेकिन मुझे लगता है कि यह बड़े स्क्रीन वाले उपकरणों के साथ सही ढंग से काम नहीं करता है। हालाँकि, आप DEMO को पहले आज़मा सकते हैं ।


दोनों लिंक मृत हैं: /
rahulserver

@rahulserver, Google ने उन्हें ब्लॉक कर दिया, क्योंकि मैंने Androidप्रोग्राम के नाम का उपयोग किया था। जल्द ही मैं उन्हें फिर से बिना Androidशब्द के प्रकाशित करूंगा ।
नवलेश

प्रतिक्रिया देने के लिये धन्यवाद। मैं सख्त जरूरत में हूँ। एक बार प्रकाशित होने के बाद pls कृपया यहां सूचित करें।
राउलसेवर

@rahulserver, मैंने उन्हें फिर से प्रकाशित किया और लिंक को सही किया।
नवलेश

1

यदि आप उपयोगकर्ता नेविगेशन रिकॉर्ड करना चाहते हैं, तो आप UI और अन्य चीजों का परीक्षण कर सकते हैं, तो मैं आपको टेस्टफेयर का उपयोग करने की सलाह देता हूं

यह आपको ईमेल द्वारा कुछ परीक्षण उपयोगकर्ताओं को एपीके भेजने और ऐप के सभी सत्रों और यहां तक ​​कि ऐप क्रैश और डिवाइस आँकड़े के साथ एक वीडियो देखने की अनुमति देता है।


1

एंड्रॉइड लॉलीपॉप (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

यह पुराना है, लेकिन एएससी के बारे में क्या ?


टेग्रा-संचालित उपकरणों के साथ असंगति के कारण? .. हाँ .. मैं एक Asus ट्रांसफार्मर मिला: C
रिचर्ड कोट्रिना

इसके लिए पीसी / मैक पर एक 'एक्टीवेटर' चलाने की आवश्यकता होती है, लेकिन यह अहस्ताक्षरित है और यह स्पष्ट नहीं करता है कि यह क्या करता है और न ही मैन्युअल रूप से 'एक्टिवेशन' कैसे करता है। यह एक सुरक्षा जोखिम और खतरे के वेक्टर जैसा लगता है।
क्लो

0

यदि आप पीसी पर हैं तो आप पीसी पर माय फोन एक्सप्लोरर , फोन पर MyPhoneExplorer क्लाइंट चला सकते हैं , स्क्रीन रिफ्रेश को लगातार रिफ्रेश करने के लिए सेट कर सकते हैं और माई फोन स्क्रीन विंडो पर अपनी स्क्रीन के कस्टम आयताकार क्षेत्र पर कब्जा करने के लिए विंक का उपयोग कर सकते हैं। अपने खुद के कब्जा दर के साथ। फिर विंक में एक एफएलवी में कनवर्ट करें, फिर फ्लैश वीडियो से एमपीजी को विनफ के साथ कन्वर्ट करें ।


यह जोड़ा जाना चाहिए कि "पीसी" का मतलब किसी प्रकार का माइक्रोसॉफ्ट विंडोज है।
rwst

0

मैंने ऐप का उपयोग नहीं किया है, लेकिन मैंने Rec देखा है इसे करने के तरीके के रूप में संदर्भित किया जाता है, लेकिन आपको फोन को रूट करने की आवश्यकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.