スクリーンショットを忘れて、Androidで実行中のアプリケーションのビデオをキャプチャすることは可能ですか?根ざしたか根ざしていない、私は気にしない、私は少なくとも15fpsが欲しい。
更新:外部ハードウェアは必要ありません。完全にポータブルにすることを意図しており、すべてのフレームはAndroid OS内でキャプチャされます。それがアプリSDKの境界を越える場合、私はOSレベルの変更に進んでいきますが、出発点が必要になります。
スクリーンショットを忘れて、Androidで実行中のアプリケーションのビデオをキャプチャすることは可能ですか?根ざしたか根ざしていない、私は気にしない、私は少なくとも15fpsが欲しい。
更新:外部ハードウェアは必要ありません。完全にポータブルにすることを意図しており、すべてのフレームはAndroid OS内でキャプチャされます。それがアプリSDKの境界を越える場合、私はOSレベルの変更に進んでいきますが、出発点が必要になります。
回答:
Android 4.4(KitKat)以降のデバイスには、Androidデバイスの画面を記録するためのシェルユーティリティがあります。USB経由の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マーケットのスクリーンキャストリンクにあります
はい、ビデオ出力付きの電話を使用し、ビデオレコーダーを使用してストリームをキャプチャします
この記事を参照してくださいhttp://graphics-geek.blogspot.com/2011/02/recording-animations-via-hdmi.html
@taranfx、詳細情報なし。StackOverFlowを使用しているため、Android開発者ツールがインストールされていると思います。その場合は、エミュレータを実行してから、多数のデスクトップ画面キャプチャプログラムの1つを使用して、実行中のアプリケーションをキャプチャできます。Macの画面フローはこれを行うのに最適です。WindowsまたはNixプラットフォームを使用している場合は、多くの優れた画面キャプチャプログラムがあり、オンラインサービスもいくつかあることは確かですが、リンクも使用したこともありません。エミュレータの設定と実行に関するリファレンスドキュメントへのリンクを次に示します。Android SDKには、モバイルデバイスエミュレーターが含まれています...
また、SMRecorderなどのスクリーンレコーダーを使用することをお勧めします。遅いエミュレータを使用する代わりに、特にゲームやビデオが必要なものには、AndroidがインストールされているVirtualBox VMを使用することをお勧めします。Dalvikデバッガーをそれに接続して、そこでアプリをデバッグできます。デバッガーがアプリの動作を遅くし過ぎている場合は、デバッガーを切断してビデオを記録してください。Android VMをデバッグ用に設定する方法を説明するリンクがたくさんあります。私はそれがエミュレーターよりはるかに優れていると思います。これで、アプリが加速度計を使用したり、PCで利用できないカメラを使用したりした場合に、デバイスで画面を直接キャプチャすることはできなくなります。そのためには、上記のAndroidマーケットアプリを使用します。
Android 4.3には、サーフェスからの記録に使用できる新しいMediaCodec APIがあります。参照:http : //developer.android.com/about/versions/android-4.3.html (「Surfaceからのビデオエンコーディング」セクションまでスクロールしてください)
デバイスがルート化されている場合、携帯電話またはタブレットから直接画面ビデオを録画することが可能です。私は、に取り組んでいSCRスクリーンレコーダアプリ。私の知る限り、これはTegraデバイス(Nexus 7を含む)とAndroid 4.2をサポートする唯一のアプリです。現時点では、アプリはデバイスに応じて9〜18 fpsで記録しますが、改善に取り組んでいます。SCRスクリーンレコーダーはまだベータテスト段階です。自由にテストしてフィードバックをお寄せください。
AirPlayミラーリングと画面記録は、ミラーAPK(ベータ版)を備えたCyanogenModになりました。
ビデオカメラアプリケーションを開発する場合、ビデオキャプチャに使用するAPIを知っておくと便利です。
http://developer.android.com/training/camera/videobasics.html
(上記のリンクは、実際の録画がどのように行われるかではなく、インテント送信を介してビデオ録画がどのように行われるかを示すだけです)
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解像度は、緑のちらつきビデオを生成します
より役立つリンク:
私はそれを実装しませんでしたが、まだこれを行うためのアイデアをあなたに与えています。
まず、Androidデバイスのスクリーンショットを撮るコードを取得します。そして、一定時間後に画像を作成するために同じ関数を呼び出します。フレームを追加して、フレーム/画像からビデオを作成するコードを見つけます。
編集する
このリンクも参照して、画面のサイズに応じて変更してください。主な作業は、作業をいくつかの小さなタスクに分割し、必要に応じて組み合わせることです。
これを行うにはFFMPEGが最適です。しかし、一度試してみましたが、それは非常に長い手順です。最初に、cygwinとネイティブC ++ライブラリおよび多くのものをダウンロードして接続する必要があります。その後、FFMPEG(C ++に組み込まれています)で作業できます。
Remote Managerをご覧ください。しかし、私には、大画面のデバイスでは正しく機能しないようです。ただし、前にデモを試すことができます。
Android
はプログラムの名前で使用したため、Googleはそれらをブロックしました。間もなく私はAndroid
言葉なしでそれらを再び出版します。
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上でMyPhoneExplorerクライアントを、電話で継続的に更新するには、画面キャプチャを設定し、使用ウィンクを自分の携帯電話のエクスプローラウィンドウの上に画面のカスタム矩形領域をキャプチャしますあなた自身の捕獲率で。次に、ウィンクでFLVに変換してから、WinFFで FlashビデオからMPGに変換します。
私はアプリを使用していませんが、Rec。これを行う方法として参照されていますが、電話のルート権限が必要です。