FMUSER更轻松地传输视频和音频!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷兰语
sq.fmuser.org ->阿尔巴尼亚人
ar.fmuser.org ->阿拉伯语
hy.fmuser.org - >亚美尼亚
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄罗斯语
bg.fmuser.org - >保加利亚
ca.fmuser.org ->加泰罗尼亚语
zh-CN.fmuser.org ->中文(简体)
zh-TW.fmuser.org - >中国(繁体)
hr.fmuser.org ->克罗地亚语
cs.fmuser.org ->捷克
da.fmuser.org ->丹麦语
nl.fmuser.org - >荷兰
et.fmuser.org ->爱沙尼亚语
tl.fmuser.org ->菲律宾
fi.fmuser.org ->芬兰语
fr.fmuser.org - >法国
gl.fmuser.org ->加利西亚语
ka.fmuser.org ->乔治亚
de.fmuser.org ->德语
el.fmuser.org - >希腊
ht.fmuser.org ->海地克里奥尔语
iw.fmuser.org ->希伯来语
hi.fmuser.org ->印地语
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰岛语
id.fmuser.org ->印尼语
ga.fmuser.org ->爱尔兰
it.fmuser.org - >意大利
ja.fmuser.org ->日语
ko.fmuser.org ->韩文
lv.fmuser.org ->拉脱维亚
lt.fmuser.org - >立陶宛
mk.fmuser.org ->马其顿语
ms.fmuser.org ->马来语
mt.fmuser.org ->马耳他语
no.fmuser.org - >挪威
fa.fmuser.org ->波斯语
pl.fmuser.org ->波兰语
pt.fmuser.org ->葡萄牙语
ro.fmuser.org - >罗马尼亚
ru.fmuser.org ->俄语
sr.fmuser.org ->塞尔维亚语
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亚
es.fmuser.org ->西班牙语
sw.fmuser.org ->斯瓦希里语
sv.fmuser.org ->瑞典语
th.fmuser.org - >泰国
tr.fmuser.org ->土耳其语
uk.fmuser.org ->乌克兰语
ur.fmuser.org ->乌尔都语
vi.fmuser.org - >越南
cy.fmuser.org ->威尔士语
yi.fmuser.org - >意第绪语
最近开始接触视频直播项目,我也总结了一些视频直播相关的概念,技术和解决方案。
首先,了解实时视频的概念。 几种常见的视频协议是:RTMP,http-flv,HLS,RTP / RTCP。
然后我们将解释直播和相关技术的全过程。
1,实时视频协议
在实况广播领域中,有两种类型的实况广播:交互式实况广播和非交互式实况广播。
非交互式现场直播(例如:现场游行,NBA现场直播,欧洲冠军联赛现场直播等)不是高度互动的,因此会延迟10秒或更长时间。 它的特点是来源相对较少,并且适用于多通道转码(用户可以根据网络状况观看)。
交互式实况广播的典型场景包括表演实况广播,游戏实况广播等。由于对主播和观众之间交互的要求很高,因此这些实况广播需要在5S之内延迟。 交互式实时广播的特征是:来源更多,不适合多通道转码,中间服务器仅作为传输角色。
实时内容传输的媒体是网络,需要相应的协议才能在网络中传输视频或音频。 目前,适用于现场场景的通用协议如下。
1. RTMP协议(HTML 5不支持,Flash支持)
RTMP是流媒体协议,它是Adobe的专利协议。 基于TCP,它在中国非常受欢迎。
流行原因:开源软件和开源库的支持稳定完整,最常用的流媒体和流媒体解决方案基本上可以稳定运行。 例如:开源librtmp推流库,服务端具有nginx RTMP插件,拉流具有ijkplayer播放库。
2. Http-flv协议(HTML 5不支持,闪存支持)
那就是使用HTTP协议来流媒体内容。 HTTP比RTMP更简单,更广为人知。 内容延迟也可以是2-5秒,并且打开速度更快,因为HTTP本身没有复杂的状态交互。 因此,从延迟角度来看,http-flv比RTMP更好。
3. HLS协议(HTML支持,Flash支持)
HTTP实时流传输是苹果提出的基于HTTP的流媒体传输协议。 HLS具有很大的优势:HTML5可以直接打开和播放; HTML3可以直接打开和播放。 这意味着实时链接可以通过微信和其他转发方式共享,而无需使用浏览器安装任何独立的应用程序,因此它非常流行。 社交直播应用,仅需要HLS。 基于HLS的实时流URL是一个m8u5文件,其中包含几个最近的小视频TS文件。 此播放模式的延迟相对较高(与TS文件的大小有关),并且在同一城市网络中可以实现7-XNUMX秒的延迟。
4. RTP / RTCP协议
实时传输协议是互联网上多媒体数据流的传输层协议。 RTCP传输交互控制的信令,而RTP传输实际的媒体数据。
RTP广泛用于视频监控,视频会议和IP电话,因为视频会议和IP电话的重要经验之一就是强大的实时内容。
与上述三种协议相比,RTP与它们之间的一个重要区别是默认情况下使用UDP协议传输数据,而RTMP和HTTP基于TCP协议。
使用场景分析:实时音视频流场景不需要可靠的保证,因此不需要重传机制。 实时查看图像和声音,在网络抖动时丢失一些内容,使图片模糊和启动画面并不重要。 为了重新传输,TCP将导致延迟和异步。 如果某个内容部分由于重传而在一秒钟后到达,则整个对话将延迟一秒钟。 随着网络抖动,延迟将增加到两秒或三秒。 如果客户端不处理回放,则直接广播体验将受到严重影响。 如何优化,将在下面的文章中进行解释。
结论:在选择直播协议时,如果选择RTMP或http-flv,则意味着存在2-5秒的内容延迟,但是就打开延迟而言,http-flv比RTMP更好。 HLS的内容延迟为5到7秒。 为实时广播选择RTP可以将实时广播延迟1秒。 但是,据我们所知,主要的CDN制造商不支持基于RTP的实时广播,因此当前的国内主流是RTMP或http-flv。
2,视频直播过程
与实况视频相关的技术过程是:实时视频流采集---视频流编码---视频流传输---视频流解码---视频播放。
1.实时视频捕获的想法
a)通过在Android相机拍摄预览中设置setpreviewcallback,可以实现onpreviewframe界面来实时捕获每个视频流的数据。
b)通过Android mediarecorder,将localsocket绑定到setoutputfile函数中。
c)流媒体服务器模式,使用ffmpeg或getstreamer获取摄像机视频。
2.视频压缩编码的实现
a)未经编码,原始的yuv420sp视频帧直接通过套接字传输。
b)JEPG将原始的yuv420sp视频帧压缩为H.264,然后进行传输。
c)H.264 / avc。 原始的yuv420sp视频帧被压缩为H.264,然后进行传输。 基于H264的常见开源编码器包括JM,x264,t264,hdot264等
d)。 mpeg4。 将原始的yuv420sp视频帧压缩为MPEG4,然后进行传输
3.视频传输的想法
一种) 。 插座传输
b)。 HTTP传输
C) 。 RTP / RTSP传输
d)。 流媒体服务器模式,例如live555等
4.视频解码的实现
一种) 。 编码对应的解码器
5.视频播放的想法
一种) 。 通过Android videoview
b)。 通过Android Mediaplay
C) 。 直接通过画布粘贴框架图像
|
输入电子邮件以获取惊喜
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷兰语
sq.fmuser.org ->阿尔巴尼亚人
ar.fmuser.org ->阿拉伯语
hy.fmuser.org - >亚美尼亚
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄罗斯语
bg.fmuser.org - >保加利亚
ca.fmuser.org ->加泰罗尼亚语
zh-CN.fmuser.org ->中文(简体)
zh-TW.fmuser.org - >中国(繁体)
hr.fmuser.org ->克罗地亚语
cs.fmuser.org ->捷克
da.fmuser.org ->丹麦语
nl.fmuser.org - >荷兰
et.fmuser.org ->爱沙尼亚语
tl.fmuser.org ->菲律宾
fi.fmuser.org ->芬兰语
fr.fmuser.org - >法国
gl.fmuser.org ->加利西亚语
ka.fmuser.org ->乔治亚
de.fmuser.org ->德语
el.fmuser.org - >希腊
ht.fmuser.org ->海地克里奥尔语
iw.fmuser.org ->希伯来语
hi.fmuser.org ->印地语
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰岛语
id.fmuser.org ->印尼语
ga.fmuser.org ->爱尔兰
it.fmuser.org - >意大利
ja.fmuser.org ->日语
ko.fmuser.org ->韩文
lv.fmuser.org ->拉脱维亚
lt.fmuser.org - >立陶宛
mk.fmuser.org ->马其顿语
ms.fmuser.org ->马来语
mt.fmuser.org ->马耳他语
no.fmuser.org - >挪威
fa.fmuser.org ->波斯语
pl.fmuser.org ->波兰语
pt.fmuser.org ->葡萄牙语
ro.fmuser.org - >罗马尼亚
ru.fmuser.org ->俄语
sr.fmuser.org ->塞尔维亚语
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亚
es.fmuser.org ->西班牙语
sw.fmuser.org ->斯瓦希里语
sv.fmuser.org ->瑞典语
th.fmuser.org - >泰国
tr.fmuser.org ->土耳其语
uk.fmuser.org ->乌克兰语
ur.fmuser.org ->乌尔都语
vi.fmuser.org - >越南
cy.fmuser.org ->威尔士语
yi.fmuser.org - >意第绪语
FMUSER更轻松地传输视频和音频!
联系我们
分类目录
订阅电子邮件