我与音视频的故事|社区征文

社区征文

1.音视频行业背景

    音视频是多媒体应用的一种主要形式,其给用户带来的体验效果远超过与静态文字,更加直观和真实、具象化。

    现代,直播与视频行业紧密相连,是视频行业不可分割的一部分。在不同时代,直播形式也一直在更新。我国的视频业大致经历了从长视频到短视频,从录播到直播,从PC端到移动端等几个阶段。\

    在走过漫长的“面对面”直播期后,我国迎来了第一代媒体——电视直播。电视直播在20世纪8年代中期才兴起,是人们感受最深,也是伴随着70后、80后、90后“大批人成长起来的一种方式。 我国首次电视直播事件是1983年的春节联欢晚会,首次大规模室外直播是1984年中华人民共和国国庆35周年大阅兵,出动了200多人,5辆转播车,23套摄像机,14套微波设备,并通过卫星向国外直播。

    紧接着是PC端直播,PC端直播门槛较低,这也使越来越多的网民能参与到视频制作和直播当中。移动互联网兴起后,直播又从PC端转移至移动端,门槛更低,参与性更强,互动性更好,使直播直接成为大众社交、娱乐、企业产品营销、用户引流的新入口。

    在直播强大的影响力之下,直播平台也逐步兴起,我国比较早的直播平台在2005年兴起,如YY、 9158等, 而后又有六间房、A站、BiLiBiLi等。高峰期是在2013年和2014年,这两年大量网络直播平台如雨后春笋般崛起,如美拍、秒拍、龙珠、熊猫、花椒、映客、闪咖、抖音等。

2.文章概要

    本文主要记录本人作为从事音视频开发的项目经历,借此回顾总结项目经验,形成我的音视频知识体系,查漏补缺,展望未来。

3.音视频的可研究方向

3.1.传统领域

  • 协议转换

  • 编解码格式转换

  • 参数修改与裁剪、压缩

  • 音视频分离与合成

  • 播放器开发---全平台

  • 推流端开发

  • 融频技术---视频会议

  • 混音---语音会议

  • 回音消叫

3.2.图像处理

  • 去噪音

  • 去模糊

  • 超分辨率处理

  • 滤镜处理

3.3.图像识别检测

  • 车流量

  • 行为分析

  • 车牌识别

  • 人脸识别

  • OCR光学字符识别
  • 图片分类
  • 识别影片中的明星

3.4.图像分析理解

  • 基于文本的图像搜索

  • 图像描述生成

  • 生成图像问答

  • 以图搜图

4.我做过的音视频项目

4.1 基于DSS的列车视频监控系统

  • 项目描述:本项目是以无线网络环境,由于实际列车场景,前后端的硬件资源限制,现有环境无法满足抗丢包的需求。故基于Darwin Stream Server服务(一个标准的Linux C/C++应用,是一个优秀的项目,提供了良好的开发框架)开发一套二级视频转发系统(RTSP协议),解决由于移动网络所带来的视频丢帧、乱序、卡顿等问题,实现把列车里面的高清监控画面实时的传输到地面,并保证播放流畅,满足地面工作人员对列车内部环境的实时调看需求。关键技术:RTSP、RTP、RTCP,SDP、RUDP、

- 项目效果:负责视频转发系统抗丢包设计与插件开发,实现最多64路1080P高清视频播放流畅不卡顿(已投入使用)

4.2 基于RTMP协议的直播应用

- 项目描述:该项目可应用于日常生活、紧急情况、户外等场景,具有服务器一人直播多人观看的功能。基于IP技术架构,在架构设计上由主播端、观众端、服务端共3端组成。服务端包括2个:信令服务器、媒体服务器;主播端支持2种平台,Android和PC;观众端也支持2种平台,Android和PC。同时,一个主播的内容可以共享给多个观众同时观看,一个观众也可以观看多个主播的内容。核心技术原理是:音视频的采集、流媒体传输、音视频的渲染,简要包括以下流程:采集->编码->打包->传输->解包->解码-播放。在采集阶段,视频源来自于设备的摄像头,通过H.264编码成视频帧,进一步打包成RTMPPacket;音频源来自于设备的麦克风,通过AAC编码音频帧,进一步打包成RTMPPacket,调用底层RTMP SDK提供的接口,发送到中心流媒体服务器Media Server;当用户想观看某路直播时,RTMP SDK会主动向Media Server订阅视频源,可以接收到音频帧、视频帧,通知给上层进行下一步处理,如解码和播放,从而打通整个音视频源的传输流程。

- 项目效果:实现了可商业应用的点对多的直播功能,支持低延迟、高清、秒开技术,用户体验良好。

