java - Android如何快速獲取視頻每秒縮略圖
問題描述
最近項目想要像新版微信那樣只能分享10s以內(nèi)的視頻,需要對超過10s的視頻進行裁剪和獲取視頻每秒的縮略圖,裁剪壓縮功能都已經(jīng)實現(xiàn),主要是獲取視頻每秒的縮略圖功能,利用ffmpeg獲取比較慢,需要等待很長時間,無法像微信那樣進入視頻編輯頁面就可以直接瀏覽視頻每秒的縮略圖
利用ffmpeg獲取視頻每秒縮略圖(每秒輸出一個圖像)
ffmpeg -i input.flv -vf fps=1 out%d.png
獲取的時間較長,反編譯微信發(fā)現(xiàn)微信里面也是利用ffmpeg,是否有更快速的命令獲取?
也嘗試過使用MediaMetadataRetriever.getFrameAtTime獲取,獲取時間更加漫長
大佬求教!!!
問題解答
回答1:ffmpeg支持同時輸出多種格式,可以一邊錄像一邊輸出截圖,比如 ffmpeg -i /path/to/stream/file -f rawvideo -pix_fmt nv21 -s 640x480 -r 15 video.mp4 -vf fps=1 out%d.png,其中 /path/to/stream/file 是Java方面創(chuàng)建的文件,把從攝像機獲取的視頻數(shù)據(jù)寫進這個文件讓ffmpeg讀取。-f rawvideo -pix_fmt nv21 -s 640x480 -r 15都是配置視頻的參數(shù)。
相關文章:
1. python - beautifulsoup獲取網(wǎng)頁內(nèi)容的問題2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題3. docker鏡像push報錯4. docker - 如何修改運行中容器的配置5. docker-machine添加一個已有的docker主機問題6. Android "1"=="1" 到底是true還是false7. fragment - android webView 返回后怎么禁止重新渲染?8. angular.js - 在終端中用yeoman啟用angular-generator報錯,求解?9. java - 請問在main方法中寫成對象名.屬性()并賦值,與直接參參數(shù)賦值輸錯誤是什么原因?10. docker不顯示端口映射呢?
