DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

02 2021 档案

摘要:一、 问题描述 由于工作需要在linux下使用ffmpeg实现视频的编码功能,然后就在通过git克隆下了ffmpeg的源码并成功的编译安装,视频解码没有问题,但是视频编码就不行,通过avcodec_open2()打开编码器时,出现以下错误提醒,函数的返回值为-22: ''could not find 阅读全文
posted @ 2021-02-25 11:12 DoubleLi 阅读(1145) 评论(0) 推荐(0) 编辑

摘要:在 2019年第五届 Gopher China 大会上, TutorABC研发总监董海冰进行了题为《 用Golang搭建实时音视频云》的演讲。主要内容如下: 什么是TutorMeet+ 为什么使用Golang WebRTC 问题总结 关于SaaS 以下为演讲实录。 No.1 什么是TutorMeet 阅读全文
posted @ 2021-02-25 11:09 DoubleLi 阅读(1492) 评论(0) 推荐(0) 编辑

摘要:前言 随着网络基础设施的提高,音视频实时通信越来越成为人们日常生活和工作中必不可少的需求。2011年 WebRTC的出现,则更加速了这种需求变为现实的可能性。 熟悉 WebRTC 的同学应该都知道,WebRTC规范只定义了实时通信中客户端的行为,而没有规范服务端(包括哪些信令、数据如何流转)的行为。 阅读全文
posted @ 2021-02-25 10:58 DoubleLi 阅读(1518) 评论(0) 推荐(0) 编辑

摘要:WebRTC是一个非常新的技术,很多用户仍然在初步摸索阶段。有一些用户是不清楚WebRTC的用户场景,不知道WebRTC究竟可以使用在哪些应用场景中。因此,很多用户针对WebRTC产品的选择或者和WebRTC的集成存在很多不同的看法或者对新技术的担心。如果读者对WebRTC技术和应用场景缺乏了解的话 阅读全文
posted @ 2021-02-25 10:27 DoubleLi 阅读(4275) 评论(0) 推荐(0) 编辑

摘要:1 直播基础知识 最原始的直播系统其实并没有想象的那么复杂,无非就是主播端将音视频数据推送到服务器,观众端则从服务器拉取数据播放。 1.1 基本常识 1.1.1 基础概念 推流推流,是直播中的一个术语,意思是将流媒体数据推送到服务器。如何推流,关键就在于使用的推流协议。 拉流拉流,指的是观众端流媒体 阅读全文
posted @ 2021-02-24 17:32 DoubleLi 阅读(1306) 评论(0) 推荐(1) 编辑

摘要:想学更多的WebRTC知识,请关注WebRTC中文社区 在上一篇文章里我们介绍了我们介绍了MCU和SFU的优缺点,webRTC通信方案SFU和MCU的区别? 下面就来探讨下常见的SFU开源解决方案,当然,你也可以自己实现 SFU 流媒体服务器,但自已实现流媒体服务器困难还是蛮多的,它里面至少要涉及到 阅读全文
posted @ 2021-02-24 17:27 DoubleLi 阅读(4547) 评论(0) 推荐(2) 编辑

摘要:1.下载depot_toolshttps://storage.googleapis.com/chrome-infra/depot_tools.zip下载后将其解压到相应文件夹中,并将其路径添加到系统的环境变量中2.自动更新工具管理员权限打开cmd,运行gclient自动更新工具,下载Python、g 阅读全文
posted @ 2021-02-24 16:16 DoubleLi 阅读(512) 评论(0) 推荐(0) 编辑

摘要:这是一个由 声网Agora WebRTC团队提供的 WebRTC 镜像源,你可以使用此版本代替 Google 官方版本,此镜像保持与Chrome正式版同步,目前为M84。 如遇到问题,请在此地址发帖:https://rtcdeveloper.com/t/topic/14914 官方英文文档,请见:h 阅读全文
posted @ 2021-02-24 16:13 DoubleLi 阅读(1297) 评论(0) 推荐(0) 编辑

摘要:PeerConnection Demo简介 在成功编译WebRTC源码之后,可以运行WebRTC自带的例子体验一对一音视频通信效果。使用src/out/Debug 目录下的peerconnection_client.exe 和 peerconnection_server.exe两个文件,最终运行的架 阅读全文
posted @ 2021-02-24 16:11 DoubleLi 阅读(759) 评论(0) 推荐(0) 编辑

摘要:本节内容 在本节课程中, 我们将学习以下内容: 使用WebRTC兼容库: adapter.js, 来抹平各浏览器间的差异。 通过 RTCPeerConnection API 传输流媒体视频。 控制 media 的捕捉和传输。 本节的完整版代码位于 step-02 文件夹中。 RTCPeerConne 阅读全文
posted @ 2021-02-24 16:09 DoubleLi 阅读(990) 评论(0) 推荐(0) 编辑

摘要:0x00 前言 WebRTC 中数据传输都是通过被称为 PeerConnection 的对象来完成的,PeerConnection 在可以传输数据前的建立过程相对于传统的 C/S 模式有略微差别,类似于 P2P 连接的建立过程,并且复用了传统的 STUN/TURN/ICE 架构的 P2P 实现方式。 阅读全文
posted @ 2021-02-24 16:07 DoubleLi 阅读(1075) 评论(0) 推荐(0) 编辑

摘要:如何使用开源SFU构建RTC云服务 大家好,我是来自百度智能云的李永兴,在百度智能云媒体云团队主要负责RTC产品的研发工作。 01 开源SFU的现状与不足 在研发RTC产品的过程中,我们调研了许多优秀的开源WebRTC服务器,例如:Janus、MediaSoup、Licode、SRS4等,这些SFU 阅读全文
posted @ 2021-02-24 15:41 DoubleLi 阅读(1398) 评论(0) 推荐(0) 编辑

