自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (14)
  • 收藏
  • 关注

原创 2021上海LVS音视频大会观感和思考

​问题背景:其实音视频这个领域非常的窄,很长一段时间都没有属于自己专一和垂直的社区。最近几年,随着国外的FFmpeg和WebRTC的普及,国内SRS和LVS在这个领域也变得越来越活跃。从2017年LVS组织第一次线下大型活动到现在已经五个年头了,感谢LVS提供的平台和机会,让大家每年有一两次线下面对面交流机会,也感谢这个时代对音视频技术的持续推动。我大概第三次参加LVS,每次参加的体验都有所变化,下面是一篇杂文写写在现场的所见所得,仅供参考。现场见闻:谈谈参展商和讲师本次大会,腾讯,阿里

2021-04-19 19:19:19 1357

原创 新型开源语音编码器Lyra最新进展

​问题背景:Google最近开源了一种语音压缩的新型超低比特率编解码器,这种编码器的最大特点是基于机器学习原理,能够使用最少的数据来重建语音,这是和传统AAC和Opus编码原理的本质区别,这种基于机器学习的编码思想也逐渐应用的图像编码和视频编码上。其次Lyra牛逼的地方在于不仅实现了以每秒3kb网络宽带提供听起来自然清晰的语音聊天,还可以在仅90ms延迟的情况下在从高端云服务器到中端智能手机的任何设备上运行。随着谷歌的推广,估计WebRTC后续也有相关动作支持起来,特别在网络比较差带..

2021-04-09 12:29:06 621

原创 手把手搭建WebRTC测试环境,实现1对1视频通话

​问题背景:疫情除了火了电商直播、短视频也火了视频会议,其中看zoom和声网市值就能窥探实时音视频的目前发展情况。其中视频会议相关的技术栈基本都是建立在WebRTC基础上,为了了解学习WebRTC,首先需要搭建一个能测试和抓包的环境,然后调用WebAPI写写DEMO熟悉下相应接口和抓抓包看看基本交互流程。最后再逐渐深入到协议和相关的源代码中。本文就是帮助大家一步步搭建一个DEMO的运行环境,只要严格按照教程,基本都能搭建出来,后续再讲解接口调用和WebRTC一些源码编译和内部情况。相关资料和链.

2020-11-25 09:24:27 1967 3

原创 借力SRS落地实际业务的几个关键事项

问题背景:今年疫情的原因导致直播卖货、快抖短视频、视频会议和在线教育都迎来了井喷。这些业务的落地技术方向基本就是两大类,一类是在传统直播技术上的一些演进,另外一类就是以WebRTC技术为核心或者极其变种的低延时实时通信。前者无非就是上行编码推流------->传输----->下行拉流解码,这一块技术方案是比较成熟的,其中就以SRS为代表,可以用SRS搭建运营级的互联网直播服务器集群。以前公司业务针对下行,有很多模块,有些是HLS协议下行分发,有些是RTMP下行协议分发,HTTP-FLV也

2020-10-23 11:33:09 770 1

原创 视频编码码率控制:CBR、VBR和ABR

问题背景:无论是查线上一些花屏、卡顿,马赛克问题,还是进行码率自适应的功能开发,抑或进行客户端播放器的JitterBuffer的优化,都需要编码器发送端的配合。我们需要在编码速度、网络带宽,视频质量方面做一个权衡,进而选择更符合场景的码控调整方案,同时目前比较热门的ROI编码,编码场景的自适应学习都跟这部分内容有关系。本文介绍下常见视频编码器码率控制方案,具体的编码器可能在实现和使用上有所差异,具体在调用API和阅读源码时需要进行进一步分析和了解。背景知识:视频编码过程中,有一个重要步骤:.

2020-08-19 10:30:13 2076

原创 音视频常见问题分析和解决:HLS切片丢帧引起的视频卡顿问题排查

​问题背景:前两天看读者留言让再写写音视频问题排查方面的思路,前面大概写几篇:《音视频播放疑难杂症分析和解决 :序篇》、《音视频常见问题分析和解决:延时和抖动》、《记一次因为丢帧导致视频播放花屏问题的排查》。今天继续这个系列补充。由于移动互联网的快速发展,现在一些音视频IOT相关的智能设备如IPC、智能猫眼等,有很多移动端浏览器或者微信小程序的播放需求,这种情况我们用了HLS+TS方案。近期上线后,发现视频整体播放没有啥大问题,但是仔细看还是感觉有点卡顿,不仔细看不容易发现,就这个视频卡顿问题进行了

2020-07-20 09:05:26 3497

