- 博客(492)
- 资源 (31)
- 论坛 (1)
- 收藏
- 关注

原创 《Electron实战》系列-总览
欢迎大家阅读 Data-Mining 的《Electron实战》专栏。这里简单的罗列一下专栏的文章目录,一方面方便大家阅读,另一方面可以快速的查找对应的文章。需要说明的是,本专栏会持续更新,不断增加新的文章,同时,也会动态更新原有文章。
2020-11-04 21:00:19
311
2

原创 一款非常简单的基于WebRTC的视频预览播放器(具有贴图、视频特效)
目录前言正文1. 开启摄像头和麦克风2. 增加播控按钮3. 本地预览拍照4. 保存预览照片5. 显示贴图效果(封面)6. 视频预览特效(多种效果)6.1曝光效果6.2悬浮立体效果6.3磨皮效果6.4 反色效果结论前言今天这篇文章给大家介绍一款非常简单的基于WebRTC采集端的视频预览播放器。正文我们需要做的是本地预览的视频播放器,那么首先肯定是要打开摄像头,然后显示播放器控制按钮,最后再增加一些辅助功能,比如拍照、保存照片、贴图...
2020-10-24 00:49:11
2405
25

原创 WebRTC丢包重传大解密
概述WebRTC之所以可以优秀的完成音视频通讯,和它本身的丢包重传机制是密不可分的,今天我们就来看看其中的奥秘。本文以M76版本展开,如果你的工程是基于其他版本开发的,也可以参考。NACK说到丢包重传就不得不提到NACK技术,那么NACK是什么呢。它的全称是Negative Acknowledgment Packet,意思是否定确认包,说到这里我们应该可以联想到ACK(Acknowledgment Packet,确认包)。没错,二者的意思是相反的。ACK表示通知对方我收到了你发给我...
2020-06-18 22:46:27
1335

原创 Electron理论知识 14 - Electron和NW.js的对比分析
类似的技术方案快速开发并部署客户端的现有技术方案中,NW.js可以说和Electron是最相似的了,它们都允许使用Html、Javascript、Node.js技术完成客户端的开发工作。总体来说作为intel的技术方案,NW.js也有不俗的表现,它起步早,最开始的时候有很大的市场占有量。只是目前已经被后起之秀Electron超越了。类似的技术技术方案,Electron为什么能够后发制人呢?一定有对应的原因。结合官网的信息,我们来分析一下二者的区别和优劣。不同的表现1. 应用程序入口NW.
2020-06-15 16:11:24
2085

原创 WebRTC如何通过参数控制编码模式切换(DIsabled模式)
bool WebRtcVideoChannel::AddSendStream(const StreamParams& sp)调用AddSendStream()方法时,首先检验StreamParams参数是否有效,然后判断SSRC是否可用。创建WebRtcVideoSendStream实例的时候,将参数传递给WebRtcVideoSendStream对象。参数sp经过CreateRtp...
2020-04-16 23:09:11
1357

原创 Electron理论知识 13 - Electron和CEF的对比分析
大家都知道CEF和Electron都可以作为跨平台的客户端方案,但最终选型的时候,可能会涉及到CEF和Electron孰优孰劣的问题,今天咱们就看一下二者的对比分析情况,下面是我自己整理的一张图表,大家一起看一下: cef electron 版本更新 平均1~2月更新一次 平均每周更新一次,版...
2020-04-12 01:31:53
3175
4

原创 WebRTC中SDP信息详解
SDP表示Session Description Protocol,Webrtc是通过SDP进行协商,进而创建出符合通话要求的Session。SDP在webrtc应用中扮演着重要的角色,接下来我们通过一个实例来简单介绍一下SDP信息的含义。本例是安卓手机和电脑网页建立的视频通讯会话,具体的SDP信息如下所示:移动端(安卓):"sdp" -> "v=0o=- 76440494516...
2019-06-04 11:29:21
2878

