0
点赞
收藏
分享

微信扫一扫

音视频开发1. 基本概念及媒体协议


音视频开发1. 基本概念及媒体协议

  • ​​一、概述​​
  • ​​1. 应用场景​​
  • ​​2. 相关技术​​
  • ​​3. 一些概念​​
  • ​​(1) 编解码 codec​​
  • ​​(2) 容器​​
  • ​​(3) 采样率​​
  • ​​(4) 分辨率​​
  • ​​(5) 帧率 fps​​
  • ​​(6) 压缩​​
  • ​​4. 开源系统​​
  • ​​二、算法与协议​​
  • ​​1. 视频编码标准​​
  • ​​2. 主要流媒体协议​​
  • ​​三、网页播放音视频方案​​
  • ​​1. rtmp + 插件(非Flash)​​
  • ​​2. rtsp+插件​​
  • ​​3. Flash插件(jwplayer)​​
  • ​​4. 流媒体转为websocket​​
  • ​​5. webRtc​​

一、概述

本系列文章主要是收集与整理音视频直播、点播、监控等技术开发及应用,狭义上可特指流媒体的技术应用。

1. 应用场景

  • 直播
  • 点播
  • 语音、视频通话
  • 监控
  • 结合应用,如多媒体音视频会议系统

2. 相关技术

  • 网络通讯
  • 编码、解码
  • 推流、拉流

3. 一些概念

(1) 编解码 codec

对数据或信号进行变化的设备或程序。

(2) 容器

对多种媒体资源或字幕等进行包装。对数据进行容器化包装就称为封装,常见的封装格式是与文件扩展名相关的,如:​​*.mpg, *.avi, *.mov, *.mp4, *.rm, *.ogg or *.tta​

(3) 采样率

物理和数学概念,以一种速度提取数字信号,单位是赫兹Hz。

(4) 分辨率

通常指图像或视频的尺寸。

(5) 帧率 fps

视频格式每秒钟播放的静态画面数量。

(6) 压缩

对数字信号压缩体积,分为两种:

  • 无损格式,例如WAV,PCM,TTA,FLAC,AU,APE,TAK,WavPack(WV)
  • 有损格式,例如MP3,Windows Media Audio(WMA),Ogg Vorbis(OGG),AAC

4. 开源系统

ffmpeg 知名的流媒体开发工具包,2004年至2015年间由Michael Niedermayer主要负责维护。
VLC Media Player:开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件。

二、算法与协议

1. 视频编码标准

主要有:MPEG-n和 H.n 两种技术:

标准

年份

组织

说明

H.120

1984

ITU-T组织

H.261

1990

ITU-T

主要应用于视频会议、视频通话

MPEG1

1993

ISO /IEC

VCD使用这个压缩算法

H.262/MPEG-2 第二部份

1995

ISO / IEC 、ITU-T

DVD影碟(DVD-Video )、蓝光(Blu-Ray )影碟、数位视讯广播(DVB )、SVCD

H.263

1996

ITU-T

视讯会议、视讯通话、3G 手机视讯(3GP )

MPEG4

1999

ISO /IEC

MPEG的第4个版本

H.264/MPEG-4 AVC

2003

ISO / IEC 、ITU-T

蓝光(Blu-Ray )影碟、数位视讯广播(DVB )、iPod 视讯、高画质DVD(HD DVD )

H.265

2013

ITU

2. 主要流媒体协议

名称

推出机构

传输层协议

客户端

目前使用领域

劣势

RTSP+RTP

IETF

TCP+UDP

VLC, WMP

IPTV

RTMP

Adobe Inc.

TCP

Flash

互联网直播

苹果设备不提供原生支持

RTMFP

Adobe Inc.

UDP

Flash

互联网直播

MMS

Microsoft Inc.

TCP/UDP

WMP

互联网直播+点播

HTTP

WWW+IETF

TCP

Flash

互联网点播

实时性差、原生支持不好

hls(m3u8)

Apple

http

浏览器

直播

实时性差,延迟在10秒以上,分发HLS码流低,小文件分发不是很友好

总结:

  • PC/Phone+直播+实时性要求高:使用flash播放RTMP。
  • PC/Phone+直播+没有实时性要求:使用RTMP或者HLS均可。
  • PC/Phone+点播:使用HTTP或者HLS。
  • Phone+WEB+直播:HLS。

目前webRTC在web播放领域是后起之秀,发展迅猛。

其它协议:

  • H.323:是ITU-T第16工作组的建议,由一组协议构成,其中有负责音频与视频信号的编码、解码和包装;

三、网页播放音视频方案

1. rtmp + 插件(非Flash)

  • ckplayer
  • vlc 插件
  • quicktime
  • kurento
  • vgx

2. rtsp+插件

  • streamedia(支持Chrome无插件播放)
  • vlc player(不支持RTP/AVP传输的NAT穿孔)
  • quicktime
  • Realplayer(本身不支持H.264)

3. Flash插件(jwplayer)

  • Server(Red5) + 使用RTMP直播协议
  • ffmpeg + xuggle => rtsp转rtmp => flash插件
  • ​​ffmpeg + jwplayer​​

4. 流媒体转为websocket

  • ffmpeg + stream-server(nodejs脚本) + h5 Canvas显示
  • ​​ffmpeg + jsmpeg​​
  • ffmpeg + xuggle + h5 video
  • ​​ffmpeg + websocket(server) + streamedian.js(开源)​​

5. webRtc

主流浏览器已经支持,但H.265解码成熟方案不多见。

参考文章:

举报

相关推荐

0 条评论