原创 HLS+FMP4方案对H.265+AAC支持要点

​问题背景:2017年的苹果WWDC大会上,苹果宣布HEVC支持HLS,涉及了iOS、MacOS和tvOS等系统终端。苹果之所以乐意这个事情,首先HLS就是他们家的,近些年一直把HLS致力于推成Web标准,其次苹果手握大量H.265的专利,也不想谷歌的AOM对应的VP9标准一家独大,HLS虽然延时有些大,但不可否认的,目前HLS是跨平台做的最好的协议。我们之所以想实现下这块是因为近年来:1.视频监控领域现在摄像头和NVR对H.265支持的越来越好,很多设备后台默认配置现在就是H.265,所.

2020-06-09 19:39:01 4160 2

原创 流媒体传输协议:RTMP、HLS和RTSP介绍

​问题背景:​问题背景:流媒体传输协议经过几十年的发展,越来越丰富。近期的SRT、DASH、QUIC等都已经在实际中有所应用,但是这些协议里面应用最成熟,最广的协议还是RTSP/RTP/RTCP、HLS和RTMP协议。同时这些协议背后解决的问题和设计思想大同小异,所以作为流媒体入门可以从这些协议入手,进行学习和实践。同时这些协议的资料丰富,实验环境也容易搭建。近期给身边同学分享这块内容时,写了点PPT介绍了下这些协议最基础和最重要的部分,共享出来作为大家学习阅读参考,同时也算流媒体传输协议.

2020-05-27 08:55:14 938 1

原创 译:构建音视频直播应用需要考虑的12件事

​问题背景:近期看到一篇音视频技术周刊的一篇文章《12 Things to Consider When Buildinga Live Streaming App》,感觉写的还不错,是Red5官网挂出来的一篇博客,对设计、构建一个流媒体平台系统有一定的参考意义。这里简单翻译一下,以飨读者。其中Red5是一个采用Java开发的Flash流媒体服务器,与之对标的有Nginx-Rtmp、SRS和FMS等。打造一个流媒体平台除了像一般后端服务要求那样,比如性能、扩展性、可维护性以及可测试性,还有其它音视频技.

2020-05-12 09:05:45 1239

原创 基于HLS-TS&RTMP-FLV的微信小程序点直播方案

​问题背景:视频监控不仅仅要上云,还要支持多端播放,这一块在移动端APP和PC端难度不大,只要能实现一个简单的播放器引擎内核,然后交叉编译为不同端的SDK就可以。随着移动互联网的发展,特别是微信生态的完善。很多客户都在做轻量的微信小程序,所以支持在网页、微信小程序的点直播就很有必要了。在微信小程序上实现视频点直播,好处是不用装APP,随时随地能打开,便于分享,也容易和公众号等其它功能...

2020-04-23 09:59:00 4276 1

原创 一图看懂音视频核心技术栈(框架、工具和场景)

​其实前面整理过一波音视频技术栈涉及的核心内容和工具,这篇在上篇基础上再次进行补充。目的就是为了让大家快速对音视频技术有一个框架性的认识,同时也便于刚入门小白对这部分内容有一个清晰的学习脉络。如果你么看这篇文章《音视频基础知识:流媒体核心技术梳理》建议先点进去看下,这篇无非就是更详细点。上图,可以放大看:如果没办法看清,可以去下面git链接下载,里面有大量的音视频文档和...

2020-04-15 13:51:08 3466

原创 国产开源流媒体SRS4.0对视频监控GB28181的支持

前言:本篇文章是第一篇介绍SRS的文章,后续应该还会有一些测试和使用经验的文章,同时可能会有一些源码阅读笔记。本篇文章主要是介绍下国产开源流媒体SRS涉及的入门资料,SRS前期对标的nginx-rtmp-module,是国内第一款真正开源的流媒体服务,应用在直播和RTC领域。但是成立同学志存高远,不仅仅局限于某一个行业,近期WebRTC、SRT、GB28181支持的都很快,希望大家都能参与进来...

2020-04-09 09:32:53 19875 10

原创 从视频马赛克看编码量化参数对流控的作用

问题背景:最近我们做了一个小项目,通过对接亚马逊的开放API,将智能家居中的自营摄像头视频可以投屏到Alexa智能音箱上,可以对着喊一句:alexa,open the door。就可以将安装在门外的摄像头唤醒,然后观看视频直播。这即丰富了智能家居落地场景,也解放了双手,不用再打开APP查看云存储视频和直播了。但是在排查客户问题过程中国,发现有一款摄像头的视频,如果画面静止不动播放...