摘要:去中心化的RTC网络无需关心其它媒体服务状态,可快速增加地域媒体服务节点部署,与信令服务无耦合。本文来自融云联合创始人,CTO杨攀在LiveVideoStackCon 2019上海的演讲内容,由LiveVideoStack整理而成。在8月23-24日的LiveVideoStackCon2019北京大 阅读全文
posted @ 2021-02-24 15:36 DoubleLi 阅读(584) 评论(0) 推荐(0) 编辑

摘要:1. webrtc浅析 webrtc的前世今生、编译方法、行业应用、最佳实践等技术与产业类的文章在网上卷帙浩繁,重复的内容我不再赘述。对我来讲,webrtc的概念可以有三个角度去解释: (1).一个W3C和IETF制定的标准,约定了Web间实时音视频通信机制,通过该标准可开发基于浏览器的、无插件的w 阅读全文
posted @ 2021-02-24 15:26 DoubleLi 阅读(893) 评论(0) 推荐(0) 编辑

摘要:导读:疫情期间,视频会议等远程办公产品备受青睐,众多互联网玩家切入视频会议市场,加剧市场竞争。但是,产品虽多,能够带来稳定可靠体验的产品却凤毛麟角,他的难点在哪里?视频会议的门槛倒地有多高,又能做到怎样的极致体验?网易智慧企业流媒体服务器天团将会从0到1,和大家分享如何基于WebRTC来搭建一个视频 阅读全文
posted @ 2021-02-24 15:23 DoubleLi 阅读(717) 评论(0) 推荐(0) 编辑

