流媒体(音视频、直播)的认识

我们日常能看到的视频、语音和现在比较流行的直播等,都是基于流媒体实现的,作为开发者,我们要想去彻底的准备或开发与视频、语音、直播相关的东西,了解其原理也是非常重要的。

什么是流媒体,为什么要用流媒体

流媒体就是指在Internet/Intranet上使用流式传输技术的连续时基媒体。

媒体一般都是很大的文件,我们在平常使用时必须先下载下来才能使用,大大浪费了我们的时间,流媒体就解决了这个问题,可以在数据发送时就能来时播放等。

采用了"流式传输"技术,文件象水流那样流动。文件不是一次读取发送所有的数据,而是首先在线路中发送音频或视频剪辑的第一部分。在第一部分开始播放的同时,数据的其余部分源源不断的流出,及时达到目的地供播放使用。为保证在阻塞造成网络速度下降的情况下播放不会发生中断,播放器在开始播放前先采集一小部分所谓缓冲的预备数据。如果数据流动速度保持足够快的话,播放是连续的。无论文件长30秒还是30分钟,用户只是在观看文件 前等上几秒钟生成这个缓冲数据

流媒体的原理

 流式传输的实现途径与过程

首先,多媒体数据进行预处理才能适合流式传输,这是因为目前的网络带宽对多媒体巨大的数据流量来说还显得远远不够。预处理主要包括两方面:一是降低质量;二是采用先进高效的压缩算法。

其次,流式传输的实现需要缓存。这是因为Internet以包传输为基础进行连续的异步传输,对一个实时A/V源或存储的A/V文件,在传输中它们要被分解为许多包,由于网络是动态变化的,每个包选择的路由可能不尽相同,故到达客户端的时间延迟也就不等,甚至先发的数据包还有可能后到。为此,使用缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,从而使媒体数据能连续输出,而不会因为网络暂时阻塞使播放出现停顿。通常高速缓存所需容量并不大。这是因为高速缓存使用环行链表结构来存储数据:通过丢弃已经播放的内容,"流"可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。

再次,流式传输的实现需要合适的传输协议。WWW技术是以HTTP协议为基础的,而HTTP又建立在TCP协议基础之上。由于TCP需要较多的开销,故不太适合传输实时数据,在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时声音数据。

流式传输的过程通常如下:

(1)、用户选择某一流媒体服务后,Web浏览器与Web服务器之间使用HTTP/TCP交换控制信息,以便把需要传输的实时数据从原始信息中检索出来;然后客户机上的Web浏览器启动A/V Helper程序,使用HTTP从Web服务器检索相关参数对Helper程序初始化。这些差数可能包括目录信息、A/V数据的编码类型或与A/V检索相关的服务器地址。

(2)、A/V Helper程序及A/V服务器运行实时流控制协议(RTSP),以交换A/V传输所需的控制信息。RTSP提供了操纵播放、快进、快倒、暂停及录制等命令的方法。

(3)、A/V服务器使用RTP/UDP协议将A/V数据传输给A/V客户程序,一旦A/V数据抵达客户端,A/V客户程序即可播放输出。

在流式传输中,使用RTP/UDP和RTSP/TCP两种不同的通信协议与A/V服务器建立联系,是为了能够把服务器的输出重定向到一个不同于运行A/V Helper程序所在客户机的目的地址。

了解完流媒体,改到我们客户端解码工作了->FFmpeg

FFmpeg是相当强大的多媒体编解码框架

当我们打开一个多媒体文件之后,第一步就是解复用Demux。

为了传输过程的方便,一般音频和视频会捆绑在一起压缩过后进行传输。所以我们解码的第一步就是将这些绑在一起的音频和视频流分开来,也就是传说中的解复用,所以一句话,解复用这一步就是将文件中捆绑在一起的音频流和视频流分开来以方便后面分别对它们进行解码

第二步就是解码。


Ffmpeg中Demux这一步是通过avformat_open_input()这个api来做的,这个api读出文件的头部信息,并做demux,在此之后我们就可以读取媒体文件中的音频和视频流,然后通过av_read_frame()从音频和视频流中读取出基本数据流packet,然后将packet送到avcodec_decode_video2()和相对应的api进行解码。

基于FFmpeg直播教程:http://allluckly.cn/%E6%8A%95%E7%A8%BF/tuogao46?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

基于FFmpeg的ijkplayer问题集:https://github.com/Bilibili/ijkplayer/issues

近期接触直播这方面的东西,先认识下基础,后期会更新新的学习进度,有这方面兴趣的可以加个好友。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • 什么是流媒体 所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。 流媒体又叫流式媒体,它是指商家用...
    大草原之夜阅读 792评论 1 5
  • 前言 大半年没写博客了,但我一直关注着互联网的动向,最近会研究很多东西,并分享,今年移动直播行业的兴起,诞生了一大...
    flyinskybiu阅读 6,431评论 1 25
  • 随着现代技术的发展,网络带给人们形式多样的信息,从第一张图片出现在网络上到如今各种形式的网络视频和三维动画,网络让...
    彬_仔阅读 2,904评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 什么是流媒体? 1.流媒体是指采用流的方式在Internet播放的格式。 2.流媒体指在Internet/Intr...
    司徒新新阅读 781评论 0 4