日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

python 视频播放 拖动_视频画中画效果,拖动进度条可以seek到相应视频帧显示

發布時間:2023/11/27 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 视频播放 拖动_视频画中画效果,拖动进度条可以seek到相应视频帧显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在視頻開發中,我們常常看到這樣的效果,拖動進度條時,或是在進度條上方或是在屏幕中間,顯示拖動進度條位置時刻的某一幀畫面。

這個需求,如果是你,你會如何做?

通常一個需求,不僅要考慮實現,還有考慮一些是否有性能上影響。

下面我想到的4個方案:

1、在拖動過程中,可以通過TextureView來顯示預覽圖,拖動進度條到某個position后,通過textureView.getBitmap()拿到對應的截圖,用于展示。

2、通過MediaMetadataRetriever 只能獲取你指定時間的附近的關鍵幀(Key frame)

MediaMetadataRetriever mmr = new MediaMetadataRetriever();

mmr.setDataSource(renderOutputFilePath);

mmr.getFrameAtTime(1x1000x1000,OPTION_CLOSEST_SYNC );//獲取1秒附近的關鍵幀,注意,只是附近,獲取不到精確位置的圖片。但是用于預覽也夠了

3、通過GLSurfaceView,拖到到某個事件點后,來onDrawFrame,這種方式比較高效。

4、FFmpeg實現,獲取某個位置的picture,github上有封裝好的實現此功能的庫,類似和MediaMetadataRetriever一樣的用法,可以更精準,高效。

鏈接:github.com/wseemann/FF…

原理就是取某個timebase的關鍵幀。然后回調出去展示。

需要注意的是,取幀是個耗時的操作,需要放到子線程中

FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();

mmr.setDataSource(mUri);

//獲取第一幀原尺寸圖片

mmrc.getFrameAtTime();

//獲取指定位置的原尺寸圖片 注意這里傳的timeUs是微秒

mmrc.getFrameAtTime(timeUs, option);

//獲取指定位置指定寬高的縮略圖

mmrc.getScaledFrameAtTime(timeUs, MediaMetadataRetrieverCompat.OPTION_CLOSEST, width, height);

//獲取指定位置指定寬高并且旋轉的縮略圖

mmrc.getScaledFrameAtTime(timeUs, MediaMetadataRetrieverCompat.OPTION_CLOSEST, width, height, rotate);

復制代碼

Demo效果圖:

推薦書籍(亞馬遜、京東、天貓、當當均有售):

內容簡介:近年來,直播、短視頻行業的相關業務發展迅猛,本書主要介紹其中涉及的Android音視頻開發相關技術。本書一共有11章,分別介紹了音視頻基礎知識、MediaPlayer、MediaPlayerService、StagefrightPlayer、NuPlayer、OpenMAX框架、FFmpeg項目、FFmpeg源碼分析及實戰、直播技術、H.264編碼及H.265編碼、視頻格式分析內容。希望本書能幫助讀者系統學習、化繁為簡,在Android音視頻開發的道路上不斷進步。

歡迎關注我的微信公眾號「碼農突圍」,分享Python、Java、大數據、機器學習、人工智能等技術,關注碼農技術提升?職場突圍?思維躍遷,20萬+碼農成長充電第一站,陪有夢想的你一起成長。

總結

以上是生活随笔為你收集整理的python 视频播放 拖动_视频画中画效果,拖动进度条可以seek到相应视频帧显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。