摘要:随着互联网高速发展,以及即将到来的5G时代,WebRTC作为前端互动直播和实时音视频的利器,也是将前端开发者们不可错过的学习领域。如果你现在只是听过而已,那你可能要好好学习一番。 什么是WebRTC? WebRTC 全称是(Web browsers with Real-Time Communicat 阅读全文
posted @ 2021-02-24 15:20 DoubleLi 阅读(2386) 评论(0) 推荐(2) 编辑

摘要:1 WebRTC入门 本章目的: 了解什么WebRTC 掌握WebRTC通话原理 学完该课程的收获 1.1 什么是WebRTC WebRTC(Web Real-Time Communication)是 Google于2010以6829万美元从 Global IP Solutions 公司购买,并于2 阅读全文
posted @ 2021-02-24 15:19 DoubleLi 阅读(646) 评论(0) 推荐(0) 编辑

摘要:如今越来越多的公司投身到 WebRTC 的开发和应用之中,同时也有越来越多的开发者对 WebRTC 技术感兴趣。相对于单向传输的直播和播放器,支持“实时+双向” 音视频通话的 WebRTC 项目显然要庞大和复杂很多很多。由于 WebRTC 官方没有提供服务器的实现,自己从 0 搭建一套开源的 Web 阅读全文
posted @ 2021-02-24 15:17 DoubleLi 阅读(472) 评论(0) 推荐(0) 编辑

摘要:上一篇文章《WebRTC 开发实践:为什么你需要 SFU 服务器》我们了解了 WebRTC SFU 服务器的基本原理和必要性,解决了 What 和 Why,本文则更近一步,探究一下实现 SFU 服务器的关键技术点有哪些 ?重点解决一下 How 1 什么是 SFU ? 首先,我们再看一次 SFU 服务 阅读全文
posted @ 2021-02-24 15:16 DoubleLi 阅读(1090) 评论(1) 推荐(0) 编辑

摘要:当你入门 WebRTC 之后,很快就会接触到一个名词,叫做:SFU,你可能很容易就在网上寻找到很多 SFU 的开源实现,并并兴致勃勃地开始编译、部署和测试这些服务器,但是可曾想过,为啥我们的 WebRTC 应用需要 SFU 服务器 ? 1 WebRTC P2P 通话的网络模型 如图是 WebRTC 阅读全文
posted @ 2021-02-24 15:14 DoubleLi 阅读(401) 评论(0) 推荐(0) 编辑

摘要:《聊聊WebRTC网关服务器》系列文章系由WebRTCon2018中网易云信音视频技术专家的分享内容《从零开始构建音视频网关服务器》整理而成,该系列文章将和大家分享网易NRTC在WebRTC网关项目的自研过程中遇到的一些问题,以及我们最终的解决方法。 大家都知道音视频应用中的QoS策略是非常重要的部 阅读全文
posted @ 2021-02-24 15:12 DoubleLi 阅读(1210) 评论(0) 推荐(0) 编辑

摘要:《聊聊WebRTC网关服务器》系列文章系由WebRTCon2018中网易云信音视频技术专家的分享内容《从零开始构建音视频网关服务器》整理而成,该系列文章将和大家分享网易NRTC在WebRTC网关项目的自研过程中遇到的一些问题,以及我们最终的解决方法。 在分享完端口方案与PeerConnection的 阅读全文
posted @ 2021-02-24 15:11 DoubleLi 阅读(337) 评论(0) 推荐(0) 编辑

摘要:《聊聊WebRTC网关服务器》系列文章系由WebRTCon2018中网易云信音视频技术专家的分享内容《从零开始构建音视频网关服务器》整理而成,该系列文章将和大家分享网易NRTC在WebRTC网关项目的自研过程中遇到的一些问题,以及我们最终的解决方法。 《聊聊WebRTC网关服务器》第二篇文章将和大家 阅读全文
posted @ 2021-02-24 15:10 DoubleLi 阅读(270) 评论(0) 推荐(0) 编辑

摘要:《聊聊WebRTC网关服务器》系列文章系由WebRTCon2018中网易云信音视频技术专家的分享内容《从零开始构建音视频网关服务器》整理而成,该系列文章将和大家分享网易NRTC在WebRTC网关项目的自研过程中遇到的一些问题,以及我们最终的解决方法。 《聊聊WebRTC网关服务器》第一篇文章将和大家 阅读全文
posted @ 2021-02-24 15:08 DoubleLi 阅读(771) 评论(0) 推荐(0) 编辑

摘要:协程库state threads library(以下简称st)是一个基于setjmp/longjmp实现的C语言版用户线程库或协程库(user level thread)。 这里有一个基本的协程例子 http://www.csl.mtu.edu/cs4411.ck/www/NOTES/non-lo 阅读全文
posted @ 2021-02-24 09:58 DoubleLi 阅读(448) 评论(0) 推荐(0) 编辑

摘要:随着低延时流媒体技术的不断进步,在线教育行业持续升温。本文来自七牛云在线教育行业解决方案专家 徐晶在LiveVideoStackCon2018大会中的演讲。在演讲中他阐述了基于WebRTC架构的低延时直播技术突破以及其在教育行业中的实践与思考。本文由LiveVideoStack整理而成。 文 / 徐 阅读全文
posted @ 2021-02-23 17:25 DoubleLi 阅读(262) 评论(0) 推荐(0) 编辑

摘要:WebRTC 处理流程图: WebRTC 终端,负责音视频采集、编码、NAT穿越、音视频数据传输。 Signal服务器,负责信令处理,如加入房间、离开房间、媒体协商消息的传递。 STUN/TURN 服务器,负责获取WebRTC终端在公网的IP地址,以及NAT穿越失败后的数据中转。 主要基础概念: 帧 阅读全文
posted @ 2021-02-23 17:21 DoubleLi 阅读(465) 评论(0) 推荐(0) 编辑

摘要:WebAssembly 技术简介 近几年,WebAssembly 技术非常火,可以说是成为了 JavaScript 一个新的转折点。JavaScript 自 1995 年诞生之日起,其性能问题就被大家诟病。直到 2008 年,很多浏览器加入了即时编译器,JavaScript 也开始引入 JITs,再 阅读全文
posted @ 2021-02-23 17:13 DoubleLi 阅读(962) 评论(0) 推荐(0) 编辑

摘要:作为 H.264 的后继产品,HEVC/H.265 是一种高级视频压缩标准,能够节省 50%的比特率,带来惊人的视觉质量。例如,在 Converter 的 DivX HEVC 配置文件中编码的视频,不仅保持了 DivX Plus 配置文件的高质量,文件还更小。即使在拥挤的网络环境中,HEVC 对于传 阅读全文
posted @ 2021-02-23 17:07 DoubleLi 阅读(1967) 评论(0) 推荐(1) 编辑

摘要:文章目录 相似点 痛点 1. P2P 2、回声消除 3、网页客户端 优点 1. P2P 2、回声消除 3、chrome浏览器免插件访问音视频 难点 1. 设计场景差异 2、部分优秀功能不适用 3、资源投入大 4、webrtc不支持h265编解码 5、对嵌入式不友好 解决方案 结语 相似点 webrt 阅读全文
posted @ 2021-02-23 16:37 DoubleLi 阅读(733) 评论(0) 推荐(0) 编辑

摘要:eb端是无法直接播放rtsp流的,目前常用的解决方案是如jsmpeg、flv.js等。这些方案都是要推送流到服务端,之后才能在web上播放视频,相对比较麻烦。我采用websocket结合mse的方式,实现了一个websocket网关,及其对应的js播放器,在这里做下说明,具体代码参考github上我 阅读全文
posted @ 2021-02-23 16:23 DoubleLi 阅读(1676) 评论(0) 推荐(0) 编辑

摘要:随着直播行业的快速发展,直播带货秒杀和在线教育答题等应用场景对直播延时的要求越来越严苛。今天的技术解码就由费伟老师为大家带来腾讯云在快直播方面的一些分享! 随着直播行业的快速发展,特别是在今年疫情的影响下,各种低延时的直播场景得到了爆发性发展。最典型的应用就是直播带货秒杀和在线教育答题。这些应用场景 阅读全文
posted @ 2021-02-23 16:01 DoubleLi 阅读(2034) 评论(0) 推荐(0) 编辑

摘要:问题背景: 无论是实时视频监控还是直播点播等应用场景,最起码的一个操作就是播放视频。其中最基本的思路就是利用OS的API在PC开发桌面应用、在移动端开发Native App,目前这种技术已经成熟,大厂小厂都是这么做的,但是缺点也很明显:开发比较费时费力,需要IOS开发一遍再去Android开发一遍。 阅读全文
posted @ 2021-02-23 15:45 DoubleLi 阅读(309) 评论(0) 推荐(0) 编辑

摘要:H5视频播放器内核的开发对于前端工程师来说算是一个比较少涉足的领域,恰好工作中有所研究,分享出来给感兴趣的同学。简单的说,播放器内核的功能类似于一个video标签,它负责视频资源的解封装、解码和播放。 视频播放器架构 图1 视频播放器架构 一个典型的现代播放器可以分为三个部分:UI、多媒体引擎和解码 阅读全文
posted @ 2021-02-23 14:23 DoubleLi 阅读(2280) 评论(0) 推荐(0) 编辑

摘要:FMP4概念 fmp4,是适应于现代浏览器的一种流媒体格式。和mp4格式不同的是,以往的mp4格式化也分为header信息和payload信息,一个大的mp4就会有一个很大的头信息,不适合与现在的网络环境。所以新的fmp4格式就出现了,fmp4格式有一个带了metadata的头片段,及后面一序列的f 阅读全文
posted @ 2021-02-23 14:21 DoubleLi 阅读(2205) 评论(0) 推荐(0) 编辑

摘要:web端是无法直接播放rtsp流的,目前常用的解决方案是如jsmpeg、flv.js等。这些方案都是要推送流到服务端,之后才能在web上播放视频,相对比较麻烦。我采用websocket结合mse的方式,实现了一个websocket网关,及其对应的js播放器,在这里做下说明,具体代码参考github上 阅读全文
posted @ 2021-02-23 10:23 DoubleLi 阅读(681) 评论(0) 推荐(0) 编辑

摘要:FargmentMP4是一种特殊的MP4,这边他的特点及格式,不再详细说明 ,网上资料不少可以进行参考。 这边说下基于FFMPEG封装aac及h264为FargmentMP4的步骤: 关键代码: 1、创建两个输入对象和一个输出对象并打开。 AVFormatContext *ifmt_ctx_v = 阅读全文
posted @ 2021-02-23 10:18 DoubleLi 阅读(1027) 评论(0) 推荐(0) 编辑

摘要:当前为了满足比较火热的移动 Web 端直播需求, 一系列的 HTML5 直播技术迅速的发展了起来. 常见的可用于 HTML5 的直播技术有 HLS, WebSocket 与 WebRTC. 今天我要向大家介绍一下 WebSocket 与 MSE 相关的内容, 并在最后通过一个实际的例子, 来展示其具 阅读全文
posted @ 2021-02-23 10:14 DoubleLi 阅读(1948) 评论(0) 推荐(0) 编辑

摘要:有没有那么一种可能,在前端页面处理音视频?例如用户选择一个视频,然后支持他设置视频的任意一帧作为封面,就不用把整一个视频上传到后端处理了。经过笔者的一番摸索,基本实现了这个功能,一个完整的demo:ffmpeg wasm截取视频帧功能: 支持mp4/mov/mkv/avi等文件。 基本的思想是这样的 阅读全文
posted @ 2021-02-22 15:54 DoubleLi 阅读(790) 评论(0) 推荐(0) 编辑

摘要:ffmpeg 编译成 wasm 供浏览器使用 浏览器上传视频后无缝对接 ffmpeg 能力 Emscripten Emscripten 是一个 LLVM 到 JS 的编译器,编译出 JS 文件供浏览器使用,也可以生成 WASM 提供更好的性能体验。 环境准备 cmake、git、python2.7 阅读全文
posted @ 2021-02-22 14:18 DoubleLi 阅读(3167) 评论(0) 推荐(0) 编辑

摘要:GlusterFS分布式存储高可用方案设计 1、搭建GlusterFS复制卷(使用至少2个存储节点) 2、配置Keepalived管理GlusterFS主从存储节点 3、配置Keepalived浮动IP(VIP)对外提供存储服务 4、实现存储高可用(即使用两台GlusterFS服务器提供双节点复制卷 阅读全文
posted @ 2021-02-21 15:50 DoubleLi 阅读(768) 评论(0) 推荐(0) 编辑

摘要:一、主从不同步解决办法 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。 show master status; 也正常。 mysql> show master status; + + + + + | File | Position | 阅读全文
posted @ 2021-02-19 17:07 DoubleLi 阅读(1297) 评论(0) 推荐(0) 编辑

摘要:Mysql主从不同步解决方法 主从同步配置好后,运行了一时间,出现了不同步现象,用命令检查,看到从上报下面错误: msyq > show slave status \G; Last_Errno: 1062 Last_Error: Error 'Duplicate entry '149' for ke 阅读全文
posted @ 2021-02-19 17:02 DoubleLi 阅读(973) 评论(0) 推荐(0) 编辑

摘要:关注“Java后端技术全栈” 回复“面试”获取最新资料 回复“加群”邀您进技术交流群 一、MySQL的数据库主从复制原理 MySQL主从复制实际上基于二进制日志,原理可以用一张图来表示: 分为四步走: 1. 主库对所有DDL和DML产生的日志写进binlog; 2. 主库生成一个 log dump 阅读全文
posted @ 2021-02-19 16:59 DoubleLi 阅读(212) 评论(0) 推荐(0) 编辑

摘要:发布于 2020-04-23 MySQL主从复制架构 目前MySQL支持两种复制类型: 1.传统方式: 基于主库的bin-log将日志事件和事件位置复制到从库,从库再加以应用来达到主从同步的目的。 2.Gtid方式(MySQL>=5.7推荐使用): 基于GTID的复制中,从库会告知主库已经执行的事务 阅读全文
posted @ 2021-02-19 16:57 DoubleLi 阅读(895) 评论(0) 推荐(0) 编辑

摘要:mysql主从复制,经常会遇到错误而导致slave端复制中断,这个时候一般就需要人工干预,跳过错误才能继续。 跳过错误有两种方式: 1.跳过指定数量的事务 mysql>slave stop; mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务 my 阅读全文
posted @ 2021-02-19 15:58 DoubleLi 阅读(1647) 评论(0) 推荐(0) 编辑

摘要:[client] #socket方式运行时的sock文件位置socket=/自定义/mysql.sock [mysqld_safe] #错误日志位置log-error=/自定义/mysqld.log #进程id文件pid-file=/自定义/mysqld.pid [mysql] #以socket方式 阅读全文
posted @ 2021-02-19 15:46 DoubleLi 阅读(1024) 评论(0) 推荐(0) 编辑

摘要:MySQL: 5.7.25-log MHA主从集群 开启GTID同步 正常运行时: 1.主从环境中主库创建事件event会自动同步到备库; 2.主event状态ENABLED,备库中状态为 SLAVESIDE_DISABLED; 3.event触发的所有操作均会记录binlog,备库通过binlog 阅读全文
posted @ 2021-02-19 15:42 DoubleLi 阅读(208) 评论(0) 推荐(1) 编辑

摘要:同步部分数据有两个思路,1.master只发送需要的;2.slave只接收想要的。 binlog-do-db 二进制日志记录的数据库(多数据库用逗号,隔开) binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开) 举例说明: 1)binlog-do-db=YYY 需要同步 阅读全文
posted @ 2021-02-19 15:38 DoubleLi 阅读(462) 评论(0) 推荐(0) 编辑