2020-04-01 10:31:10 1113 1

原创 如何给中间件和可执行程序打上GIT版本和编译时间

​问题背景:平时开发很多的C/C++后台服务或者中间件,这些成果物以可执行的二进制程序或者以动态库、静态库的形式部署在线上。一旦将该服务上线,出问题后一般都需要我们确定该程序的版本分支和版本号,下面介绍一种简单方法将程序的编译信息硬编译到二进制成果物中。解决目标:给成果物符号文件中加上git提交版本号和编译日期,允许通过strings或者nm命令查询该成果物的符号文件,然后通过g...

2020-01-19 09:15:59 502

原创 家庭消费类摄像头选择攻略和隐私保护小建议

​问题背景:由于毕业后一直在这个安防圈内,朋友有时咨询我应该买哪家的摄像头,说想装到家里看娃看门和陪伴老人。为了避免广告嫌疑,下面推荐几款,各有利弊大家自由选择。同时给出买消费类摄像头的注意事项。其实这种推荐和大家买手机一样,就是看下品牌,外观和功能,专业一点的人会看下CPU型号、内存、拍照功能。摄像头也类似,基本也需要关注一些基本功能和设备参数,同时家庭消费类摄像头有一个关注点比较重要就是隐...

2019-12-23 10:14:09 1358

原创 记一次因为丢帧导致视频播放花屏问题的排查

​问题背景:最近开发了一个HLS服务,主要是满足用户在浏览器上播放直播和点播视频的需求,特别像小程序或者微信这种,只有有链接就能查看视频,也不用装APP,还是方便不少。在开发过程中排查了一次花屏问题,感觉比较典型,分享下排查思路,其实这种问题排查思路在前文讲过,这篇就是对这篇文章中提出思路的实践。PS:如果你对本篇文章感兴趣或者实际你们遇到了什么开发问题,抑或这篇文章跟你的工作有...

2019-11-29 09:27:22 3351 1

原创 SDP在RTSP、国标GB28181、WebRTC中的实践

​问题背景:无论你是用微信进行视频电话还是开Zoom视频会议,按照OSI网络七层参考模型,我们进行这些活动之前一般都要先建立一组会话。在建立会话的过程中,我们需要描述下会话的一些信息,描述这种会话能力时用到了SDP协议,也就是会话描述协议Session Description Protocol,协议详细内容在RFC4566中规定。这么说可能不够直白,大白话解释就是:由于Web端、IOS、A...

2019-11-13 09:20:18 1629 1

原创 视频监控摄像头的互联网化实践思路

​问题背景:最近在SRS群里回答一些视频监控设备上云问题时,SRS开源作者让我写一篇文章介绍下视频监控摄像头的互联网化实践思路,很有幸毕业这几年工作的大体方向都跟这个有关系,本篇就抛砖引玉说下视频监控设备上云的一些实践和思考。本篇文章核心内容大致分为下面几个部分,你可以选择感兴趣篇章阅读,如果你对视频监控行业比较陌生,可以看看以前这篇文章《从人类的第一次直播聊聊视频监控行业》:为什么监...

2019-11-04 09:46:57 1125

原创 周末活动回顾:视频质量主观评价、实时RTC架构和AV1进展

​问题背景:周末去网易参加了一个小型的音视频活动,活动上来自Bilibili、网易云信、微帧科技的大佬分别就视频质量主观评价、5G低延时通信、AV1等话题进行了分享。本篇文章记录下我的收获和一些关键点,做个搬运匠,放一些当时的PPT和我的一些理解,希望对你有所帮助。了解更多可以关注本人公众号:智媒黑板报Bilibili汤然:视频质量主观对比分析实践简要介绍:汤同学目前主要在...

2019-10-29 11:23:14 662

原创 在HTML5上开发音视频应用的五种思路

​问题背景:无论是实时视频监控还是直播点播等应用场景,最起码的一个操作就是播放视频。其中最基本的思路就是利用OS的API在PC开发桌面应用、在移动端开发Native App,目前这种技术已经成熟,大厂小厂都是这么做的,但是缺点也很明显:开发比较费时费力,需要IOS开发一遍再去Android开发一遍。特别对于一些非刚性需求比如用户家里有一两个监控摄像头,一个礼拜也不会打开看几次,你却要他下载和安...

2019-10-25 12:28:58 540

原创 音视频解封装:MP4核心Box详解及H264&AAC打包方案

