web-dev-qa-db-ja.com

Android SDKカット/トリムビデオファイル

映画の最後の5秒だけを使用するなど、Androidでビデオ(mp4または3gp)をカットする方法はありますか... iphoneでは、これはAVAssetExportSessionを使用して可能ですが、Android I似たようなものは見つかりませんでした。おそらく、複雑に見えるffmpegライブラリへの参照がいくつかあります。もっと簡単な方法はありますか?

13
Catalin

あなたは私の mp4parser ライブラリでこれを行うことができます。 ShortenExample を見てください。名前が示すとおりに機能します。ライブラリはビデオを再エンコードできないため、Iフレームでのみビデオをカットできます。そのため、カットできる時点はかなり粗いです。

Android 4.1では、オプションになる可能性のあるMediaCodec APIを介してハードウェアコーデックにアクセスできます(ただし、その例はまだ見ていません)

13

Androidでffmpegを使用してビデオをカットできます。

FFmpegをAndroidに統合するには、 ffmpeg-Android のようなプリコンパイル済みライブラリを使用できます。

ビデオをカットするには、以下のコマンドを使用できます-

String[] complexCommand = {"-ss", "" + startMs / 1000, "-y", "-i", inputFileAbsolutePath, "-t", "" + (endMs - startMs) / 1000, "-s", "320x240", "-r", "15", "-vcodec", "mpeg4", "-b:v", "2097152", "-b:a", "48000", "-ac", "2", "-ar", "22050", outputFileAbsolutePath};

ここに、

-ss

配置しようとしています

-y

確認せずに出力ファイルを上書きします。

-私

ffmpegは、-iオプションで指定された任意の数の入力「ファイル」から読み取ります

-t

入力ファイルから読み取られるデータの期間を制限する

-s

ビデオ出力サイズ

-r

フレームレートを設定する

-vcodec

ビデオコーデックを設定します。

-b:v

ビデオのビットレートを設定する

-b:a

オーディオビットレートを設定する

-交流

オーディオチャンネルの数を設定します。

-ar

エンコードされている場合、オーディオストリームのサンプリングレートを設定します

startMs

カットしたい場所からのミリ秒単位のビデオの開始時間

endMs

カットしたいビデオの終了時間(ミリ秒)

ビデオのカットを含むFFMpegを使用したビデオの編集に関するサンプルAndroidプロジェクトを作成しました。チェックしてください-

https://github.com/bhuvnesh123/FFmpeg-Video-Editor-Android

とそのチュートリアル-

https://androidlearnersite.wordpress.com/2017/03/17/ffmpeg-video-editor/

7

これを試して

Intent trimVideoIntent = new Intent("com.Android.camera.action.TRIM");

// The key for the extra has been discovered from com.Android.gallery3d.app.PhotoPage.KEY_MEDIA_ITEM_PATH
trimVideoIntent.putExtra("media-item-path",FilePath);
trimVideoIntent.setData(videoUri);

// Check if the device can handle the Intent
List<ResolveInfo> list = getPackageManager().queryIntentActivities(trimVideoIntent, 0);
if (null != list && list.size() > 0) {
    startActivity(trimVideoIntent); // Fires TrimVideo activity into being active
}else {
    Toast.makeText(this, "not supported",Toast.LENGTH_SHORT).show();
}

gallery2パッケージがインストールされたデバイスでの作業

4
Shijil

INDE Media for Mobileを試すことができます- https://software.intel.com/en-us/articles/intel-inde-media-pack-for-Android-tutorials

MediaComposerクラスとしてトランスコーディング/リマックス機能があり、結果ファイルのセグメントを選択する可能性があります。内部でMediaCodecAPIを使用しているため、非常にバッテリーに優しく、可能な限り高速に動作します

enter image description here

1
Marlon