4.3 讯通APP\

  • 项目描述:是一款具有音视频特性功能的IM应用,其中的音视频功能,主要是以流媒体技术为基础,基于私有协议、FEC/QOS算法来实现抗丢包能力,通过点对多的音视频分发技术,实现主播和观众的用户体验。同时,使用秒开技术,实现播放端的快速打开与直播同步功能。在直播的视频源方面,是通过APP获取摄像头的画面资源,进一步进行H.264编码,通过SDK的接口,发送到流媒体服务;音频源方面,是通过采集移动终端设备的麦克风的PCM数据,进一步通过Android系统的MediaCodec编码生成AAC/OPUS格式,再通过SDK的接口,发送到流媒体服务。流媒体服务把接收到的每一个音视频帧,根据观众的数量,进行转发。

  • 项目效果:负责Android端的视频源、音频源的采集,编码,发送,同时负责播放端接收到媒体流后的解码工作,以及本地如何使用MediaCodec渲染到SurfaceView,和使用AudioTracker来播放声音。

5.我的音视频知识体系

5.1 流媒体协议

5.1.1 RTSP

  • 全称Real Time Streaming Protocol,实时流传输协议

- 流媒体协议

  • 公有协议,并有专门机构做维护

  • 一般传输的是ts,mp4格式的流

  • 一般需要2-3个通道,命令和数据通道分离

5.1.2 RTMP\

  • 全称Routing Table Maintenance Protocol(路由选择表维护协议)

  • 流媒体协议

  • Adobe的私有协议,未完全公开

  • 一般传输的是flv,f4v格式流

  • 一般在TCP一个通道上传输命令和数据

5.1.3 HLS\

  • 即超文本传送协议(ftp即文件传输协议)

  • HTTP将所有的数据作为文件做处理。http协议不是流媒体协议

  • 公有协议,并有专门机构做维护

  • 没有特定的流

  • 一般在TCP一个通道上传输命令和数据

  • 总结:RTSP RTMP HTTP都是在应用层;理论上RTSP/RTMP/HLS都可以做直播和点播,但一般做直播用RTSP/RTMP,做点播用HTTP。做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了。

5.2 流媒体服务\

5.2.1 DSS

  • DarwinStreamingServer 

  • RTSP

  • 官方为Apple

5.2.2 EasyDarwin

  • 在Apple开源流媒体服务器Darwin Streaming Server(v6.0.3)基础上进行开发和维护的免费开源、高效、易扩展的面向企业级的流 媒体平台框架

  • RTSP

  • 开源项目

  • 最新go版本

5.2.3 nginx-rtmp

  • 与nginx搭配可以作为RTMP流媒体服务

  • RTMP

5.2.4 SRS(Simple RTMP Server) 

  • 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群。

5.2.5 七牛云/阿里云/腾讯云等商业方案

  • 七牛云视频直播 (Pili) 是基于强大的全球化实时流网络、完善的客户端服务和云端服务,打造的端到端直播解决方案,提供低延迟、稳定流畅、高可用的一站式视频直播服务。

  • 在阿里云视频直播(ApsaraVideo Live)的基础上,对直播播放端通过SDK嵌入的方式集成阿里云直播新UDP协议,提供易接入、毫秒级别延迟、高并发、高清流畅的音视频直播服务。

  • 云直播(Cloud Streaming Services,CSS)依托腾讯强大的技术平台,将腾讯视频等核心业务底层能力开放给用户,为用户提供专业稳定快速的直播接入和分发服务,具有低延迟、高安全、高性能、易接入、多终端、多码率支持等特点。

5.3 音视频处理知识体系

  • ffmpeg:一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序

  • live555:偏向于底层通信协议,包括RTSP、RTP、HLS、RTMP等等

  • WebRTC:名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。

  • opus/aac:音频编码格式

  • 媒体存储技术:容器格式选型:MP4、AVI、Flv、M3u8等;M3u8格式的平台适应性;多路高并发性能与架构设计

  • 集群部署扩容:Redis、Docker+k8s

6.总结

    回望过去,我所参与的几个项目,主要承担音视频传输方面的工作比较多,较少涉及音视频处理方向。音视频的知识体系很大,每一个点深入去研究都需要耗费不小的精力,很多情况下,我只是停留在知道或了解这个技术,而且会使用这个技术,但技术背后的工作原理就不得而知。在深入研究技术和贴近工作生活本来就是一件事情的两个方面,需要取得一个平衡。在深入研究技术的同时,也不要忘了把技术应用起来,就是建立一个正向反馈。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论