摘要:Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。 首先确保主从服务器上的Mysql版本相同。 一、安装部署mysql 1、 安装服务器端:yum install mysql-server yum install m 阅读全文
posted @ 2021-02-19 15:33 DoubleLi 阅读(1947) 评论(1) 推荐(0) 编辑

摘要:官网 https://mega.nz/sync 优点 提供跨平台多客户端。 安全性强,传输、服务端都加密。只在本地解密数据,除了你自己没人可以解密你的数据。 国外网盘,相对不怕泄漏隐私。 不限速,同步速度快。 软件功能、界面比坚果云都好多了,毕竟是开放源码的。 Linux客户端使用 CentOS提供 阅读全文
posted @ 2021-02-19 10:32 DoubleLi 阅读(308) 评论(0) 推荐(0) 编辑

摘要:Web视频播放一杆到底 不管是用户还是开发者,我们处于这个风口中。本文将带你探索浏览器视频播放的奥秘。 作者:ES2049 Studio来源:Segmentfault|2021-01-12 10:58 收藏 分享 前言 毫无疑问,现在是短视频、直播的时代。视频内容逐渐代替图文形式成为网友们获取新鲜事 阅读全文
posted @ 2021-02-11 12:15 DoubleLi 阅读(1270) 评论(0) 推荐(1) 编辑

