Android截取视频帧并转化为Bitmap示例
MainActivity如下:
package cn.testmediametadataretriever;
import java.io.File;
import java.io.FileOutputStream;
import android.media.MediaMetadataRetriever;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* Demo描述:
* 利用MediaMetadataRetriever按照时间截取视频
* 并转换为Bitmap存放于SDCard
*
* 特别注意:
* getFrameAtTime()方法第一个参数的单位是微秒 (us)
*
*/
public class MainActivity extends Activity {
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
mButton=(Button) findViewById(R.id.button);
mButton.setOnClickListener(new ClickListenerImpl());
}
private class ClickListenerImpl implements OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
getBitmapsFromVideo();
default:
break;
}
}
}
public void getBitmapsFromVideo() {
String dataPath = Environment.getExternalStorageDirectory()+ "/testVideo.mp4";
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(dataPath);
// 取得视频的长度(单位为毫秒)
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
// 取得视频的长度(单位为秒)
int seconds = Integer.valueOf(time) / 1000;
// 得到每一秒时刻的bitmap比如第一秒,第二秒
for (int i = 1; i <= seconds; i++) {
Bitmap bitmap = retriever.getFrameAtTime(i*1000*1000,MediaMetadataRetriever.OPTION_CLOSEST_SYNC);
String path = Environment.getExternalStorageDirectory()+ File.separator + i + ".jpg";
FileOutputStream fos = null;
try {
fos = new FileOutputStream(path);
bitmap.compress(CompressFormat.JPEG, 80, fos);
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
————————————————————————————————————————————————————————————
main.xml如下:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取视频的帧图片"
android:layout_centerInParent="true"
/>
</RelativeLayout>
Android截取视频帧并转化为Bitmap示例相关推荐
- python快速检测视频跳过帧_使用Python实现跳帧截取视频帧
本文实例为大家分享了Python跳帧截取视频帧的具体代码,供大家参考,具体内容如下 可以自由设定时长来截取视频,经实测效果理想.期间遇到的一个麻烦是我的视频文件在D:盘,在原视频D盘目录上不能保存截取 ...
- 视频抽帧并存图 python_使用Python实现跳帧截取视频帧
本文实例为大家分享了Python跳帧截取视频帧的具体代码,供大家参考,具体内容如下 可以自由设定时长来截取视频,经实测效果理想.期间遇到的一个麻烦是我的视频文件在D:盘,在原视频D盘目录上不能保存截取 ...
- 制作视频数据集(一):截取视频帧
** 制作视频数据集(一):截取视频帧 ** 1.smart player截取视频帧 直接下载smart player截取即可,我是觉得这个软件截取更简单一些,但我下载之后截取页面显示不了文件,搞不了 ...
- python OpenCV 按(帧数/时间)间隔截取视频帧
帧率(FPS):每秒钟播放的帧数 1.如果你想直接通过帧数间隔截取视频帧,那直接使用可以使用下面的代码: import cv2cap = cv2.VideoCapture("./query_ ...
- Java图片,视频上传,截取视频帧以及文件下载和视频IO获取
public class FileUtil { @Value("${img.url}") public String imgUrl; @Value("${video.ur ...
- python按时间截取视频,python使用opencv按一定间隔截取视频帧
python如何用opencv把一个视频按每10秒一小段切下来一个人的记忆就是一座城市,时间腐蚀着一切建筑,把高楼和道路一切沙化.如果你不往前走,就会被沙子掩埋.沙城就是一个人的记忆. 视频共计30秒 ...
- java截取视频生成图片_Java截取视频帧,生成图片
1.pom依赖 org.bytedeco.javacpp-presets opencv-platform 3.4.1-1.4.1 org.bytedeco javacpp 1.4.1 org.byte ...
- Android 将图片网址url转化为bitmap,drawable转bitmap,file转bitmap,bitmap转file
file转bitmap File param = new File(); Bitmap bitmap= BitmapFactory.decodeFile(param.getPath()); drawa ...
- android截取视频为gif图片大小,视频编辑器实验室:修剪,裁剪,转换为GIF
视频编辑器实验室:修剪,裁剪,转换为GIF 介绍 视频编辑器实验室:修剪,裁剪,转换为GIF 通过我们的高清质量的视频编辑器,每天精简您的视频.用户可以裁剪,修剪,增加速度并转换为不同的视频格式,并从 ...
最新文章
- python 对话框的创建及调用_Python 使用 PyQt 自定义对话框
- notepad++ 设置编辑区域背景色为黑色
- 20211205 Nussbaum函数实例
- linux 中 id指令,Linux id 命令
- 项目回顾-PopupWindow
- 服务器消除报警信息,巧妙设置让故障服务器自动报警的小技巧
- mysql检索整数_MyBatis从MySql DB中检索整数为Enum
- 3个开源TTS(二)eSpeak的简要分析使用
- 【6.24-AppCan移动开发大会倒计时】科大讯飞来了!
- SQL常用语句(普通查询+条件查询)
- 【详细】MySQL之游标
- MAYA安装包+安装教程
- Ubuntu16.04下网易云音乐点击图标打不开——已解决
- SPR EAD NET 6
- antd 表单通过form.getFieldsValue获取不全tabs组件下表单数据的问题
- 机器学习读书笔记(四)朴素贝叶斯基础篇之网站账号分类
- 大数据就业前景如何?大数据时代,马云这样说...
- 2022年云南最新建筑八大员(市政)模拟考试题库及答案
- 数据安全评估体系建设
- 实现抖音霓虹灯效果---OpenCV-Python开发指南(55)