原创 ffmpeg推流到指定的服务器
rtmp流媒体服务器启动后,就可以运行如下命令,使用ffmpeg向服务器推流。搭建服务器可以参考这篇文章(点这里)。ffmpeg -re -stream_loop -1 -i 凉凉-MV.mp4 -vcodec copy -acodec copy -f flv rtmp://localhost:1935/test/live-stream_loop : -1 表示循环推流 -0 表...
2019-04-18 17:34:51
3496
原创 Go判断结构体类型是否为空(nil)
目录前言正文前言使用任何编程语言都会遇到判空的问题,那么Golang如何判空呢?说真的,这种方式我还是很意外的。正文说到Golang的判空机制,确实刷新了我的认知,多少有些丑 ^_^,特别是对于自定义的结构体类型,并不是简单的与 nil 做比较。直接上代码:package main import ( "fmt")type Person struct { Name string Age int}func main() { var one Per.
2021-01-16 11:21:43
60
原创 Electron理论知识 16 - Electron 11.0 高亮发布
目录前言正文安装方式更新变化突出特点重大变化API变更版本计划前言时隔三个月,2020年11月17日,Electron终于推出了新版本——Electron11.0.0发布啦!正文按照三个月一迭代的基本规律,Electron如期推出了11.0.0版本!上个版本10.0.0是八月份推出的,新版本包括升级Chromium到87,升级V8到8.7以及Node.js的升级到12.18.3。同时,增加了对Apple芯片的支持和常规改进措施。安装方式如果你想尝试El
2021-01-15 09:45:54
17
原创 C++面试常见问答题看这三篇文章就够了(中)
构造函数为什么不能声明为虚函数?1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。编译器无法知道对象的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派生类。无法确定。2 虚函数的执行依赖于虚函数表。而虚函数表在构造函数中进行初始化工作,即初始化vptr,让他指向正确的虚函数表。而在构造对象期间,虚函数表还没有被初 始化,将无法进行。 析构函数执行时先调用派生类的析构函数,其次才调用基类的析构函数。析构函数为.
2021-01-13 08:44:28
36
原创 网上rtmp、rtsp、m3u8等常用协议播放地址实例
rtmprtspm3u81. demo1(苹果官方demo)http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8视频内容:2. demo2http://kbs-dokdo.gscdn.com/dokdo_300/_definst_/dokdo_300.stream/playlist.m3u8
2021-01-10 22:03:12
80
2
原创 教你不用扫描二维码查看CSDN年度报告(超简单)
最近经常看到朋友圈有人分享自己2020年在常用平台的年度报告:有的人分享了这一年来听了多少首歌,最喜爱听的歌是什么;有的人分享了这一年来消费了多少钱,最喜欢购买的产品类型是什么;有的人分享了这一年来看了多少篇文章,主要集中在什么领域…很多CSDN的忠实用户因为经常看到别人分享年度报告,也跑过来问:CSDN什么时候出年度报告?我想看看我的技术报告。这不,我们的年度报告在你们的期待下上线啦快来开启你的「CSDN年度回忆录」看看你这一年来,与CSDN的回忆有哪些?—— 摘自《CSDN官方...
2021-01-08 20:58:00
43
2
原创 Go编译器的编译顺序是DFS还是BFS?
Golang编译器main.go:19:2: HTTPHeader redeclared during import "test/v2/util" previous declaration during import "test/v2"
2021-01-08 00:09:13
29
原创 最实用的Chrome插件--CSDN浏览器助手使用体验
友情链接:http://t.csdnimg.cn/1YBE安装方式CSDN浏览器插件的安装方式可以大致分为两种,尽管官网提供了三种版本。本地下载安装如果是下载本地的安装包,就需要我们手动进行安装,操作上会比较复杂一些,具体安装步骤如下:一、下载插件。二、输入 chrome://extensions,打开chrome浏览器插件扩展程序界面。三、打开右上角开发者模式,再把csdn_chrome_plugin_v2.6.1.crx 拖拽到浏览器中完成安装。...
2020-12-30 21:03:05
241
8
原创 FFmpeg保存rtsp流为m3u8文件
目录问题解决方法一、分割ts法方法二、m3u8保存法问题目前遇到一个需求,希望把rtsp的线上视频流保存为m3u8文件,并保存到指定目录。解决方法一、分割ts法最开始想到的方法是先将rtsp视频流保存为ts文件,再进行裁剪分割保存成m3u8文件。保存ts文件的命令:ffmpeg -i "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov" -c copy -y ./m3u8/s..
2020-12-27 11:45:29
1108
2
原创 2020年年度总结(致敬自己)
前言今天是2020年12月22日,这一年马上就要过完了,确实有必要总结一下自己今年的收获。一直想写一些东西,但是总是腾不出时间,借着CSDN这次年度征文,我给了自己一点压力,定了一个“一个亿的小目标”:一定要完成年度总结。正文简单从生活、工作、学习三方面来总结一下2020年的自己。生活从研究生毕业就一直在北京了,当起了传说中的“北漂”。尽管老家在河北,离北京远。但是当“北漂”,我们是认真的。像很多北漂一样,我把自己的另一半也带在了身边。“异地恋”这个词,我始终认为其只存在于学生时..
2020-12-23 00:24:09
2881
26
原创 《FFmpeg实用技巧》系列-总览
前言FFmpeg是一个完整的跨平台解决方案,可用于音视频的录制、转码、流化处理等应用,号称音视频领域的瑞士军刀,小巧高效多能。不仅在工作中可以使用,日常生活中也可以用来处理一些DIY视频。掌握FFmpeg的常规使用方式可以作为自己的一个加分技能。正文FFmpeg[1]-ffplay的正确打开方式(三剑客1)FFmpeg[2]-ffprobe的正确打开方式(三剑客2)FFmpeg[3]-ffmpeg的正确打开方式(三剑客3)FFmpeg[4]-将视频文件转码成FLV格式(FFmpeg转
2020-12-22 22:09:33
75
原创 《WebRTC工作原理精讲》系列-总览
前言欢迎大家订阅Data-Mining 的《WebRTC工作原理精讲》专栏。这里简单的罗列一下专栏的文章目录,一方面方便大家阅读,另一方面让大家对专栏可以有一个整体的认识。正文WebRTC[1]-WebRTC中h264解码过程的源码分析WebRTC[2]-WebRTC丢包重传大解密WebRTC[3]-WebRTC设置simulcast内部逻辑WebRTC[4]-WebRTC中JitterBuffer的运行机制WebRTC[5]-WebRTC拥塞控制之REMB and GCC.
2020-12-22 15:37:58
149
原创 教你如何通过命令行在linux上下载ffmpeg可执行程序
问题从事服务器开发后发现,服务器也少不了调用ffmpeg进程去完成一些任务。在没有图形用户界面的linux服务器机器上,怎么下载ffmpeg可执行程序呢?解决众所周知,在linux服务器上的任何操纵都必须使用命令行。下载ffmpeg可执行程序也一样,接下来就看看具体怎么操作吧。一、进入官网下载页进行如图标记的操作,先选择linux系统,再选择“Linux Static Builds”。二、选择版本进入新页面后,我们看到如下图所示的信息。如果是正式生产环境使用,推荐使用
2020-12-20 09:49:55
1709
10
原创 腾讯位置服务开发入门介绍(五分钟跑通3D地图demo)
专属邀请码:ABDRFLA专属邀请链接:https://lbs.qq.com?lbs_invite=ABDRFLA
2020-12-19 00:05:34
2485
5
原创 如何优雅的监听MediaStream媒体流被释放了
目录问题解决一、属性法二、事件法问题大家知道通过getUserMedia接口可以拿到浏览器对应本地的音视频媒体流,那么我们有什么方法可以监听这路媒体流被释放了或者不可用了呢?解决其实,如果我们想直接在MediaStream类上下手是不可能,因为MediaStream没有专门的监听事件。找遍了文档,好不容易发现一个和end相关的还是一个属性值,而且马上就要废弃了。具体内容可以如下参考链接:https://developer.mozilla.org/en-US/docs.
2020-12-18 00:32:58
125
原创 Post请求:first path segment in URL cannot contain colon 的解决方案
问题使用Golang开发服务器还不是很
2020-12-15 22:39:59
354
原创 吃透nginx 403 forbidden报错
按照网上的教程,我们顺利启动了默认80端口的nginx服务。具体安装教程可以参考:https://liuzhen.blog.csdn.net/article/details/83898155我们想修改成自己的静态服务,但是遇到了“nginx 403 forbidden”的报错。开始了坎坷的一路:...
2020-12-15 22:29:09
155
原创 WebRTC:Failed to set remote offer sdp: Called with SDP without DTLS fingerprint
目录问题解决Java:OC:C++:JS:问题WebRTC音视频通道建立的前提是完成SDP信息的交换,前端时间遇到了一个SDP信息交换失败的问题,非常具有代表性,今天周末特意整理了这篇文档。报错信息:Failed to set remote offer sdp: Called with SDP without DTLS fingerprint解决在进行详细介绍前,先把问题解决前后的SDP信息列一下。之前SDP:v=0o=- 9952557.
2020-12-13 18:37:02
1875
7
原创 SCTP协议在WebRTC中的使用浅析
前言大家都知道WebRTC集各种协议于一身,今天就来谈谈SCTP协议在WebRTC中的使用。正文SCTP的全称是Stream Control Transmission Protocol,它是一种传输协议,在TCP/IP协议栈中所处的位置和TCP、UDP类似,同时具备TCP和UDP的特征。通过上图,我们可以知道SCTP协议基本上集成了TCP和UDP的全部优点,属于介于二者之间的产物。在流量控制、拥塞控制、可靠性传输和包的顺序传输方面都和TCP对齐,在传输机制方面和UDP一致。同时,可靠性和
2020-12-09 08:47:02
90
原创 WebRTC报错:navigator.mediaDevices为undefined
问题基于WebRTC进行JS开发时,有时在浏览器上会遇到navigator.mediaDevices.getUserMedia为undefined的报错。解决报navigator.mediaDevices.getUserMedia为undefined的错误,其实是因为navigator.mediaDevices没有找到。但这也只是表相,其根本原因是浏览器的安全策略,特别是chrome浏览器。一般来说,JS开发有三种访问环境。一、使用file协议打开的本地文件比如,file:///Us
2020-12-06 09:36:01
94
原创 Go解析post请求中的json字符串
type recordConfig struct {StreamPath string `json:"streamPath"`Append bool `json:"append"`Protocol string `json:"protocol"`Url string `json:"url"`}body, err := ioutil.ReadAll(r.Body)defer r.Body.Close()if err != nil {return}var ..
2020-12-06 09:32:12
136
原创 Android报OnUnhandledKeyEventListener接口找不到
OnUnhandledKeyEventListener 接口在Android 9.0才有的。
2020-12-06 09:28:09
197
原创 C++面试常见问答题看这三篇文章就够了(上)
1. 标识符的组成结构标识符一般遵循三个规则:1)由字母、数字和下划线组成。2)开头必须是字母或者下划线。3)不能使用C关键字。2. 动态关联和静态关联的区别通过基类指针调用虚函数的方式是动态关联,通过对象调用虚函数的方式是静态关联。3. 重载(overload)和重写(overried)的区别重载:是指函数名相同,而参数列表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)或返回值不同。重写:是指子类重新定义父类虚函数的方法。和多态真正相关。4. clas.
2020-12-02 23:28:43
124
原创 有没有颠覆你的认知:Main方法一定是入口方法吗?
前言作为一名程序员,一定对main方法非常熟悉,一般我们会认为main方法就是执行程序的入口方法,程序首先执行main方法,真的是这样吗?正文main方法是程序执行的入口方法吗?这里先卖个关子。首先来看一段Go的代码:// Declaration of the main package package main // Importing package import "fmt"// One init() function func init() { fmt.Prin.
2020-12-02 22:30:02
60
2
原创 Go打印cmd.Process.Pid报错
2020/11/27 16:21:15 http: panic serving [::1]:57413: runtime error: invalid memory address or nil pointer dereferencegoroutine 72 [running]:net/http.(*conn).serve.func1(0xc0017228c0) /usr/local/Cellar/go/1.15.4/libexec/src/net/http/server.go:1801...
2020-12-02 22:21:15
55
原创 ijkplayer架构和接口大全
今天分享ijkplayer架构和接口图大全,其中涉及ISurfaceTextureHost、ISurfaceTextureHolder、IjkLibLoader、IMediaFormat、IMediaDataSource、ITrackInfo、IAndroidIO。其实,ijkplayer底层播放器集成了AndroidMediaPlayer、TextureMediaPlayer、IjkExoMediaPlayer三类播放器,当然还要包括自己的IjkMediaPlayer播放器。具体内容请看大图:
2020-12-02 09:54:47
87
原创 Electron常见问题 43 - Cannot run installer: error code: EACCES, error messag e: “spawn EACCES“
[1] [10:00:53.462] [info] Cannot run installer: error code: EACCES, error message: "spawn EACCES", will be executed again using elevate if EACCES"[1] [10:00:53.489] [error] Error: Error: spawn D:\project\app-electron\node_modules\elect...
2020-12-01 09:45:21
87
原创 Go根据流地址判断流媒体协议类型
目录问题解决问题如何根据一个流媒体地址URL判断对应的流媒体协议,比如RTMP、RTSP协议等。解决这里提供一个方法,可以直接拿来用。func getProtocol(url string) (string, error) { if url != "" { index := strings.Index(url, ":") if index > 0 { return strings.ToUpper(url[0:index]), nil } else.
2020-11-29 21:28:54
64
原创 Electron常见问题 42 - 客户端提交到Mac App Store应用市场的基本步骤
目录前言正文一、导出苹果证书二、获取Team ID三、打包签名四、提交应用限制内容前言Electron客户端做出来后,经常会面临提交到各个系统平台的应用市场,如果想要提交到Mac App Store应用市场,都有哪些注意事项呢,就是今天的讨论内容。正文Electron从 v0.34.0 开始就允许封装的应用提交到Mac App Store (MAS),但是有一些相应到限制要求。熟悉苹果套路的同学都知道,想要在苹果平台上开发和发布应用,不论是mac OS电脑端.
2020-11-29 17:31:38
91
原创 Go如何关闭exec可执行程序
一、syscallvar cmd *exec.Cmdsyscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)二、Processvar cmd *exec.Cmdcmd.Process.Kill()
2020-11-27 20:29:19
122
原创 现在不能打开“id=***”,因为它正用于其他用途,例如移动项目、拷贝项目或清倒废纸篓。请在当前任务完成后再试一次。
现在不能打开“id=8715110.17”,因为它正用于其他用途,例如移动项目、拷贝项目或清倒废纸篓。请在当前任务完成后再试一次。
2020-11-25 22:33:57
166
FinalShell-mac.zip
2020-05-13
Android程序反编译工具套装
2020-12-03
electron哈希校验和计算工具(专业版)
2020-11-28
495个必须知道的C语言问题
2014-10-31
checksum-validator(V1.1.6)
2020-07-28
544*960-yuv420p.yuv(视频原始数据文件)
2020-07-10
JDK-1.8-windows-x64.zip
2020-06-05
FinalShell-win.zip
2020-05-13
DXVAChecker_4.2.1_Setup.exe
2020-04-30
depends.rar
2020-04-03
最新的config.guess和config.sub(2017)
2017-11-16
DLL动态库多级调用
2017-05-26
Data-Mining的留言板
发表于 2020-01-02 最后回复 2020-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