摘要:媒体文件格式分析之FMP4 MP4 中最基本的单元就是Box,它内部是通过一个一个独立的Box拼接而成的。所以,这里,我们先从 Box 的讲解开始,每个 Box 是由 Header 和 Data 组成的,FullBox 是 Box 的扩展,Box 结构的基础上在 Header 中增加 8bits v 阅读全文
posted @ 2021-02-11 12:02 DoubleLi 阅读(2572) 评论(0) 推荐(0) 编辑

摘要:作为开发者,使用 FFmpeg 主要分两部分:命令行工具和接口使用,本文讲解如何在 macOS 上交叉编译 FFmpeg,再将其集成到 Xcode 中,再初步介绍 FFmpeg 接口使用时会用到的常用结构,最后实际编写音视频文件转封装的代码。 交叉编译和集成 利用如下脚本交叉编译 ffmpeg 2. 阅读全文
posted @ 2021-02-07 15:05 DoubleLi 阅读(952) 评论(0) 推荐(0) 编辑

摘要:FMP4概念 fmp4,是适应于现代浏览器的一种流媒体格式。 和mp4格式不同的是,以往的mp4格式化也分为header信息和payload信息,一个大的mp4就会有一个很大的头信息,不适合与现在的网络环境。所以新的fmp4格式就出现了,fmp4格式有一个带了metadata的头片段,及后面一序列的 阅读全文
posted @ 2021-02-07 14:49 DoubleLi 阅读(891) 评论(0) 推荐(0) 编辑

摘要:文章目录 1、使用windbg中的umdh检查 1.1、 工具下载 1.2、环境配置 1.3、利用工具umdh(user-mode dump heap)分析 1.4、利用umdh创建heap快照 2、使用windbg中的htrace检查 2.1、准备工作 2.2、快照 2.3 、执行操作,比较差异 阅读全文
posted @ 2021-02-06 15:48 DoubleLi 阅读(1298) 评论(0) 推荐(0) 编辑

摘要:想要知道程序从开始到运行一段时间内存的使用情况,可以使用gflags工具。 1. windbg同级目录下有gflags.exe,点开后进行如下设置。 2. 在gflags.exe的目录下直接打开命令窗口 输入gflags /i myTest.exe +ust set _NT_SYMBOL_PATH= 阅读全文
posted @ 2021-02-06 15:44 DoubleLi 阅读(1043) 评论(0) 推荐(1) 编辑

摘要:内存泄漏 1、方法一:批处理 umdh 原理:借助winDBG 工具,先设置好pdb路径,然后加入进程,运行进程,抓取第一次快照(Snap1.log );运行一段时间(让内存增长),然后执行内存泄漏检测分析.bat,抓取第二次快照(Snap2.log)。最终,比较两次快照结果存到result.txt 阅读全文
posted @ 2021-02-06 15:41 DoubleLi 阅读(2981) 评论(0) 推荐(0) 编辑

摘要:在大型项目中,内存泄露并不会立即crash,会使系统性能不断下降,甚至因内存耗尽而崩溃。排查起来难度也比较大,申请内存的地方很多。这里介绍的这种方法可以迅速定位问题。 下面的程序crash64,每秒会申请1M的内存,而一直都没有释放,产生内存泄露 windbg 中有个小工具 UMDH可以追踪系统每个 阅读全文
posted @ 2021-02-06 15:37 DoubleLi 阅读(446) 评论(0) 推荐(0) 编辑

