rtp

音视频RTP数据包封装

廉价感情. 提交于 2019-11-30 21:12:50
对于语音通信而言,语音码率较低,添加适当冗余是对抗网络丢包的常见方式。冗余方式有多种,包括 RED , FEC 等都是冗余的一种,如果冗余份数较多,可以采取交织的方式实现。 RFC 3350 是RTP的基础标准协议, RFC 2198 是冗余数据RTP封装的标准协议, RFC 5109 是添加FEC数据的RTP封装标准协议。 RTP格式(RFC 3350) 文档地址: RTP: A Transport Protocol for Real-Time Applications RTP(Real-time Transport Protocol, 实时传输协议)是互联网上常见的处理媒体数据流的网络协议,包括单播和多播等多种场景下的网络环境中媒体数据的传输。RTP是一种应用层协议,一般使用UDP作为底层协议实现数据传输,但并不强制底层协议的选择。RTP不提供任何机制来保证实时的传输和服务质量保证,而是由底层的服务来完成。也就是说,它不保证可靠传输和按序传输,不假定下层网络是否可靠,不限制按照顺序传送数据包。 RTP一般与RTCP同时出现,端口号相邻。一般而言,RTP负责传输数据,RTCP用于传输控制信息,比如提供数据传输质量的反馈。RTCP为每个RTP源提供一个固定的识别符 CNAME 。当SSRC因重启或者冲突发生改变时,可以更加 CNAME 跟踪参与者;或者用 CNAME

RTP Client Application on Android Mobile Device