​问题背景:上一篇文章《音视频封装:MP4结构概述和分析工具》让大家看了下MP4的主要结构和推荐了一些分析工具,如果你对MP4没有任何了解,还是先看上文,了解MP4的基本结构,其中还有许多工具需要下载和使用。这篇文章借助一个实例分析下核心Box的语法结构和字段含义,其次总结下H264码流的是如何打包到MP4中的,这篇文章也是下篇文章计算一些音视频信息,实现音视频操作和对MP4码流处理的基础。...

2019-10-16 09:18:05 2583 3

原创 音视频封装:MP4结构概述和分析工具推荐

问题背景:前面已经讲了好几种封装格式包括了TS、FLV、RTP等。现在用几篇文章讲解下MP4,这种封装格式设计思路和前面都不太一样,其应用范围最广、灵活性最高、跨平台最好,兼容性最强。带来的负面影响就是格式本身比较复杂,特别是在封装和转封装方面代码实现起来比较长。这个系列会和前面讲解思路一样,本篇会讲解下MP4的整体框架和结构,下篇会讲解下MP4的详细标准,同时用一个实例分析下对应字段含义...

2019-10-09 19:01:39 1913

原创 音视频压缩:H264码流层次结构和NALU详解

问题背景:前面在讲封装格式过程中,都有一个章节讲解如何将H.264的NALU单元如何打包到TS、FLV、RTP中,解装刚好相反,怎么从这些封装格式里面解析出一个个NALU单元。NALU即是编码器的输出数据又是解码器的输入数据,所以在封装和传输时,我们一般处理对象就是NALU,至于NALU内部到底是什么则很少关心。甚至我们在编解码时,我们只需要初始化好x264编码库,然后输入YUV数据,它就会给...

2019-09-30 13:40:24 1072 3

原创 音视频播放疑难杂症分析和解决思路

问题背景:音视频相较于其他业务开发,门槛比较高的一个原因开发过程遇到问题比较多,而且每个问题背后都需要一定的理论基础和丰富的调试经验的才能分析出来。有些音视频开发小白,遇到一些诸如视频卡顿、声画不同步等问题完全一脸懵逼,不知道从何处进行分析。我曾经在海康开发维护过一段时间的线上服务和基础库,一天基本需要排查十几个这种疑难杂症,而且这些问题表现形式非常灵活,有些是黑屏、花屏,有些直接播放端卡死发...

2019-09-27 14:05:08 919

原创 音视频封装格式:AAC音频基础和ADTS打包方案详解

问题背景:现在主流的封装格式支持的音视频编码标配是H264+AAC,其中像TS、RTP、FLV、MP4都支持音频的AAC编码方式。当然,后继者不乏Opus这种编码方式,它主要应用在互联网场景,比如现在谷歌的WebRTC音视频解决方案就用的Opus,最新发布的Android10支持的音视频编码方式就是AV1和Opus,但是AAC目前在广电,安防,电影院等还是应用最多,Opus目前还不足以威胁到A...

2019-09-27 13:58:52 1896

原创 音视频封装:MPTG2-TS 媒体封装实例解析和说明

问题背景:首先明确这两种格式都是音视频的封装格式,是由国际电信联盟出的具体标准,具体文档见ISO/IEC-13818。由于在安防和广电领域的使用,还有苹果在自家全系列产品的主推,导致目前还有一定的生存空间。在安防领域主要是因为GB28181-11标准规定了码流的封装格式是RTP+PS流。这样导致整个安防凡是和国标相关的码流封装格式都是PS流,目前依然是安防码流的主流封装标准,一时半会还看不到有...

2019-09-27 13:57:21 1435 1

原创 音视频传输:RTP协议详解和H.264打包方案

问题背景:前面讲解了PS、TS、FLV这三种媒体封装格式,现在新开一个系列讲解下传输协议,这里面会包含RTP、RTSP、HLS、RTMP等。当然最复杂的封装格式MP4在准备中,后面会把封装格式这个系列讲完。今天要说的RTP传输协议,有人也认为这是封装格式,因为协议中打包音视频要填写时间戳的相关信息,FFmpeg就把这个作为封装格式。我觉得都没啥问题,不过我更偏向认为是传输协议。关注公众号:...

2019-09-27 13:53:35 2976

原创 音视频基础知识:流媒体核心技术梳理

问题背景:这个公众号已经发了十几篇文章,阅读量和订阅数也在稳定增长。为了后面大家交流更顺畅,大概知道每篇文章在音视频技术体系的位置。利用周末画了个脑图,梳理了下音视频核心技术体系,当然这张图不会包含所有流媒体的技术,如果有遗漏,你可以私信我。我会在后面补充和丰富起来,让进门的小白能找到自己的位置,赠人玫瑰,手留余香。下面用两张图来构建音视频技术人交流的行话,让你快速找到在整个流媒体技术...