摘要:本篇文章参考链接: http://bbs.pediy.com/showthread.php?t=107893 ,作者:dnapcex。 windbg安装文件链接:下载地址 最近在查找内存泄露时又偶遇windbg,依然碰到当时纠结的符号表问题。之前公司不能上外网,符号表问题实在不好弄,当时驱动算是做完 阅读全文
posted @ 2021-02-06 15:27 DoubleLi 阅读(153) 评论(0) 推荐(0) 编辑

摘要:在使用WPA分析性能的时候,发现一款轻量级的内存泄露分析工具UMDH(User-Mode Dump Heap),现在研究实践如何使用该工具进行内存泄露分析 Umdh 是 Debugging Tools for Windows 里面的一个工具,主要通过分析比较进程的Heap Stack trace信息 阅读全文
posted @ 2021-02-06 15:24 DoubleLi 阅读(659) 评论(0) 推荐(0) 编辑

摘要:A.利用工具umdh(user-mode dump heap)分析:此处以程序MemoryLeak.exe为例子 1、开启cmd 键入要定位内存泄露的程序gflags.exe /i memroyleak.exe +ust,如图成功后,开启memoryleak.exe程序。 2、利用UMDH创建Hea 阅读全文
posted @ 2021-02-06 15:20 DoubleLi 阅读(394) 评论(0) 推荐(0) 编辑

摘要:缘起: 作为C++程序员,检测内存泄漏是非常痛苦的事情。尤其是看着程序的内存在一直增长,你却无能为力。此时,windbg可以用来检测内存泄漏。 配置windbg: 配置symbol文件路径: “SRV*d:\symbols*http://msdl.microsoft.com/download/sym 阅读全文
posted @ 2021-02-06 15:13 DoubleLi 阅读(1283) 评论(0) 推荐(0) 编辑

摘要:一、简介 生产环境偶尔会出现一些异常问题,WinDbg 或 GDB 就是解决此类问题的利器。调试工具 WinDbg 如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具,Dump 文件类似于飞机的黑匣子,记录着生产环境程序运行的状态。 本文主要介绍了调试工具 WinDbg 和抓包工具 ProcDu 阅读全文
posted @ 2021-02-06 14:53 DoubleLi 阅读(347) 评论(0) 推荐(0) 编辑

摘要:1. 如何生成dump文件? 原理:通过SetUnhandledExceptionFilter设置捕获dump的入口,然后通过MiniDumpWriteDump生成dump文件; SetUnhandledExceptionFilter:https://msdn.microsoft.com/query 阅读全文
posted @ 2021-02-06 14:48 DoubleLi 阅读(423) 评论(0) 推荐(0) 编辑

摘要:UnhandledExceptionFilter 函数调用时没有异常处理程序定义来处理引发的异常。 函数通常将异常传递达 Ntdll.dll 文件这将捕捉并试图处理它。 在该进程的内存快照存在某些情况下,您可以看到到一个线程持有锁点的线程调用的 UnhandledExceptionFilter 函数 阅读全文
posted @ 2021-02-06 14:41 DoubleLi 阅读(941) 评论(0) 推荐(0) 编辑

摘要:崩溃捕捉的dump没有提供堆栈的问题 前两天客户现场出现了崩溃,但是程序捕捉生成的dump文件大小为0kb,没有办法只能通过任务管理器创建转储文件进行分析。 输入 !analyze -v命令输出如下: 通过此堆栈信息看不出任何崩溃的具体原因。再输入~*kv命令查看所有线程的堆栈:可以看到崩溃的线程, 阅读全文
posted @ 2021-02-06 14:39 DoubleLi 阅读(477) 评论(0) 推荐(0) 编辑

摘要:c++内存泄漏问题定位 内存泄漏指的是直接操作内存分配构造函数(例如new,malloc,HeapAlloc)来获得堆内存后,但是没有释放而导致的泄漏问题。我们的行情服务器是一个长期运行在客户服务器上的应用程序,如果存在内存泄漏,那么当内存增长到某个值时,会极大地影响当前机器的性能,直至影响我们的行 阅读全文
posted @ 2021-02-06 14:31 DoubleLi 阅读(634) 评论(0) 推荐(0) 编辑

摘要:c++句柄泄漏问题定位 Windows内核中定义了一组操作系统特有的对象类型,包括文件对象,线程对象,Event对象等。要使用某种对象类型,必须首先生成这种对象类型的一个实例,以事件对象为例,调用CreateEvent可以创建或者打开一个现有的Event,在该函数内部,它调用了内核接口来创建一个事件 阅读全文
posted @ 2021-02-06 14:22 DoubleLi 阅读(487) 评论(0) 推荐(0) 编辑

摘要:C++内存越界导致的std::map异常 前段时间在定位一个程序崩溃的问题,虽然有dump文件,能够看到出问题的具体代码行数,问题都出在同一个map上。 dump1显示map下标插入数据时异常。 dump2显示调用map的clear函数异常。 刚开始看到这两个dump,以为是多线程导致的访问冲突,看 阅读全文
posted @ 2021-02-06 14:17 DoubleLi 阅读(894) 评论(0) 推荐(0) 编辑

摘要:C++死锁问题定位与分析 一,测试代码 二,等待链 三,死锁的定位和分析 C++程序异常一般有两种表现形式:程序崩溃和程序无响应。程序崩溃主要是由指针,数组越界等原因引起,这种情况可以直接通过在程序中加入Dump捕捉逻辑,分析dump文件,定位出崩溃的代码。程序无响应主要是由死循环和死锁两个原因造成 阅读全文
posted @ 2021-02-06 14:15 DoubleLi 阅读(1379) 评论(0) 推荐(0) 编辑

