- 博客(29)
- 资源 (14)
- 收藏
- 关注
原创 2021上海LVS音视频大会观感和思考
问题背景:其实音视频这个领域非常的窄,很长一段时间都没有属于自己专一和垂直的社区。最近几年,随着国外的FFmpeg和WebRTC的普及,国内SRS和LVS在这个领域也变得越来越活跃。从2017年LVS组织第一次线下大型活动到现在已经五个年头了,感谢LVS提供的平台和机会,让大家每年有一两次线下面对面交流机会,也感谢这个时代对音视频技术的持续推动。我大概第三次参加LVS,每次参加的体验都有所变化,下面是一篇杂文写写在现场的所见所得,仅供参考。现场见闻:谈谈参展商和讲师本次大会,腾讯,阿里
2021-04-19 19:19:19 1438
原创 新型开源语音编码器Lyra最新进展
问题背景:Google最近开源了一种语音压缩的新型超低比特率编解码器,这种编码器的最大特点是基于机器学习原理,能够使用最少的数据来重建语音,这是和传统AAC和Opus编码原理的本质区别,这种基于机器学习的编码思想也逐渐应用的图像编码和视频编码上。其次Lyra牛逼的地方在于不仅实现了以每秒3kb网络宽带提供听起来自然清晰的语音聊天,还可以在仅90ms延迟的情况下在从高端云服务器到中端智能手机的任何设备上运行。随着谷歌的推广,估计WebRTC后续也有相关动作支持起来,特别在网络比较差带..
2021-04-09 12:29:06 753
原创 手把手搭建WebRTC测试环境,实现1对1视频通话
问题背景:疫情除了火了电商直播、短视频也火了视频会议,其中看zoom和声网市值就能窥探实时音视频的目前发展情况。其中视频会议相关的技术栈基本都是建立在WebRTC基础上,为了了解学习WebRTC,首先需要搭建一个能测试和抓包的环境,然后调用WebAPI写写DEMO熟悉下相应接口和抓抓包看看基本交互流程。最后再逐渐深入到协议和相关的源代码中。本文就是帮助大家一步步搭建一个DEMO的运行环境,只要严格按照教程,基本都能搭建出来,后续再讲解接口调用和WebRTC一些源码编译和内部情况。相关资料和链.
2020-11-25 09:24:27 2163 3
原创 借力SRS落地实际业务的几个关键事项
问题背景:今年疫情的原因导致直播卖货、快抖短视频、视频会议和在线教育都迎来了井喷。这些业务的落地技术方向基本就是两大类,一类是在传统直播技术上的一些演进,另外一类就是以WebRTC技术为核心或者极其变种的低延时实时通信。前者无非就是上行编码推流------->传输----->下行拉流解码,这一块技术方案是比较成熟的,其中就以SRS为代表,可以用SRS搭建运营级的互联网直播服务器集群。以前公司业务针对下行,有很多模块,有些是HLS协议下行分发,有些是RTMP下行协议分发,HTTP-FLV也
2020-10-23 11:33:09 815 1
原创 视频编码码率控制:CBR、VBR和ABR
问题背景:无论是查线上一些花屏、卡顿,马赛克问题,还是进行码率自适应的功能开发,抑或进行客户端播放器的JitterBuffer的优化,都需要编码器发送端的配合。我们需要在编码速度、网络带宽,视频质量方面做一个权衡,进而选择更符合场景的码控调整方案,同时目前比较热门的ROI编码,编码场景的自适应学习都跟这部分内容有关系。本文介绍下常见视频编码器码率控制方案,具体的编码器可能在实现和使用上有所差异,具体在调用API和阅读源码时需要进行进一步分析和了解。背景知识:视频编码过程中,有一个重要步骤:.
2020-08-19 10:30:13 2391
原创 音视频常见问题分析和解决:HLS切片丢帧引起的视频卡顿问题排查
问题背景:前两天看读者留言让再写写音视频问题排查方面的思路,前面大概写几篇:《音视频播放疑难杂症分析和解决 :序篇》、《音视频常见问题分析和解决:延时和抖动》、《记一次因为丢帧导致视频播放花屏问题的排查》。今天继续这个系列补充。由于移动互联网的快速发展,现在一些音视频IOT相关的智能设备如IPC、智能猫眼等,有很多移动端浏览器或者微信小程序的播放需求,这种情况我们用了HLS+TS方案。近期上线后,发现视频整体播放没有啥大问题,但是仔细看还是感觉有点卡顿,不仔细看不容易发现,就这个视频卡顿问题进行了
2020-07-20 09:05:26 3901
原创 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 4459 3
原创 流媒体传输协议:RTMP、HLS和RTSP介绍
问题背景:问题背景:流媒体传输协议经过几十年的发展,越来越丰富。近期的SRT、DASH、QUIC等都已经在实际中有所应用,但是这些协议里面应用最成熟,最广的协议还是RTSP/RTP/RTCP、HLS和RTMP协议。同时这些协议背后解决的问题和设计思想大同小异,所以作为流媒体入门可以从这些协议入手,进行学习和实践。同时这些协议的资料丰富,实验环境也容易搭建。近期给身边同学分享这块内容时,写了点PPT介绍了下这些协议最基础和最重要的部分,共享出来作为大家学习阅读参考,同时也算流媒体传输协议.
2020-05-27 08:55:14 1007 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 1364
原创 基于HLS-TS&RTMP-FLV的微信小程序点直播方案
问题背景:视频监控不仅仅要上云,还要支持多端播放,这一块在移动端APP和PC端难度不大,只要能实现一个简单的播放器引擎内核,然后交叉编译为不同端的SDK就可以。随着移动互联网的发展,特别是微信生态的完善。很多客户都在做轻量的微信小程序,所以支持在网页、微信小程序的点直播就很有必要了。在微信小程序上实现视频点直播,好处是不用装APP,随时随地能打开,便于分享,也容易和公众号等其它功能...
2020-04-23 09:59:00 4601 1
原创 一图看懂音视频核心技术栈(框架、工具和场景)
其实前面整理过一波音视频技术栈涉及的核心内容和工具,这篇在上篇基础上再次进行补充。目的就是为了让大家快速对音视频技术有一个框架性的认识,同时也便于刚入门小白对这部分内容有一个清晰的学习脉络。如果你么看这篇文章《音视频基础知识:流媒体核心技术梳理》建议先点进去看下,这篇无非就是更详细点。上图,可以放大看:如果没办法看清,可以去下面git链接下载,里面有大量的音视频文档和...
2020-04-15 13:51:08 4456
原创 国产开源流媒体SRS4.0对视频监控GB28181的支持
前言:本篇文章是第一篇介绍SRS的文章,后续应该还会有一些测试和使用经验的文章,同时可能会有一些源码阅读笔记。本篇文章主要是介绍下国产开源流媒体SRS涉及的入门资料,SRS前期对标的nginx-rtmp-module,是国内第一款真正开源的流媒体服务,应用在直播和RTC领域。但是成立同学志存高远,不仅仅局限于某一个行业,近期WebRTC、SRT、GB28181支持的都很快,希望大家都能参与进来...
2020-04-09 09:32:53 20311 10
原创 从视频马赛克看编码量化参数对流控的作用
问题背景:最近我们做了一个小项目,通过对接亚马逊的开放API,将智能家居中的自营摄像头视频可以投屏到Alexa智能音箱上,可以对着喊一句:alexa,open the door。就可以将安装在门外的摄像头唤醒,然后观看视频直播。这即丰富了智能家居落地场景,也解放了双手,不用再打开APP查看云存储视频和直播了。但是在排查客户问题过程中国,发现有一款摄像头的视频,如果画面静止不动播放...
2020-04-01 10:31:10 1242 1
原创 如何给中间件和可执行程序打上GIT版本和编译时间
问题背景:平时开发很多的C/C++后台服务或者中间件,这些成果物以可执行的二进制程序或者以动态库、静态库的形式部署在线上。一旦将该服务上线,出问题后一般都需要我们确定该程序的版本分支和版本号,下面介绍一种简单方法将程序的编译信息硬编译到二进制成果物中。解决目标:给成果物符号文件中加上git提交版本号和编译日期,允许通过strings或者nm命令查询该成果物的符号文件,然后通过g...
2020-01-19 09:15:59 542
原创 家庭消费类摄像头选择攻略和隐私保护小建议
问题背景:由于毕业后一直在这个安防圈内,朋友有时咨询我应该买哪家的摄像头,说想装到家里看娃看门和陪伴老人。为了避免广告嫌疑,下面推荐几款,各有利弊大家自由选择。同时给出买消费类摄像头的注意事项。其实这种推荐和大家买手机一样,就是看下品牌,外观和功能,专业一点的人会看下CPU型号、内存、拍照功能。摄像头也类似,基本也需要关注一些基本功能和设备参数,同时家庭消费类摄像头有一个关注点比较重要就是隐...
2019-12-23 10:14:09 1628
原创 记一次因为丢帧导致视频播放花屏问题的排查
问题背景:最近开发了一个HLS服务,主要是满足用户在浏览器上播放直播和点播视频的需求,特别像小程序或者微信这种,只有有链接就能查看视频,也不用装APP,还是方便不少。在开发过程中排查了一次花屏问题,感觉比较典型,分享下排查思路,其实这种问题排查思路在前文讲过,这篇就是对这篇文章中提出思路的实践。PS:如果你对本篇文章感兴趣或者实际你们遇到了什么开发问题,抑或这篇文章跟你的工作有...
2019-11-29 09:27:22 3537 2
原创 SDP在RTSP、国标GB28181、WebRTC中的实践
问题背景:无论你是用微信进行视频电话还是开Zoom视频会议,按照OSI网络七层参考模型,我们进行这些活动之前一般都要先建立一组会话。在建立会话的过程中,我们需要描述下会话的一些信息,描述这种会话能力时用到了SDP协议,也就是会话描述协议Session Description Protocol,协议详细内容在RFC4566中规定。这么说可能不够直白,大白话解释就是:由于Web端、IOS、A...
2019-11-13 09:20:18 1785 1
原创 视频监控摄像头的互联网化实践思路
问题背景:最近在SRS群里回答一些视频监控设备上云问题时,SRS开源作者让我写一篇文章介绍下视频监控摄像头的互联网化实践思路,很有幸毕业这几年工作的大体方向都跟这个有关系,本篇就抛砖引玉说下视频监控设备上云的一些实践和思考。本篇文章核心内容大致分为下面几个部分,你可以选择感兴趣篇章阅读,如果你对视频监控行业比较陌生,可以看看以前这篇文章《从人类的第一次直播聊聊视频监控行业》:为什么监...
2019-11-04 09:46:57 1237
原创 周末活动回顾:视频质量主观评价、实时RTC架构和AV1进展
问题背景:周末去网易参加了一个小型的音视频活动,活动上来自Bilibili、网易云信、微帧科技的大佬分别就视频质量主观评价、5G低延时通信、AV1等话题进行了分享。本篇文章记录下我的收获和一些关键点,做个搬运匠,放一些当时的PPT和我的一些理解,希望对你有所帮助。了解更多可以关注本人公众号:智媒黑板报Bilibili汤然:视频质量主观对比分析实践简要介绍:汤同学目前主要在...
2019-10-29 11:23:14 724
原创 在HTML5上开发音视频应用的五种思路
问题背景:无论是实时视频监控还是直播点播等应用场景,最起码的一个操作就是播放视频。其中最基本的思路就是利用OS的API在PC开发桌面应用、在移动端开发Native App,目前这种技术已经成熟,大厂小厂都是这么做的,但是缺点也很明显:开发比较费时费力,需要IOS开发一遍再去Android开发一遍。特别对于一些非刚性需求比如用户家里有一两个监控摄像头,一个礼拜也不会打开看几次,你却要他下载和安...
2019-10-25 12:28:58 582
原创 音视频解封装:MP4核心Box详解及H264&AAC打包方案
问题背景:上一篇文章《音视频封装:MP4结构概述和分析工具》让大家看了下MP4的主要结构和推荐了一些分析工具,如果你对MP4没有任何了解,还是先看上文,了解MP4的基本结构,其中还有许多工具需要下载和使用。这篇文章借助一个实例分析下核心Box的语法结构和字段含义,其次总结下H264码流的是如何打包到MP4中的,这篇文章也是下篇文章计算一些音视频信息,实现音视频操作和对MP4码流处理的基础。...
2019-10-16 09:18:05 2735 3
原创 音视频封装:MP4结构概述和分析工具推荐
问题背景:前面已经讲了好几种封装格式包括了TS、FLV、RTP等。现在用几篇文章讲解下MP4,这种封装格式设计思路和前面都不太一样,其应用范围最广、灵活性最高、跨平台最好,兼容性最强。带来的负面影响就是格式本身比较复杂,特别是在封装和转封装方面代码实现起来比较长。这个系列会和前面讲解思路一样,本篇会讲解下MP4的整体框架和结构,下篇会讲解下MP4的详细标准,同时用一个实例分析下对应字段含义...
2019-10-09 19:01:39 2622 1
原创 音视频压缩:H264码流层次结构和NALU详解
问题背景:前面在讲封装格式过程中,都有一个章节讲解如何将H.264的NALU单元如何打包到TS、FLV、RTP中,解装刚好相反,怎么从这些封装格式里面解析出一个个NALU单元。NALU即是编码器的输出数据又是解码器的输入数据,所以在封装和传输时,我们一般处理对象就是NALU,至于NALU内部到底是什么则很少关心。甚至我们在编解码时,我们只需要初始化好x264编码库,然后输入YUV数据,它就会给...
2019-09-30 13:40:24 1186 3
原创 音视频播放疑难杂症分析和解决思路
问题背景:音视频相较于其他业务开发,门槛比较高的一个原因开发过程遇到问题比较多,而且每个问题背后都需要一定的理论基础和丰富的调试经验的才能分析出来。有些音视频开发小白,遇到一些诸如视频卡顿、声画不同步等问题完全一脸懵逼,不知道从何处进行分析。我曾经在海康开发维护过一段时间的线上服务和基础库,一天基本需要排查十几个这种疑难杂症,而且这些问题表现形式非常灵活,有些是黑屏、花屏,有些直接播放端卡死发...
2019-09-27 14:05:08 1062
原创 音视频封装格式:AAC音频基础和ADTS打包方案详解
问题背景:现在主流的封装格式支持的音视频编码标配是H264+AAC,其中像TS、RTP、FLV、MP4都支持音频的AAC编码方式。当然,后继者不乏Opus这种编码方式,它主要应用在互联网场景,比如现在谷歌的WebRTC音视频解决方案就用的Opus,最新发布的Android10支持的音视频编码方式就是AV1和Opus,但是AAC目前在广电,安防,电影院等还是应用最多,Opus目前还不足以威胁到A...
2019-09-27 13:58:52 2037
原创 音视频封装:MPTG2-TS 媒体封装实例解析和说明
问题背景:首先明确这两种格式都是音视频的封装格式,是由国际电信联盟出的具体标准,具体文档见ISO/IEC-13818。由于在安防和广电领域的使用,还有苹果在自家全系列产品的主推,导致目前还有一定的生存空间。在安防领域主要是因为GB28181-11标准规定了码流的封装格式是RTP+PS流。这样导致整个安防凡是和国标相关的码流封装格式都是PS流,目前依然是安防码流的主流封装标准,一时半会还看不到有...
2019-09-27 13:57:21 1556 1
原创 音视频传输:RTP协议详解和H.264打包方案
问题背景:前面讲解了PS、TS、FLV这三种媒体封装格式,现在新开一个系列讲解下传输协议,这里面会包含RTP、RTSP、HLS、RTMP等。当然最复杂的封装格式MP4在准备中,后面会把封装格式这个系列讲完。今天要说的RTP传输协议,有人也认为这是封装格式,因为协议中打包音视频要填写时间戳的相关信息,FFmpeg就把这个作为封装格式。我觉得都没啥问题,不过我更偏向认为是传输协议。关注公众号:...
2019-09-27 13:53:35 3199
原创 音视频基础知识:流媒体核心技术梳理
问题背景:这个公众号已经发了十几篇文章,阅读量和订阅数也在稳定增长。为了后面大家交流更顺畅,大概知道每篇文章在音视频技术体系的位置。利用周末画了个脑图,梳理了下音视频核心技术体系,当然这张图不会包含所有流媒体的技术,如果有遗漏,你可以私信我。我会在后面补充和丰富起来,让进门的小白能找到自己的位置,赠人玫瑰,手留余香。下面用两张图来构建音视频技术人交流的行话,让你快速找到在整个流媒体技术...
2019-09-27 13:49:42 2201
原创 音视频常见问题分析和解决:延时和抖动
问题背景:在上一篇文章讲了音视频一些疑难问题的排查,其中一个比较重要的原则就是要将音视频作为一个系统来看待,问题有可能只是表现在播放端,但是根因有可能在编码端,也有可能发生在传输过程中。其实对于音视频有些问题的优化,有时也要整体优化,比如延时这种问题。下面我将会分析延迟的概念,延迟的产生和类型、延迟的优化三大部分的内容,最后再通过一两个小例子分享下我在解决延迟问题的优化实践。你可以根据自己...
2019-09-17 16:48:00 3535
音视频常见问题分析:延迟和抖动(1).doc
2019-09-17
H264裸数据打包RTP方法和实验.pdf
2019-06-28
Onvif基于wsdl编译的客户端代码框架+自动发现设备的demo
2018-12-18
【案例分析】如何分析linux下被破坏的栈
2017-12-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人