匆匆过客 提交于 2019-11-30 18:17:05
问题 Hey folks,i am developing a RTP client on an Android device which can play streaming videos from a server. I am confused regarding how should i start about? i am thinking of developing a web app, using HTML,CSS and Javascript, which can later be wrapped in Android.is this approach correct? does javascript support real time media player? please guide me, i am a fresher and completely clueless..:( 回答1: You should play your video with MediaPlayer. Of course you can prepare dedicated website that

OSI七层模型和TCP/IP四层模型(一)

廉价感情. 提交于 2019-11-30 17:57:23
一、概述 OSI模型(Open System Interconnection Reference Model,缩写为OSI),全名“ 开放式系统互联通信参考模型 ”,是一个试图使各种计算机在全世界范围内互联为网络的标准框架。1983年国际标准组织(ISO)发布了著名的ISO/ICE 7489标准,它定义了网络互联的七层框架,也就是开放式系统互联参考模型。 1.为什么需要协议 什么是协议(protocol)?通俗的来讲,协议是一种双方都明白或者必须遵守的事先约定,比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。协议可以更复杂,比如摩尔斯码(Morse Code),使用短信号和长信号的组合,来代表不同的英文字母。 同样,计算机之间的通信也要遵循不同层次的协议,来实现计算机的通信。早期的计算机网络,都是由各厂商自己规定一套协议,IBM,Apple,和MicroSoft都有自己的网络协议,比如MicroSoft的两台电脑用网线连起来,互相说话能听懂。但是MicroSoft和Apple的电脑连接起来说话就听不懂了,想想你和我微信聊天,我是MicroSoft电脑,你是Apple电脑,你发送的消息到我这里显示不了或者解析成另一个意思,这样通讯就不能进行了(通过上面的图我们可以看到

对话实录|华为云.通信云服务激活无限商业潜力

瘦欲@ 提交于 2019-11-30 12:58:01
在LiveVideoStackCon2019深圳音视频技术大会前夕,我们邀请到了华为云核心网产品线,高级架构师左俊老师接受采访,采访中左俊老师从自身十五年的架构师经验出发浅谈了自己对于近几年音视频通话技术的发展,并从覆盖场景、数据安全和视频质量审核等方面介绍了华为云通信云服务的优势。 文 / 左俊 整理 / LiveVideoStack LiveVideoStack:左俊你好,能否先向LiveVideoStack的读者介绍下自己,以及你目前主要的工作以及关注的技术方向? 左俊: 我目前主要的负责是华为云.通信云服务整个解决方案的架构和技术。华为云.通信云服务目前包括如下四个服务:视频通话服务、隐私保护通话服务、语音通话服务、短信服务。当下,我主要关注的有以下两点: 音视频方案中的效果及质量问题,这个是整个音视频解决方案最为基础的部分,华为在运营商市场实时音视频的成功实践,为解决互联网视频通话的效果和质量问题,提供有效的借鉴和支撑,这也是华为云.视频通话服务快速孵化的基础。 解决方案中的安全韧性及合法合规问题,虽然这不是基础业务的一部分,但是这个是客户能够获取持久保障的前提,华为很看重这一块,也能够保证向客户持续地提供可靠可信的服务。 此外还有系统的开放性灵活性,成本管理,客户的个性化服务等,也都是整个解决方案中不可或缺的一环。 LiveVideoStack

H264 NAL unit prefixes

你说的曾经没有我的故事 提交于 2019-11-30 07:39:19
I need some clarification on H264 NAL unit delimiter prefixes ( 00 00 00 01 and 00 00 01 ), I am using Intel Media SDK to generate a H264 and pack it into RTP. The issue is that so far I was looking only for 00 00 00 01 as a unit separator and basically was able to find only AUD,SPS,PPS and SEI units in the bitstream. Looking at the memory I saw that after the SEI there was a byte sequence 00 00 01 25 that could be a start of an IDR unit, but my search algorithm did not detect it because of a missing zero byte. Can anyone clarify the difference between 00 00 00 01 and 00 00 01 prefixes?

h264 RTP timestamp

天涯浪子 提交于 2019-11-30 07:34:01
I have a confusion about the timestamp of h264 RTP packet. I know the wall clock rate of video is 90KHz which I defined in the SIP SDP. The frame rate of my encoder is not exactly 30 FPS, it is variable. It varies from 15 FPS to 30 FPS on the fly. So, I cannot use any fixed timestamp. Could any one tell me the timestamp of the following encoded packet. After 0 milisecond encoded RTP timestamp = 0 (Let the starting timestamp 0) After 50 milisecond encoded RTP timestamp = ? After 40 milisecond encoded RTP timestamp = ? After 33 milisecond encoded RTP timestamp = ? What is the formula when the

How to fragment H264 Packets in RTP compliant with RFC3984

不打扰是莪最后的温柔 提交于 2019-11-30 05:10:20
I have the FFMPEG streaming baseline h264 video, which I have to encapsulate in RTP and send to SIP phones for their decoding. I am using Linphone with the h264 plugin for Windows and Mirial for the decoding progress. However, sometimes I get a huge frame size (3Kb ~ 9Kb) from the FFMPEG, which obviously doesn't fit in the MTU. If I send these frames "as is" and trusting IP fragmentation feature, some phones are able to play it well enough, but others choke and can't decode the stream. I think this is because the stream is not compliant with the RFC 3984 that specifies that packets that don't

Why Does RTP use UDP instead of TCP?

别来无恙 提交于 2019-11-30 02:54:29
I wanted to know why UDP is used in RTP rather than TCP ?. Major VoIP Tools used only UDP as i hacked some of the VoIP OSS. As DJ pointed out, TCP is about getting a reliable data stream, and will slow down transmission, and re-transmit corrupted packets, in order to achieve that. UDP does not care about reliability of the communication, and will not slow down or re-transmit data. If your application needs a reliable data stream, for example, to retrieve a file from a webserver, you choose TCP. If your application doesn't care about corrupted or lost packets, and you don't need to incur the

MYSQL备份与恢复

≯℡__Kan透↙ 提交于 2019-11-30 01:05:42
MYSQL备份与恢复 数据备份原理 数据备份属于数据容灾保护中的内容,所有的数据备份系统设计都基于这五个元素,备份源、备份目标、传输网络、备份引擎和备份策略。用户按照需要制定备份策略,使用定时任务执行备份脚本,使用备份引擎将需要备份的的数据从备份源通过传输网络传送到备份目标。 备份五元组: 1、 备份源 需要备份的数据统一称为备份源,可以是文本数据,音视频数据,也可以是数据库数据等等。 2、 备份目标 存放备份数据的位置,通常建议将备份数据存放在异机,或者是更远的数据中心,备份目标可以是在线的磁盘,磁盘阵列柜,也可以是磁带库或是虚拟带库。而备份目标所在的位置可以在同一个数据中心,也可以是容灾机房。 3、 传输网络 备份数据时使用的传输链路,可以是专线,以太网,Internet,×××等等,只要保证备份源与目标之间的路由可达即可。 4、 备份引擎 数据要能够从源到目标流动,就要有动力,就像是水要流动一样,这个动力来源就是备份引擎,像mysqldump ,nvbu,还有大量的备份软件都是备份引擎。 5、 备份策略 为了有效备份,并减少人为操作,应该制定完善的备份策略。通常全备与差备与增备相结合,备份的时间点应该尽量避开业务高锋期,通常在晚上执行,通过定时任务实现。 MYSQL 数据备份原理 mysql数据备份其实就是通过SQL语句的形式将数据DUMP出来,以文件的形式保存

Stream H.264 video over rtp using gstreamer

随声附和 提交于 2019-11-29 21:06:32
I am newbie with gstreamer and I am trying to be used with it. My first target is to create a simple rtp stream of h264 video between two devices. I am using these two pipelines: Sender: gst-launch-1.0 -v filesrc location=c:\\tmp\\sample_h264.mov ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5000 Receiver: gst-launch-1.0 -v udpsrc port=5000 ! rtpmp2tdepay ! decodebin ! autovideosink But with the first one (the sender) I got the following error: Setting pipeline to PAUSED ... Pipeline is PE*R*O L(LgIsNtG- l.a.u.n h-1.0:5788): CRITICAL **: gst_adapter_map: assertion `size > 0' failed