android 獲取視訊幀
今天做android視訊檔案解碼,需求:從一個視訊檔案獲取到一幀一幀的圖片。
總結如下:
首先看程式碼:
MediaDecoder.java
這裡是獲取視訊幀工具,除錯的時候遇到一些問題:import android.graphics.Bitmap; import android.media.MediaMetadataRetriever; import android.util.Log; public class MediaDecoder { private static final String TAG = "MediaDecoder"; private MediaMetadataRetriever retriever = null; private String fileLength; public MediaDecoder(String file) { if(CommonUtils.checkFile(file)){ retriever = new MediaMetadataRetriever(); retriever.setDataSource(file); fileLength = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); Log.i(TAG, "fileLength : "+fileLength); } } /** * 獲取視訊某一幀 * @param timeMs 毫秒 * @param listener */ public boolean decodeFrame(long timeMs,OnGetBitmapListener listener){ if(retriever == null) return false; Bitmap bitmap = retriever.getFrameAtTime(timeMs * 1000, MediaMetadataRetriever.OPTION_CLOSEST); if(bitmap == null) return false; listener.getBitmap(bitmap, timeMs); return true; } /** * 取得視訊檔案播放長度 * @return */ public String getVedioFileLength(){ return fileLength; } }
其中一個是getFrameAtTime引數的使用,先看方法原型:public Bitmap getFrameAtTime(long timeUs, int option) 第一個引數是傳入時間,只能是us(微秒) ,當時我傳入的ms,獲取的總是第一幀,所以這個問題都弄了好久。
然後是第二個引數,先看看官方解釋:
OPTION_CLOSEST
在給定的時間,檢索最近一個幀,這個幀不一定是關鍵幀。
在給定的時間,檢索最近一個同步與資料來源相關聯的的幀(關鍵幀)。
在給定時間之後檢索一個同步與資料來源相關聯的關鍵幀。
這裡為了提取我們想要的幀,不使用關鍵幀,所以用 OPTION_CLOSEST .
相關推薦
android 獲取視訊幀
今天做android視訊檔案解碼,需求:從一個視訊檔案獲取到一幀一幀的圖片。 總結如下: 首先看程式碼: MediaDecoder.java import android.graphics.Bitmap; import android.media.MediaMetadat
android 獲取視訊某一時間的幀,並獲取bitmap
最近要做一個為視訊設定封面的功能,這裡展示一下簡單的demo。 demo效果 這裡直接將選取的視訊某一時間的bitmap顯示在視訊下方。上面是視訊,下面是所獲取那一幀的截圖。 具體程式碼 這裡的話主要是靠videoView來顯示視訊內容,seekBar來控制視訊的進
Android獲取視訊的關鍵幀和非關鍵幀
public Bitmap getFrameAtTime() //如果不加引數的話,提取第一個關鍵幀 public Bitmap getFrameAtTime() { return getFrameAtTime(-1, OPTION_CLOSEST_SYNC);
android 從檔案獲取視訊幀
轉自:https://blog.csdn.net/heart_Moving/article/details/17414067MediaDecoder.javaimport android.graphics.Bitmap; import android.media.MediaM
Android 獲取視訊第一幀縮圖
乾貨 從API 8開始,新增了一個類: android.media.ThumbnailUtils這個類提供了3個靜態方法一個用來獲取視訊第一幀得到的Bitmap,2個對圖片進行縮略處理。 public static Bitmap createVideoThumbna
Android -- 獲取視訊第一幀縮圖
從API 8開始,新增了一個類: android.media.ThumbnailUtils這個類提供了3個靜態方法一個用來獲取視訊第一幀得到的Bitmap,2個對圖片進行縮略處理。 public static Bitmap createVideoThumbnail (
android 獲取視訊縮圖終極解決方案(ffmpeg)
前些天有個師弟(在做一個仿LinkInEyes行車記錄儀的app)問我怎麼獲取視訊縮圖,起初以為很簡單,就找了個常用的解決方案(使用者獲取正常的視訊檔案的縮圖): 方案1: private void initView() { imgPic = (
Android 獲取視訊縮圖以及獲取視訊解析度
今天遇到一個問題,視訊播放不能居中。 在設定VideoView的Layout時候,把整個螢幕分配給VideoView。 不過Video在播放的時候,對於成寬比和螢幕不一樣的視訊,卻沒有把視訊播放到中央。 採用相同的策略,ImageView就可以把影象放到螢幕最中央,感覺是V
Android 獲取視訊(本地和網路)縮圖的解決方案
在Android 開發視訊的時候,通常都需要顯示視訊列表,而視訊列表通常都有一張視訊縮圖,那麼它是怎麼獲取的呢, 關於網路視訊的縮圖的實現方案主要有兩種: 1、後臺返回視訊時順便連縮圖的路徑都返回給你了,這樣前端壓力輕鬆。 2、後臺是返回視訊路徑,關於縮圖
Android 播放視訊並獲取指定時間的幀畫面
轉載:https://blog.csdn.net/u011506413/article/details/51704445 Android 播放視訊並獲取指定時間的幀畫面 六.VideoView播放視訊,MediaMetadataRetriever獲取幀畫面
android獲取攝像頭視訊幀資料
1.思路 一.通過android的Camera.setPreviewCallback(PreviewCallback cb)監聽回撥. 二.此回撥函式public void onPreviewFrame(byte[] data, Camera camera)每回調一次就是
Android如何獲取視訊預覽圖(或首幀)和獲取視訊時長
Android獲取視訊預覽圖(或首幀)和獲取時長需要用到MediaMetadataRetriever類,獲取預覽圖使用getFrameAtTime()方法,獲取時長使用extractMetadata(MediaMetadataRetriever.METADATA_KEY_DU
android獲取圖片原始長寬,獲取視訊第一幀的縮圖
public static Bitmap getVideoThumbnail(String videoPath) { MediaMetadataRetriever media =new MediaMetadataRetriever(); media.setDataSource(videoPat
在Android中如何獲取視訊的第一幀圖片並顯示在一個ImageView中
String path = Environment.getExternalStorageDirectory().getPath();MediaMetadataRetriever media = new MediaMetadataRetriever();media.setD
Android之使用MediaMetadataRetriever類獲取視訊第一幀
一.首先,來介紹一下MediaMetadataRetriever類,此類位於android.media包下,這裡,先附上可檢視此類的API地址:MediaMetadataRetriever類,大家可以自行檢視。 1.MediaMetadataRetriever類概述:Med
LibVLC for android 解碼視訊並獲取每一幀
一、背景 最近有一個需求,使用android系統的裝置,從IP攝像頭(RTSP SERVER)獲取到的視訊中的每一幀進行處理(人臉檢測),直接使用ffmpeg進行實現比較簡單,但是苦於對ffmpeg不太熟悉,獲取到的視訊延遲較高,只好轉戰看看LibVLC能否獲得更好
獲取視訊的每一幀,並儲存為.jpg圖片
#include<opencv2\opencv.hpp> #include <iostream> #include <stdio.h> #include<fstream> using namespace std; using names
Java圖片,視訊上傳,擷取視訊幀以及檔案下載和視訊IO獲取
public class FileUtil { @Value("${img.url}") public String imgUrl; @Value("${video.url}") public String videoUrl; /** * 儲存圖片 * @para
檔案上傳至oss後,獲取圖片縮率圖、獲取視訊截幀等後續操作
上一篇文章說了一下檔案上傳至oss:https://blog.csdn.net/new_programmer_h/article/details/84307005 這裡說一下上傳後的一些後續操作:常用的獲取圖片縮率圖、獲取視訊截幀生成封面圖。自我感覺阿里oss對於這些處理封裝的很好,只要根據:"%s|sys
ffmpeg處理視訊獲取第一幀截圖
<?php //使用PHP SDK,並且使用自定義配置檔案 require app_path().'/include/BaiduBce.phar'; require app_path().'/include/SampleConf.php'; require app_path().'