視頻縮略圖獲取分析

目前來說末购,存在很多實(shí)現(xiàn)方式。

下面描述其中兩種實(shí)現(xiàn)方式

1.利用MediaMetadataRetriever實(shí)現(xiàn)

利用接口:

/**

* Call this method after setDataSource(). This method finds a

* representative frame close to the given time position if possible,

* and returns it as a bitmap. This is useful for generating a thumbnail

* for an input data source. Call this method if one does not care

* how the frame is found as long as it is close to the given time;

* otherwise, please call {@link #getFrameAtTime(long, int)}.

*

* @param timeUs The time position where the frame will be retrieved.

* When retrieving the frame at the given time position, there is no

* guarentee that the data source has a frame located at the position.

* When this happens, a frame nearby will be returned. If timeUs is

* negative, time position and option will ignored, and any frame

* that the implementation considers as representative may be returned.

*

* @return A Bitmap containing a representative video frame, which

* can be null, if such a frame cannot be retrieved.

*

* @see #getFrameAtTime(long, int)

*/

public Bitmap getFrameAtTime(long timeUs) {

return getFrameAtTime(timeUs,OPTION_CLOSEST_SYNC);

}

其中函數(shù)有選項(xiàng)如下:

/**

* This option is used with {@link #getFrameAtTime(long, int)} to retrieve

* a sync (or key) frame associated with a data source that is located

* closest to (in time) or at the given time.

*

* @see #getFrameAtTime(long, int)

*/

public static final int OPTION_CLOSEST_SYNC =0x02;

獲取時(shí)間點(diǎn)附近關(guān)鍵幀的截圖

/**

* This option is used with {@link #getFrameAtTime(long, int)} to retrieve

* a frame (not necessarily a key frame) associated with a data source that

* is located closest to or at the given time.

*

* @see #getFrameAtTime(long, int)

*/

public static final int OPTION_CLOSEST =0x03;

獲取指定時(shí)間(非關(guān)鍵幀也行)的截圖笋庄,但是概率性獲取為NULL

獲取指定時(shí)間的Bitmap

優(yōu)點(diǎn):

 ≌嚼ぁA.截取關(guān)鍵幀接口耗時(shí)500ms

  B.接口使用簡單

  C.直接返回Bitmap参淫,方便使用

缺點(diǎn):

  A. M3U8等部分格式無法獲取截圖

  B. 選項(xiàng)為關(guān)鍵幀時(shí)只能獲取關(guān)鍵幀的截圖翁授,無法準(zhǔn)確按照時(shí)間獲取there is no?guarentee that the data source has a frame located at the     position.When this happens, a frame nearby will be returned

  C.使用非關(guān)鍵幀截圖選項(xiàng)時(shí)拣播,概率性獲取不到截圖晾咪,截圖時(shí)間需要1~3s


2.利用ffmpeg實(shí)現(xiàn)

直接使用ffmpeg庫收擦,利用命令:

ffmpeg -ss 起始時(shí)間 -i 源文件?-f image2 -r? 頻率 -t 總共處理時(shí)長 %4d.jpg

獲取指定時(shí)間的截圖并保存為本地文件

優(yōu)點(diǎn):

 A.可以按照時(shí)間準(zhǔn)確獲取截圖

 B.功能強(qiáng)大,可以為以后功能打下基礎(chǔ)

? ? C.M3U8格式可以獲取截圖

缺點(diǎn):

? ? A.功能復(fù)雜性提高

? ? B.截圖大概需要1s時(shí)間(耗時(shí)點(diǎn)在ffmpeg中transcode接口大概耗時(shí)800ms)谍倦,主要性能限制實(shí)在網(wǎng)絡(luò)塞赂,本地linux截圖時(shí)間可以達(dá)到幾十ms級(jí)別

 C.需要保存文件進(jìn)行使用,耗費(fèi)時(shí)間

以上是兩種實(shí)現(xiàn)方式的介紹

linux本地ffmpeg測試本地視頻時(shí)昼蛀,大概耗時(shí)在100ms以內(nèi)宴猾,因此可以猜測主要耗時(shí)點(diǎn)實(shí)在網(wǎng)絡(luò)這邊

產(chǎn)品分析:目前可行的快速顯示縮略圖的作法是:服務(wù)端另外放置低幀率的碼流,以便于拉取縮略圖叼旋,由于幀率低仇哆,數(shù)據(jù)量小,處理的視頻數(shù)據(jù)包也少夫植,一般對(duì)于ffmpeg一個(gè)包大概耗時(shí)50ms,一般視頻可能有10多個(gè)包也就500ms以上,所以只有一個(gè)包時(shí)可以很快的處理,這樣子可以達(dá)到快速顯示指定時(shí)間縮略圖的效果讹剔。不依賴服務(wù)器很難實(shí)現(xiàn)快速顯示的效果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末油讯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子延欠,更是在濱河造成了極大的恐慌陌兑,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件由捎,死亡現(xiàn)場離奇詭異兔综,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)狞玛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門软驰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人为居,你說我怎么就攤上這事碌宴。” “怎么了蒙畴?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵贰镣,是天一觀的道長。 經(jīng)常有香客問我膳凝,道長碑隆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任蹬音,我火速辦了婚禮上煤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘著淆。我一直安慰自己劫狠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布永部。 她就那樣靜靜地躺著独泞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苔埋。 梳的紋絲不亂的頭發(fā)上懦砂,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音组橄,去河邊找鬼荞膘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛玉工,可吹牛的內(nèi)容都是我干的羽资。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼遵班,長吁一口氣:“原來是場噩夢啊……” “哼屠升!你這毒婦竟也來了瞄勾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤弥激,失蹤者是張志新(化名)和其女友劉穎进陡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體微服,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趾疚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了以蕴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糙麦。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖丛肮,靈堂內(nèi)的尸體忽然破棺而出赡磅,到底是詐尸還是另有隱情,我是刑警寧澤宝与,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布焚廊,位于F島的核電站,受9級(jí)特大地震影響习劫,放射性物質(zhì)發(fā)生泄漏咆瘟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一诽里、第九天 我趴在偏房一處隱蔽的房頂上張望袒餐。 院中可真熱鬧,春花似錦谤狡、人聲如沸灸眼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焰宣。三九已至,卻和暖如春拒贱,著一層夾襖步出監(jiān)牢的瞬間宛徊,已是汗流浹背佛嬉。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人檩禾。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓场躯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親湾揽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓤逼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,292評(píng)論 0 10
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,446評(píng)論 0 13
  • 超高速音視頻編碼器用法: ffmpeg [options] [[infile options] -i infile...
    吉兇以情遷閱讀 4,583評(píng)論 0 4
  • 喝自己喜歡的茶笼吟,做自己想做的事,愛自己喜愛的人霸旗,莫問是對(duì)是錯(cuò)贷帮,是緣是劫。直到那一天诱告,我們倉促老去撵枢,縱使不能...
    小美好986閱讀 386評(píng)論 0 6
  • 2016年9月1日锄禽,推倒了,重新再來過靴姿。 反正現(xiàn)在在人生的最低谷了沃但,窮,病佛吓, 丑宵晚。沒什么可惜的。 現(xiàn)在改進(jìn)的方法越...
    就叫張士超吧閱讀 298評(píng)論 0 0