赞
踩
背景介绍
** 涉及技术:vue、electron、ffmpeg、node **
关于录屏和摄像对比了两种方法
- navigator.mediaDevices.enumerateDevices().then(devicelist => {
- // audiooutput 扬声器
- // audioinput 麦克风
- // audiooutput 摄像
- console.log(devicelist)
- }).catch(err => console.log(err))
- navigator.mediaDevices.getUserMedia(MediaStreamConstraints).then(stream => {
- videoElement.srcObject = stream; //
- }, error => console.log(error));
getDisplayMedia
而Electron基于node + chromium构建,在electron需要引入desktopCapturer模块,并在基于该模块使用这个方法
- navigator.mediaDevices.getDisplayMedia({ video: true })
- .then(stream => {
- videoElement.srcObject = stream;
- }, error => console.log(error));
- let herf
- this.recorder = new MediaRecorder(stream);
- this.recorder.ondataavailable = e => {
- herf = e.data;
- download.href = URL.createObjectURL(herf);
- };
- this.recorder.start();
官网安装包下载 ffmpeg.zeranoe.com/builds/
一些基本参数
-formats 输出所有可用格式
-f fmt 指定格式(音频或视频格式)
-i filename 指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头
-y 覆盖已有文件
-t duration 记录时长为t
-fs limit_size 设置文件大小上限
-itsoffset time_off 设置时间偏移(s),该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss* [.xxx]的格式也支持 音 频
-ab bitrate 设置音频码率
-ar freq 设置音频采样率
-ac channels 设置通道 缺省为1 视 频
-b bitrate 设置比特率,缺省200kb/s
-r fps 设置帧频 缺省25
-s size 设置帧大小 格式为WXH 缺省160X128.下面的简写也可以直接使用:
录屏相关命令
- 列出可用的设备包括音频和摄像等等
- ffmpeg -list_devices true -f dshow -i dummy
-
- 录屏,你也可以加入关于视频的一些基本参数来获得你想要的文件
- ffmpeg -f gdigrab -i desktop captrue.mkv -y
cd进入bin文件夹后执行录屏相关命令
关于停止录制,虽然ffmpeg按 Q 可以停止录制,但是我们通过代码调用是看不到cmd命令行的而且他在录制过程中是一直占用这个进程什么命令也无法输入 所以这个地方我只想到一个办法就是强制停止该进程
参考文章
MDN developer.mozilla.org/zh-CN/docs/… developer.mozilla.org/en-US/docs/… developer.mozilla.org/zh-CN/docs/…
W3C w3c.github.io/mediacaptur…
原文 前端使用html5、ffmpeg实现录屏摄像等功能 - 掘金
★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。
见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。