[英]Capture Video of Android's Screen
忘記截圖,是否可以在Android中捕獲正在運行的應用程序的視頻? 根或不根,我不在乎,我想要至少15fps。
更新:我不需要任何外部硬件。 目的是使其完全可移植,並在Android OS中捕獲每一幀。 如果它跨越app sdk的邊界,我願意去操作系統級修改,但我需要一個起點。
Android 4.4(KitKat)及更高版本的設備具有用於記錄Android設備屏幕的shell實用程序。 通過USB將運行KitKat的開發人員/調試模式的設備與adb實用程序連接,然后鍵入以下內容:
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
我的建議也是使用屏幕錄像機,如SMRecorder。 而不是使用速度慢的模擬器 - 特別是對於您想要視頻的游戲和事物,我建議使用安裝了Android的VirtualBox VM。 您可以將Dalvik調試器連接到它並在那里調試應用程序。 如果調試器使app太慢,請斷開它以錄制視頻。 有很多鏈接解釋如何設置Android VM進行調試。 我覺得它比模擬器好得多。 現在,如果您的應用程序使用加速計或PC上沒有的攝像頭,則不會直接在設備上捕獲屏幕。 為此,我將使用上面提到的Android市場應用程序。
@taranfx,沒有更多信息我假設你在StackOverFlow上安裝了Android Developer Tools。 如果是這樣,您可以運行模擬器,然后使用眾多桌面屏幕捕獲程序之一來捕獲正在運行的應用程序。 Mac上的屏幕流程非常適合這樣做。 我相信如果你在Windows或Nix平台上有很多好的屏幕捕獲程序,我知道也有一些在線服務,但我沒有任何鏈接,也沒有使用它們。 以下是有關設置和運行模擬器的參考文檔的鏈接。 Android SDK包含移動設備模擬器......
我猜截屏不是tegra 2不相容的原因,我已經嘗試過,但沒有乳清! 所以我嘗試在市場上使用Z-ScreeNRecorder ,將它安裝在我的LG Optimus 2x上,但是它記錄了唯一的空白屏幕,我嘗試了5分鍾。 然后我得到5分鍾。 6mb大小的空白屏幕文件...所以沒有必要嘗試,直到他們釋放一些與tegra2芯片組兼容的軟件!
Android 4.3有一個新的MediaCodec API,可用於從曲面錄制。 請參閱: http : //developer.android.com/about/versions/android-4.3.html (向下滾動到“從曲面進行視頻編碼”部分)
如果您的設備已植根,則可以直接從手機或平板電腦錄制屏幕視頻。 我正在研究SCR屏幕錄像機應用程序。 據我所知,這是唯一支持Tegra設備(包括Nexus 7)和Android 4.2的應用程序。 目前應用程序根據設備記錄9-18fps,但我正在努力改進它。 SCR屏幕錄像機仍處於測試階段,因此可以隨意測試並提供反饋。
AirPlay鏡像和屏幕錄制現在使用CyanogenMod with Mirror APK(Beta)。
如果您正在開發視頻攝像頭應用程序,那么最好知道用於視頻捕獲的API:
http://developer.android.com/training/camera/videobasics.html
(以上鏈接僅顯示如何通過Intent提交進行視頻錄制,而不是如何進行實際錄制)
https://www.linux.com/learn/tutorials/729988-android-app-development-how-to-capture-video
如果您想自己編寫“screenrecord”adb應用程序:
關鍵錄音動作在這里完成:
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;
}
對於三星手機,還有其他設置('cam_mode'黑客):
CamcorderProfile.QUALITY_HIGH分辨率產生綠色閃爍視頻
更有用的鏈接:
如果您想記錄用戶導航以便測試UI和其他內容,我建議您使用TestFairy
它允許您通過電子郵件將apk發送給一些測試用戶,並查看包含應用程序中所有會話的視頻,甚至是應用程序崩潰和設備統計信息。
在Android Lollipop(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();
}
這是舊的,但ASC怎么樣?
如果您在PC上,則可以在PC上運行My Phone Explorer ,在手機上運行MyPhoneExplorer Client ,將屏幕截圖設置為連續刷新,並使用Wink通過My Phone Explorer窗口捕獲屏幕的自定義矩形區域用你自己的捕獲率。 然后在Wink中轉換為FLV,然后使用WinFF從Flash視頻轉換為MPG。
我沒有使用過應用程序,但我看過Rec。 作為一種方式引用,但你需要root手機。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.