android視頻幀
① 安卓手機怎麼調幀數,有什麼軟體可以調
高端機基本上自帶刷新率調節的功能;中低端機需要ROOT之後才能調,但現在的手機基本上小白是ROOT不了的,能在網路問這種問題,我猜你也不是個大神,所以這個問題基本無解。
現在主流安卓手機屏幕的幀數基本上都是60幀,一些高端旗艦機屏幕的幀數可以達到120幀,比如RealMe真我Q3、OPPO FindX2、IQOO Neo3等。
我感覺現在調手機幀數沒什麼意義,因為你往低了調,屬於自找難受;往高了調,硬體又不支持,所以沒必要。
FPS是圖像領域中的定義,是指畫面每秒傳輸幀數,通俗來講就是指動畫或視頻的畫面數。
FPS是測量用於保存、顯示動態視頻的信息數量。每秒鍾幀數越多,所顯示的動作就會越流暢。通常,要避免動作不流暢的最低是30。
FPS也可以理解為我們常說的「刷新率(單位為Hz)」,例如我們常在游戲里說的「FPS值」。我們在裝機選購顯卡和顯示器的時候,都會注意到「刷新率」。
一般我們設置預設刷新率都在75Hz(即75幀/秒)以上。例如:75Hz的刷新率刷也就是指屏幕一秒內只掃描75次,即75幀/秒。
而當刷新率太低時我們肉眼都能感覺到屏幕的閃爍,不連貫,對圖像顯示效果和視覺感官產生不好的影響。
電影以每秒24張畫面的速度播放,也就是一秒鍾內在屏幕上連續投射出24張靜止畫面。
有關動畫播放速度的單位是fps,其中的f就是英文單詞Frame(畫面、幀),p就是Per(每),s就是Second(秒)。用中文表達就是多少幀每秒,或每秒多少幀。電影是24fps,通常簡稱為24幀。
② android 如何對每幀的視頻流進行編碼
首先,你的文件有沒有錯誤。 比如,拿出來,放在pc上看看是否能播。不能播,可能你保存的文件有誤。如果,能播。那麼可能與文件的許可權有問題。如果放在file的目錄下,可能需要更改文件目錄及創建的文件的許可權。其方法網上有,調用java的方法,使用linux命令行。
③ 什麼安卓手機視頻播放器可以顯示視頻的實時幀數
在迅雷影音的界面,右鍵菜單中選擇」媒體信息「。即可查看視頻文件的詳細信息。
具體方法如下:
需要用到的軟體:迅雷影音播放器。
1、首先下載完成視頻文件。
6、完成。
④ Android使用MediaMetadataRetriever類獲取視頻幀時一直無法正確讀取路徑文件,iamge顯示位null
從API 8開始,新增了一個類:
android.media.ThumbnailUtils這個類提供了3個靜態方法一個用來獲取第一幀得到的Bitmap,2個對圖片進行縮略處理。
public static Bitmap createVideoThumbnail (String filePath, int kind)
第一個參數是文件的路徑,第二個參數是指定圖片的大小,有兩種選擇Thumbnails.MINI_KIND與Thumbnails.MICRO_KIND。
第一種文檔上說大小是512 x 384 ,我用一個MP4格式文件測試得到544 x 960,用一個wmv格式文件測試得到160 x 120。明顯不靠譜。第二種參數兩種格式文件得到的大小都是 96 x 96,這個才是縮略圖。extractThumbnail(Bitmap source, int width, int height, int options)
extractThumbnail(Bitmap source, int width, int height)
這兩種方法都是用來處理Bitmap的大小的,第一個參數是要處理的Bitmap,第二個參數是處理後寬度,第三個是高度,第四個參數options,如果options定義為OPTIONS_RECYCLE_INPUT,則回收資源。也就是說可以用第三種方法把截取到的第一幀的Bitmap轉成任意想要的大小,第三個方法還可以獲取內存卡內圖片的縮略圖。
Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(path1, Thumbnails.MINI_KIND);
bitmap = ThumbnailUtils.extractThumbnail(bitmap, 210, 210);
從API 10開始新增一類MediaMetadataRetriever可以用來獲取媒體文件的信息
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(/sdcard/33.mp4);
Bitmap bitmap = mmr.getFrameAtTime();
image.setImageBitmap(bitmap);
System.out.println(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE)+);
System.out.println(mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE)+);
mmr.release();
MediaMetadataRetriever可以獲取任何一幀的縮略圖。
public static Bitmap createVideoThumbnail(String filePath) {
// MediaMetadataRetriever is available on API Level 8
// but is hidden until API Level 10
Class clazz = null;
Object instance = null;
try {
clazz = Class.forName(android.media.MediaMetadataRetriever);
instance = clazz.newInstance();
Method method = clazz.getMethod(setDataSource, String.class);
method.invoke(instance, filePath);
// The method name changes between API Level 9 and 10.
if (Build.VERSION.SDK_INT <= 9) {
return (Bitmap) clazz.getMethod(captureFrame).invoke(instance);
} else {
byte[] data = (byte[]) clazz.getMethod(getEmbeddedPicture).invoke(instance);
if (data != null) {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
if (bitmap != null) return bitmap;
}
return (Bitmap) clazz.getMethod(getFrameAtTime).invoke(instance);
}
} catch (IllegalArgumentException ex) {
// Assume this is a corrupt video file
} catch (RuntimeException ex) {
// Assume this is a corrupt video file.
} catch (InstantiationException e) {
Log.e(TAG, createVideoThumbnail, e);
} catch (InvocationTargetException e) {
Log.e(TAG, createVideoThumbnail, e);
} catch (ClassNotFoundException e) {
Log.e(TAG, createVideoThumbnail, e);
} catch (NoSuchMethodException e) {
Log.e(TAG, createVideoThumbnail, e);
} catch (IllegalAccessException e) {
Log.e(TAG, createVideoThumbnail, e);
} finally {
try {
if (instance != null) {
clazz.getMethod(release).invoke(instance);
}
} catch (Exception ignored) {
}
}
return null;
}
⑤ Android中怎麼逐幀讀取一段視頻
我用的是Kmplayer,很有名的一款視頻播放器,網路下就有了,我一直在用。
1.打開你想要從中截取gif的電影或視頻,手動調節播放器到你需要截取的那一段(按F鍵可以一幀一幀的微調),然後暫停。
2.右鍵點擊出現菜單,選擇 【捕獲】-【畫面:高級捕獲】調出【幀模式】窗口(或直接按快捷鍵Ctrl + G)
3.在幀模式窗口中先選擇你想要截圖保存的位置,在「要捕獲的數量」裡面選擇【連續】,「要捕獲的幀」選擇【所有幀】。如果影片清晰度高,那麼「捕獲尺寸」選【原始尺寸】的話截出來的圖就會很大,而且會由於截的圖片大變的很卡,有時還會漏幀。再說反正後面做gif的時候還要把圖片縮小,所以選擇【指定尺寸】,然後把播放器窗口調小一些,點下面的那個,就會自動匹配你當前畫面的大小尺寸。
4. 點幀模式窗口中右下方【開始】(此時播放器停止播放的話是不會截圖的,開始播放時就會自動逐幀截圖),然後再點擊播放器開始播放,此時播放器自動進行所有幀抓取存儲操作,完成時先點幀模式右下方的【停止】,再點擊播放器的停止播放。逐幀截圖工作完成。
⑥ 怎麼讓安卓手機過渡動畫保持每秒60幀,滑動也是每秒60幀
不要誤導別人。30幀如果是標準的30幀的話,看上去可以是"流暢"的視覺感受。而60幀才真的是"穩定"。假如是24幀,對於手機來說絕對是卡頓的,很明顯的卡頓,不連貫。你認為的24幀感覺不到閃爍,說的是24幀電影吧,電影確實是24幀,而且視覺效果上比較流暢穩定,這前提是所有的幀都是模糊幀,每一幀都是結合前後兩幀畫面而妥協之後的。好萊塢大片之所以24幀能讓人感覺不到卡頓是因為幾乎每一幀都是經過工作室精心調制的,每一秒的24幀畫面模糊化處理後會顯得連貫。目前手機顯示技術上可以穩定60幀動畫,但是會消耗過多的性能,造成續航進一步下降(而智能手機續航本來就是軟肋),所以大多數廠家還是使用的30幀(非標准足量的30幀,有時候復雜場景下會掉幀,造成卡頓的視覺現象)。另外,剛才提到的24幀模糊處理,類似於電腦單機游戲上的"動態模糊"處理方式,可以驗證一下,同樣鎖幀40每秒,開啟和關閉動態模糊會有很大的差距。所以說24幀不閃爍,說的是經過後期處理的超級電影,手機是沒有動態模糊處理的,每一幀都是實實在在的。所以手機如果想要一直保持絕對穩定流暢,需要達到真實60幀每秒以上的幀率。
⑦ Android中怎麼逐幀讀取視頻文件
MediaMetadataRetriever media = new MediaMetadataRetriever();
media.setDataSource(」視頻的絕對地址「);
Bitmap bitmap = media.getFrameAtTime();
image = (ImageView)this.findViewById(R.id.imageView1);
image.setImageBitmap(bitmap);
這個是獲取第一禎的代碼,可以參考下
⑧ 安卓有什麼能將視頻一幀一幀編輯剪輯的軟體嗎
沒有這樣的APP。
別說手機了,就是電腦上應用的視頻編輯軟體,能一幀一幀處理的,也不多。 只有功能強大的視頻編輯軟體,如PR等,才可以處理到幀。
即使PR能處理到幀,但PR是視頻編輯軟體,對圖片(一幀就是一圖片)的處理功能相當弱! 所以,在處理幀(特別是一幀一幀的修改時)時,通常先用PR,將視頻生成序列幀,然後在PS中,一張一張的修改。修改完成後,再導入PR中。
⑨ 安卓手機錄屏的監控視頻和原監控視頻單幀播放一樣嗎每秒幀數一樣嗎
摘要 不一定,但你可以設置錄屏的有關參數,可以達到高畫質,高音質。
⑩ 安卓手機幀數顯示軟體
首先,人眼的感知極限並不是 60 fps
我們從維基網路以及果殼中,可以查到:」有了平滑度高的60hz之後,更有極度連貫的120hz的電視推出,而超過大概85赫茲的視頻,像是畫面每更新一次只會發光幾百分之一秒的陰極射線管及等離子顯示屏,此時已經到達大腦處理視頻的極限,人眼並無法分辨與更高更新率的差異,因此使用主動式快門眼鏡的3D電視更新率達到200赫茲或以上,對人眼來說是無法看到左右視角切換的過程。「
因此,人眼的感知極限是高於 60 fps 的。
其次,畫面幀率越高,體驗越好
維基網路中提到幾個重要的幀率數值:
12 fps:由於人類眼睛的特殊生理結構,如果所看畫面之幀率高於每秒約10-12幀的時候,就會認為是連貫的
24 fps:有聲電影的拍攝及播放幀率均為每秒24幀,對一般人而言已算可接受
30 fps:早期的高動態電子游戲,幀率少於每秒30幀的話就會顯得不連貫,這是因為沒有動態模糊使流暢度降低
60 fps:在實際體驗中,60幀相對於30幀有著更好的體驗
85 fps:一般而言,大腦處理視頻的極限
注:如果需要了解動態模糊技術相關知識,可以查閱這里
所以,總體而言,幀率越高體驗越好。一般的電影拍攝及播放幀率均為每秒24幀,但是據稱《霍比特人:意外旅程》是第一部以每秒48幀拍攝及播放的電影,觀眾認為其逼真度得到了顯著的提示。
但是,目前顯示性能優化的極限是 60 fps
這里出現了一個悖論:既然幀率越高體驗越好,那為什麼我們的顯示性能優化只需要做到 60 fps 就 OK 了?具體的原因就要從我們使用的設備說起了。
首先,我們需要明確一點:生成圖像的設備(如顯卡)與顯示圖像的設備(如顯示器)是分離的。下面我們分別進行討論:
顯示器的刷新頻率是固定的
目前, 大多數顯示器根據其設定按 30Hz、 60Hz、 120Hz 或者 144Hz 的頻率進行刷新。 而其中最常見的刷新頻率是 60 Hz。 這樣做是為了繼承以前電視機刷新頻率為 60Hz 的設定。 而 60 Hz 是美國交流電的頻率, 電視機如果匹配交流電的刷新頻率就可以有效的預防屏幕中出現滾動條,即互調失真。(這樣我想起了一個老段子:馬屁股決定太空梭火箭助推器的寬度)
顯卡的生成圖像的頻率是變化的
因為,顯卡的生成圖像的頻率與顯示器的刷新頻率是相互獨立的。因此,就涉及到了一個配合的問題。
最理想的情況是兩者之間的頻率是相同且協同進行工作的,在這樣的理想條件下,達到了最優解。但實際中顯卡的生成圖像的頻率是變化的,如果沒有有效的技術手段進行保證,兩者之間很容易出現這樣的情況:當GPU還在渲染下一幀圖像時,顯示器卻已經開始進行繪制,這樣就會導致屏幕撕裂(Tear)。這會使得屏幕的一部分顯示的是前一幀的內容,而另一部分卻在顯示下一幀的內容。如下圖所示:
屏幕撕裂(Tear)的問題,早在 PC 游戲時代就被發現, 並不停的在嘗試進行解決。 其中最知名可能也是最古老的解決方案就是 V-Sync 技術。
V-Sync 的原理簡單而直觀:產生屏幕撕裂的原因是顯卡在屏幕刷新時進行了渲染,而 V-Sync 通過同步渲染/刷新時間的方式來解決這個問題。顯示器的刷新頻率為 60 Hz,若此時開啟 V-Sync,將控制顯卡渲染速度在 60 Hz 以內以匹配顯示器刷新頻率。這也意味著,在 V-Sync 的限制下,顯卡顯示性能的極限就限制為 60 Hz 以內。
更多信息:腦洞大開:為啥幀率達到 60 fps 就流暢?