2019-09-27 13:49:42 2119

原创 音视频常见问题分析和解决:延时和抖动

问题背景:在上一篇文章讲了音视频一些疑难问题的排查,其中一个比较重要的原则就是要将音视频作为一个系统来看待,问题有可能只是表现在播放端,但是根因有可能在编码端,也有可能发生在传输过程中。其实对于音视频有些问题的优化,有时也要整体优化,比如延时这种问题。下面我将会分析延迟的概念,延迟的产生和类型、延迟的优化三大部分的内容,最后再通过一两个小例子分享下我在解决延迟问题的优化实践。你可以根据自己...

2019-09-17 16:48:00 3360

MP4f分析的素材-文档-工具.rar

本文档详细描述了MP4文件的详细结构,大家可以关注公众号:智媒黑板报 进一步学习。

2019-10-16

音视频常见问题分析:延迟和抖动(1).doc

关于音视频常见的问题,比如延时和抖动 延迟:是网络传输中的一个重要指标,测量了数据从一个端点到另外一个端点所需的时间。一般我们用毫秒作为其单位。通常我们也把延迟叫做延时,但是延时有时还会表示数据包发送端到接受端的往返时间。这个往返时间我们可以通过网络监控工具测量,测量数据包的发送时间点和接受到确认的时间点,两者之差就是延时。单向时间就是延迟。 抖动:由于数据包的大小,网络路由的路径选择等众多因素,我们无法保证数据包的延迟时间是一致的,数据包和数据包延迟的差异我们称为抖动。也就是说因为数据包的延时值忽大忽小的现象我们称为是抖动。 可以看出延迟会造成抖动,但是抖动并不完全等价于延迟,所以有时我们分析实际问题时还是要加以区分。

2019-09-17

PS和TS数据格式分析-TS部分.pdf

文档里面用工具重点分析了TS封装格式的PAT PMT PES 音视频的格式,非常详细,看完后就可以直接写代码了

2019-07-03

H264裸数据打包RTP方法和实验.pdf

主要讲了H264数据格式,RTP数据格式,以及如何将H264的NALU打包为RTP。 本文的实验在VLC播放器进行了验证,能够将本地文件推送到VLC进行顺利播放。

2019-06-28

H264文件查看工具.rar

里面介绍了主要一些H264目前查看的文件方法和工具,其中包含了几个破解小软件,基本从NALU到宏块内容都可以查看

2019-06-18

Onvif基于wsdl编译的客户端代码框架+自动发现设备的demo

基于gsoap编译onvif的标准wsdl文件,生成Onvif客户端代码框架。其中main.cpp写了一个几月该框架的设备自动发现功能的demo,可以作为参考。其它信令只需要自己实现即可。 编译命令: g++ main.cpp soapC.cpp stdsoap2.cpp soapClient.cpp -I/usr/local/gSOAP/share/gsoap

2018-12-18

RTSP协议详解

直播 点播 视频监控 直播客户端软件 IPC NVR涉及的RTSP协议内容和交互过程。

2018-12-18

RTP RTCP协议详细解释和实现

文档详细解释了RTP和RTCP协议的内容和实现算法,对开发类似流媒体服务有一定的参考性。

2018-11-09

基于多线程的高性能服务器程序的设计

主要讲解了目前高性能服务器的高并发和大流量应对的服务端开发注意事项。

2018-11-08

C++ 内存对象布局

涉及各种情况下C++对象的sizeof大小,包括单一类对象,继承,重复继承 多继承 单一虚继承 等各种情况下的对象大小。对C++对象内存布局有清楚了解。

2018-11-08

火焰图 程序性能分析

文档描述了利用火焰图和perf工具对linux程序进行性能分析,打印所有函数执行的消耗时间并进行可视化,胜过用linux的top等命令进行分析

2018-11-08

Fmp4文件格式介绍

MP4和FMP4文件封装格式介绍,已经和其它文件格式的比较。

2018-11-07

【案例】linux下内存泄露的core,类似3s法

【案例】linux下内存泄露的core,类似3s法 【案例】linux下内存泄露的core,类似3s法

2017-12-16

【案例分析】如何分析linux下被破坏的栈

需要了解的预备知识 有linux 栈空间的分布,部分汇编语言。 我写的很辛苦,有很多地方很难理解,比查内存泄露的问题要难。 估计大家看的时候也很辛苦,希望大家耐下心来看。 多看几遍,不懂的概念baidu下

2017-12-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除