久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javaCV開(kāi)發(fā)詳解之收流器實(shí)現(xiàn)

瀏覽:2日期:2022-08-14 08:49:57

本章基于javaCV實(shí)現(xiàn)收流器功能和錄制功能

補(bǔ)充:基于本功能可以實(shí)現(xiàn)遠(yuǎn)程流媒體服務(wù)器實(shí)時(shí)視頻錄制到本地

一、開(kāi)發(fā)所依賴(lài)的包

javacv.jar,javacpp.jar,ffmpeg.jar,ffmpeg-系統(tǒng)平臺(tái).jar,opencv.jar,opencv-系統(tǒng)平臺(tái).jar。 其中ffmpeg-系統(tǒng)平臺(tái).jar,opencv-系統(tǒng)平臺(tái).jar中的系統(tǒng)平臺(tái)根據(jù)開(kāi)發(fā)環(huán)境或者測(cè)試部署環(huán)境自行更改為對(duì)應(yīng)的jar包,比如windows7 64位系統(tǒng)替換為ffmpeg-x86-x64.jar

本章使用windows環(huán)境開(kāi)發(fā),基于javaCV的基礎(chǔ)支撐包以及ffmpeg-3.1.2-1.2.jar、ffmpeg-3.1.2-1.2-windows-x86.jar、ffmpeg-3.1.2-1.2-windows-x86_64.jar;

二、代碼實(shí)現(xiàn)

本功能采用按幀實(shí)現(xiàn)收流器錄制功能

/** * 按幀錄制視頻 * @param inputFile-該地址可以是網(wǎng)絡(luò)直播/錄播地址,也可以是遠(yuǎn)程/本地文件路徑 * @param outputFile * 該地址只能是文件地址,如果使用該方法推送流媒體服務(wù)器會(huì)報(bào)錯(cuò),原因是沒(méi)有設(shè)置編碼格式 * @throws FrameGrabber.Exception * @throws FrameRecorder.Exception * @throws org.bytedeco.javacv.FrameRecorder.Exception */public static void frameRecord(String inputFile, String outputFile, int audioChannel)throws Exception, org.bytedeco.javacv.FrameRecorder.Exception {boolean isStart=true;//該變量建議設(shè)置為全局控制變量,用于控制錄制結(jié)束// 獲取視頻源FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputFile);// 流媒體輸出地址,分辨率(長(zhǎng),高),是否錄制音頻(0:不錄制/1:錄制)FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputFile, 1280, 720, audioChannel);// 開(kāi)始取視頻源recordByFrame(grabber, recorder, isStart);}

private static void recordByFrame(FFmpegFrameGrabber grabber, FFmpegFrameRecorder recorder, Boolean status)throws Exception, org.bytedeco.javacv.FrameRecorder.Exception {try {//建議在線程中使用該方法grabber.start();recorder.start();Frame frame = null;while (status&& (frame = grabber.grabFrame()) != null) {recorder.record(frame);}recorder.stop();grabber.stop();} finally {if (grabber != null) {grabber.stop();}}}3、測(cè)試收流器錄制功能

inputFile設(shè)置為服務(wù)器播放地址,outputFile設(shè)置為本地地址,這里演示.mp4,也可以是flv等其他后綴名

public static void main(String[] args)throws FrameRecorder.Exception, FrameGrabber.Exception, InterruptedException { String inputFile = 'rtsp://admin:admin@192.168.2.236:37779/cam/realmonitor?channel=1&subtype=0'; // Decodes-encodes String outputFile = 'recorde.mp4'; frameRecord(inputFile, outputFile,1);}

以上就是javaCV開(kāi)發(fā)詳解之收流器實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于javaCV收流器的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 怀远县| 中西区| 香格里拉县| 湟源县| 威海市| 潍坊市| 青田县| 许昌市| 岳西县| 通辽市| 弥渡县| 南宁市| 都安| 马尔康县| 黑山县| 弥勒县| 项城市| 堆龙德庆县| 政和县| 双柏县| 定州市| 邵武市| 海南省| 宜良县| 本溪市| 乐陵市| 蕉岭县| 贵州省| 应城市| 丹寨县| 龙州县| 建始县| 林州市| 西乌珠穆沁旗| 若尔盖县| 广德县| 舟山市| 禄丰县| 嘉荫县| 惠水县| 喀喇沁旗|