- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- java如何使用OpenCV從視頻文件中獲取幀
這篇文章將為大家詳細講解有關(guān)java如何使用OpenCV從視頻文件中獲取幀,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
具體內容如下
實(shí)現功能:使用Java獲取mp4、mov、avi等視頻文件中的圖像幀,每秒獲取一幀圖像,并保存 環(huán)境要求:需要安裝Opencv,安裝FFmpeg,下載javacv包 操作系統:本次實(shí)驗使用的Ubuntu系統
實(shí)驗代碼
import com.googlecode.javacv.cpp.opencv_highgui;import org.opencv.core.Core;import org.opencv.core.Mat;import org.opencv.highgui.Highgui;import org.opencv.highgui.VideoCapture;/*** Created by fang on 17-4-6.* 實(shí)現每播放一秒視頻就截取一張圖片保存到本地的操作* 沒(méi)有使用ffmpeg,則只能讀取avi格式視頻* 下載google javcv.jar* sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next* sudo apt-get update* sudo apt-get install ffmpeg* /home/fang/BigDataSoft/opencv-2.4.13/3rdparty/ffmpeg中有opencv_ffmpeg_64.dll文件* 不能解析視頻,提示moov atom not found 是文件有錯*/public class GetFrameFormVideo {public static void main(String[] args) {// System.out.println("Welcome to OpenCV " + Core.VERSION);// System.loadLibrary(Core.NATIVE_LIBRARY_NAME);// Mat m = Mat.eye(3, 3, CvType.CV_8UC1);// System.out.println("m = " + m.dump());//加載本地的OpenCV庫,這樣就可以用它來(lái)調用Java APISystem.loadLibrary(Core.NATIVE_LIBRARY_NAME);run2();}public static void run2() {//讀取視頻文件VideoCapture cap = new VideoCapture("/home/fang/Downloads/src_11.mp4");System.out.println(cap.isOpened());//判斷視頻是否打開(kāi)if (cap.isOpened()) {//總幀數double frameCount = cap.get(opencv_highgui.CV_CAP_PROP_FRAME_COUNT);System.out.println("視頻總幀數:"+frameCount);//幀率double fps = cap.get(opencv_highgui.CV_CAP_PROP_FPS);System.out.println("視頻幀率"+fps);//時(shí)間長(cháng)度double len = frameCount / fps;System.out.println("視頻總時(shí)長(cháng):"+len);Double d_s = new Double(len);System.out.println(d_s.intValue());Mat frame = new Mat();for (int i = 0; i < d_s.intValue(); i++) {//設置視頻的位置(單位:毫秒)cap.set(opencv_highgui.CV_CAP_PROP_POS_MSEC, i * 1000);//讀取下一幀畫(huà)面if (cap.read(frame)) {System.out.println("正在保存");//保存畫(huà)面到本地目錄Highgui.imwrite("/home/fang/images/" + i + ".jpg", frame);}}//關(guān)閉視頻文件cap.release();}}}
出現的錯誤
解析Mp4文件時(shí),出現:moov atom not found以為是ffmpeg沒(méi)有安裝正確,到網(wǎng)上找解決辦法,后來(lái)發(fā)現是自己的視頻文件有問(wèn)題。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站