摘要:C++ delete指针后依然可以访问的问题 一,第一个dump分析 二,第二个DUMP分析 三,VC6.0和VS2015下delete指针验证 四,结论 这两天在定位一个BUG:我们的程序运行过程中,点击停止运行,程序偶现无响应和崩溃,此时无查询操作(因为当并发查询的时候,有出现其他bug,特意确 阅读全文
posted @ 2021-02-06 14:14 DoubleLi 阅读(501) 评论(0) 推荐(0) 编辑

摘要:Windows下c++程序崩溃问题定位 一,WinDbg调试 二,地址偏移计算验证 三,通过map文件定位程序崩溃代码行数 Windows下c++程序崩溃问题定位主要依赖于代码编译过程中生成的调试信息文件,比如.map和.pdb。 本文以前几天项目中出现的崩溃问题当做具体案例来分析。具体原因是配置了 阅读全文
posted @ 2021-02-06 14:12 DoubleLi 阅读(2226) 评论(0) 推荐(0) 编辑

摘要:Windbg调试一)minidump崩溃捕捉 一,系统的异常处理顺序 二,SetUnhandleExceptionFilter函数 三,Minidump 四,代码演示 在日常工作中,本地c++代码发生崩溃时,编译器都可以帮我们捕捉到并且定位到具体的代码,这是因为编译器接收到了操作系统发送过来的程序异 阅读全文
posted @ 2021-02-06 14:10 DoubleLi 阅读(968) 评论(0) 推荐(0) 编辑

摘要:设置符号路径 利用环境变量设置符号路径 在WinDbg启动时,会根据 _NT_ALT_SYMBOL_PATH 和 _NT_SYMBOL_PATH 的值设置符号路径: > set _NT_ALT_SYMBOL_PATH="D:\symbols" > windbg notepad.exe 利用启动参数设 阅读全文
posted @ 2021-02-06 11:54 DoubleLi 阅读(2280) 评论(0) 推荐(0) 编辑

摘要:WinDbg可以通过加载Symbol文件(*.pdb),即时的调试程序。WinDbg如何找到相应的符号文件呢?WinDbg首先在.exe或者.dll所在目录下寻找同名的.pdb文件。如果找不到,WinDbg在Symbol File Path中查找。Symbol File Path可以通过多种方式设置 阅读全文
posted @ 2021-02-06 11:51 DoubleLi 阅读(2581) 评论(0) 推荐(0) 编辑

摘要:Windbg符号与源码 《第二篇》 符号文件是一种辅助数据,它包含了对应用程序代码的一些标注信息,这些信息在调试过程中非常有用。如果没有辅助数据,那么能获得的信息就只有应用程序的二进制文件。二进制文件很难调试,因为无法看到代码中的函数名、数据结构名等。这正是符号文件能显示的。符号文件的扩展名通常是p 阅读全文
posted @ 2021-02-06 11:32 DoubleLi 阅读(251) 评论(0) 推荐(0) 编辑

摘要:我们经常用的windbg symbol path设置是: File -> Symbol File Path 但是自从OS升级到Win10以后,发现这个设置只能单次有效,关闭windbg后再打开,又需要重新设置,对于Windows symbol很是麻烦,查了下MSDN,原来还可以通过环境变量进行设置, 阅读全文
posted @ 2021-02-06 11:22 DoubleLi 阅读(969) 评论(0) 推荐(0) 编辑

摘要:一、Windbg Windbg是微软开发的一套调试器中的组件。WinDBG属于内核级别调试器,不仅可以用来调试应用程序,也可以调试内核级的代码,如驱动程序。Windbg由于其丰富的命令和对Windows的原生支持还有其易用性,是其他其他调试器望尘莫及的。如果安装了Windows SDK,一般会带有w 阅读全文
posted @ 2021-02-06 10:20 DoubleLi 阅读(3263) 评论(0) 推荐(0) 编辑

摘要:前面4篇文章提到的方法,已经可以解决我们的大部分内存泄露问题了,但是这些方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下。实际上很多时候,我们的程序会用到第三方没有源代码的模块,有些情况下模块有内存泄露,但是没有证据,又或者VC++ MFC退出提示有内存泄漏,但是信息不足, 阅读全文
posted @ 2021-02-06 10:10 DoubleLi 阅读(398) 评论(0) 推荐(0) 编辑

摘要:安装与配置 windbg 的 symbol (符号) 本篇是新手自己写的一点心得.建议新手看看.同时希望前辈多多指教. 写这篇的动机:在网上找了一上午的 windbg 配置符号教程.楞是没找到详细的,都讲的太模糊而且互相抄袭.不适合新手看.终于靠自己的努力弄懂了一点,呵呵写出来新手们分享. 安装与配 阅读全文
posted @ 2021-02-06 09:53 DoubleLi 阅读(201) 评论(0) 推荐(0) 编辑

摘要:文章目录 一、符号文件的用处 二、下载符号文件(微软官方符号服务器无法访问) 三、加载用户层的符号文件 参考资料 一、符号文件的用处 符号文件即PBD(Program Debug DataBase)文件,他的用处是让调试器能够将地址与函数名对应,例如:WinDBG中输入命令u NtClose就能定位 阅读全文
posted @ 2021-02-06 09:51 DoubleLi 阅读(1115) 评论(0) 推荐(0) 编辑

摘要:今天本来想跟着调个漏洞,结果折腾windbg就折腾了半天,仅做个记录。 1. 设置环境变量 _NT_SYMBOL_PATH srv*c:\symbols*http://msdl.microsoft.com/download/symbols 2. FQ 发现不FQ好像下载不了。 3. 发现有时候需要某 阅读全文
posted @ 2021-02-06 09:45 DoubleLi 阅读(803) 评论(0) 推荐(0) 编辑

