许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  fluent-ffmpeg通过RTSP截图:实时流媒体处理

fluent-ffmpeg通过RTSP截图:实时流媒体处理

阅读数 2
点赞 0
article_banner

记录fluent-ffmpeg的使用方法
(1)截图 直接上代码

get_camera_snapshot(rtsp) {
        return new Promise((resolve, reject) => {
            try {
                let chunks = [];
                let size = 0;
                let proc = ffmpeg(rtsp)
                    .withFrames(1)
                    .inputOptions("-stimeout 5000000")
                    .inputOptions("-rtsp_transport tcp")
                    .noAudio()
                    .format('mjpeg')
                    .on('end', async function () {
                        let data = Buffer.concat(chunks, size);
                        let base64_img = data.toString('base64');
                        resolve({
                            camera_rtsp: rtsp,
                            image_data: base64_img
                        });
                    })
                    .on('error', function (err) {
                        console.log('an error happened on get_camera_snapshot:' + err.message);
                        resolve(false);
                    })
                let ffstream = proc.pipe();
                ffstream.on('data', function (chunk) {
                    chunks.push(chunk);
                    size += chunk.length;
                });
            } catch (error) {
                this.error_log('---get camera snapshot failed---', error);
                resolve(false);
            }
        })
    }

(2)验证rtsp地址能否成功取到流

check_rtsp_stream(rtsp) {
        return new Promise((resolve, reject) => {
            try {
                let is_play = false;
                let command = ffmpeg()
                    .input(rtsp)
                    .inputOptions("-stimeout 5000000")
                    .inputOptions("-rtsp_transport tcp")
                    .noAudio()
                    .videoCodec("copy")
                    .on("start", () => {
                        console.log("begin start...");
                    })
                    .on("codecData", () => {
                        console.log("codec data....");
                        is_play = true;
                        command.kill();
                        resolve(true);
                    })
                    .on("error", (err) => {
                        if (!is_play) {
                            resolve(false);
                        }
                    })
                    .format("avi")
                    .save('./test.avi');
            } catch (error) {
                this.error_log('---check rtsp stream failed---', error);
                resolve(false);
            }
        });
    }

(3)有需要再做补充


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空