摘要:1. 首先设置符号表路径 在系统环境变量添加一个 _NT_SYMBOL_PATH 值为srv*d:\symbols*http://msdl.microsoft.com/download/symbols 这样IDA, windbg, vs 都会自动到该目录加载符号表. 对于这个路径d:\symbols 阅读全文
posted @ 2021-02-06 09:42 DoubleLi 阅读(497) 评论(0) 推荐(0) 编辑

摘要:新建一个环境变量_NT_SYMBOL_PATH 值为: SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols WinDBG无法加载符号表是很痛苦的事情,明明符号表的路径已经加载进去了,可是还是无法加断点,下面直接进入主题: 符号表无法 阅读全文
posted @ 2021-02-05 17:39 DoubleLi 阅读(1169) 评论(0) 推荐(0) 编辑

摘要:1.找不到符号文件 抓取完Dump后,打开WinDbg,Ctrl+D找到刚才抓取的Dump文件,报如下异常: *** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll - ntdll!Zw 阅读全文
posted @ 2021-02-03 17:34 DoubleLi 阅读(617) 评论(0) 推荐(0) 编辑

摘要:文章目录 1、使用windbg中的umdh检查 1.1、 工具下载 1.2、环境配置 1.3、利用工具umdh(user-mode dump heap)分析 1.4、利用umdh创建heap快照 2、使用windbg中的htrace检查 2.1、准备工作 2.2、快照 2.3 、执行操作,比较差异 阅读全文
posted @ 2021-02-02 19:47 DoubleLi 阅读(518) 评论(0) 推荐(0) 编辑

摘要:缘起: 作为C++程序员,检测内存泄漏是非常痛苦的事情。尤其是看着程序的内存在一直增长,你却无能为力。此时,windbg可以用来检测内存泄漏。 配置windbg: 配置symbol文件路径: “SRV*d:\symbols*http://msdl.microsoft.com/download/sym 阅读全文
posted @ 2021-02-02 19:42 DoubleLi 阅读(587) 评论(0) 推荐(0) 编辑

摘要:Windbg,这是微软设计的一款Windows调试器,体积小巧、开源免费,它可以调试软件进程,还可以帮助修复电脑蓝屏问题。如果你是初次使用WinDbg,需要对软件进行配置,详情可以参考文章说明。 Win10系统如何正确安装配置WinDbg? 下载Windbg,根据提示进行安装,启动软件,界面如图, 阅读全文
posted @ 2021-02-02 19:38 DoubleLi 阅读(2470) 评论(0) 推荐(0) 编辑

摘要:首先参考该文:http://www.cnblogs.com/happyhippy/archive/2007/04/08/710933.html 下载具体的symbols文件,我用的是xpsp2的188M的那个文件,然后按照该文的设置进行,如果你进入windbg界面再命令行下输入 .sympath 没 阅读全文
posted @ 2021-02-02 19:26 DoubleLi 阅读(2859) 评论(0) 推荐(0) 编辑

摘要:from:https://www.cnblogs.com/gaochundong/p/windbg_cheat_sheet.html 系列博文 《WinDbg 命令三部曲:(一)WinDbg 命令手册》 《WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册》 《WinDbg 命令三部 阅读全文
posted @ 2021-02-02 17:44 DoubleLi 阅读(288) 评论(0) 推荐(0) 编辑

摘要:#调试命令窗口 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #使用gflags.exe工具(在windbg所在目录下),让某个进程启动时,拉取windbg进行调试 如下截图:当名称为captcomm.exe的进程启动 阅读全文
posted @ 2021-02-02 17:41 DoubleLi 阅读(1609) 评论(0) 推荐(0) 编辑

摘要:<一>下载最新版的WinDbg工具,有两种方式,假设我的电脑系统为Win 10,Windows 10必须周年更新版本哦,那么可以去这个官网下载。 有两种版本:第一种版本是在微软应用商店下载的WinDbg Preview版本,这个版本UI更加好看,如果你有需求可以直接在这个网站下载,也可以下载exe版 阅读全文
posted @ 2021-02-02 17:25 DoubleLi 阅读(2607) 评论(0) 推荐(0) 编辑

摘要:内存泄露查找方法 C++程序员经常不注意内存使用的关闭,虽然此类问题不会导致程序逻辑问题,但随着时间的推移,内存占用量越来越多,最终导致程序崩掉。对服务端的程序,内存泄漏经常是致命的。 对于已经存在内存泄露的程序,可能Windbg查找内存泄露的代码。下面介绍如果通过Windbg查找内存泄露。 Win 阅读全文
posted @ 2021-02-02 17:19 DoubleLi 阅读(689) 评论(0) 推荐(0) 编辑

摘要:在大型项目中,内存泄露并不会立即crash,会使系统性能不断下降,甚至因内存耗尽而崩溃。排查起来难度也比较大,申请内存的地方很多。这里介绍的这种方法可以迅速定位问题。 下面的程序crash64,每秒会申请1M的内存,而一直都没有释放,产生内存泄露 windbg 中有个小工具 UMDH可以追踪系统每个 阅读全文
posted @ 2021-02-02 16:39 DoubleLi 阅读(343) 评论(0) 推荐(0) 编辑

摘要:Windbg的一些简单使用命令 一、崩溃 1、 输入.ecxr;kbn得到崩溃的堆栈 其中源代码如下 2、 查看堆栈和源代码,发现第0帧导致崩溃,代码也是本地代码 输入.frame 0,切到第0帧如下 3、 输入 dv 查看当前帧的一些变量信息 发现变量p =0x00000000 二、句柄泄漏 1、 阅读全文
posted @ 2021-02-02 16:36 DoubleLi 阅读(328) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示