流媒体相关知识点概述

GB/T28181流媒体相关协议详解 28181协议规范中涉及到SIP、SDP、RTP、RTCP、RTSP等应用层协议,其中SIP+XML主要用于消息交互,SIP+SDP主要用户视频会话,RTP/RTCP主要用于媒体流传输控制,RTSP主要用户录像回放。本文主要介绍28181实时视频的流程 阅读详情

流媒体

流媒体,又叫流式媒体,是边传边播的媒体,是多媒体的一种。边传边播是指媒体提供商在网络上传输媒体的同时,用户一边不断地接收并观看或收听被传输的媒体。“流”媒体的“流”指的是这种媒体的传输方式(流的方式),而并不是指媒体本身。流媒体分为直播和点播,被广泛运用于在线直播、视频点播、远程教育、实时视频会议等领域。

流媒体协议

流媒体协议包括RTP,RTCP,RTMP,MMS,HLS,HTTP-FLV等。通常来说点播使用的都是HTTP协议,直播主要用的是RTMP,HLS,HTTP-FLV等。

  • RTMP:是Adobe公司为Flash/AIR平台和服务器之间音、视频及数据传输开发的实时消息传送协议,协议建立在TCP协议之上。RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。RTMP是目前最主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择。RTMP基于flash无法在iOS的浏览器里播放,但是实时性比HLS要好。

  • HLS:是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,iOS和 Android 都天然支持这种协议,配置简单,直接使用video标签即可。HLS点播基本上就是常见的分段HTTP点播,不同在于它的分段非常小。HLS直播的原理是将视频分成5-10秒的小分片,然后用m3u8索引表进行管理,由于客户端下载到的视频都是5-10秒的完整数据,故视频的流畅性很好,但由于分段推送的技术特点,决定了HLS的延迟一般会高于普通的流媒体直播协议。

协议优点缺点播放延时
RTMP1.速度快,误码率低,延迟低 2.协议在制定的时候就考虑到很多底层的优化 3.消息块的传输能够提供更加稳定的直播环境1.不支持HTML5直播、浏览器推送 2.开发难度大,门槛较高 3.硬件要求相较于HLS较高1s-3s
HLS1.手机浏览器支持度高 2.HLS协议客户端支持简单,只需要支持HTTP请求即可,HTTP协议无状态,只需要按顺序下载媒体片段即可 3.网络兼容性好,HTTP数据包也可以方便地通过防火墙或者代理服务器1.相比RTMP这类长连接协议,HLS延时较高,难以用到直播场景 2.对于点播服务来说,由于海量小分片在文件分发,对一致性缓存,存储等挑战性较大10s-30s

直播的推流和拉流

  • 推流:指的是把采集阶段封包好的内容传输到服务器的过程。
    流程如下:
    1.经过输出设备(AVCaptureVideoDataOutput)得到原始的采样数据–视频数据(YUV)和音频数据(AAC)
    2.使用硬编码(对应系统的API)或软编码(FFMpeg)来编码压缩音视频数据;
    3.分别得到已编码的H.264视频数据和AAC音频数据
    4.根据不同的封装格式(如FLV、TS、MPEG-TS)
    5.使用HLS协议的时候加上这一步(HLS分段生成策略及m3u8索引文件)
    6.通过流上传到服务器
    7.服务器进行相关协议的分发

  • 拉流(播放):指服务器已有直播内容,用指定地址进行拉取的过程。根据协议类型与服务器建立连接并接收数据
    流程如下:
    1.解析二进制数据,从中找到相关流信息
    2.根据不同的封装格式(如FLV、TS)解复用(demux)
    3.分别得到已编码的H.264视频数据和AAC音频数据
    4.使用硬解码(对应系统的API)或软解码(FFMpeg)来解压音视频数据
    5.经过解码后得到原始的视频数据(YUV)和音频数据(AAC)
    6.因为音频和视频解码是分开的,所以我们得把它们同步起来,否则会出现音视频不同步的现象,比如别人说话会跟口型对不上
    7.最后把同步的音频数据送到耳机或外放,视频数据送到屏幕上显示

一个简易的流媒体测试工具 使用live555的rtsp客户端静态库(2014.12.17版本)实现的一个多线程的流媒体误码率测试小工具,程序代码使用Qt4.8.6编写 其中压缩文件中的bin目录是已经编译好的程序,windows程序使用QtCreator + Vs2008编译,linux程序使用QtCreator + gcc4.3.2编译 sms_test/gui_sms_test是程序源码; sms_test/live是live555的头文件以及静态库 sms_test/ns_log是一个日志记录动态库 这个工具是本人突击研究了一周live555的示例程序写的,免费提供下载,其中的bug估计不少,如果你发现并修改了其中的bug,希望也能发送给我一份,再次谢过! 立即下载

相关推荐

一文带你弄懂thermal governor IPA

当current temp < target temp时,使用k_pu,当current temp >= target temp时,使用k_po。如果current_temperature = switch_on_temp时,则k_p = k_pu,这时Pmax。如果current_temperature = target_temp时,则k_p = k_po,这时Pmax。2、解析dts,获得switch_on_temp和target_temp。3、初始化k_pu/k_po/k_i/k_d的常数。

yxw0609131056的博客 1245

关于流媒体的知识总结

流媒体的核心特点是。

qq_28576837的博客 4324

别再踩坑了!Vue3 + Vant 手把手教你搞定飞书网页应用免登(SSO),附完整代码和重定向URL配置

本文详细介绍了如何使用Vue3和Vant实现飞书H5应用的免登(SSO)功能,包括飞书后台配置的关键细节、Vue3前端实现的最佳实践以及常见问题排查指南。特别针对重定向URL配置、安全设置和错误处理等常见陷阱提供了解决方案,并附有完整代码示例和性能优化建议。

weixin_29323551的博客 405

流媒体及直播相关知识

本文主要讲解流媒体及其直播相关知识,所涉及的知识内容比较浅显,主要是做个简单的了解。

明天你好的博客 2689

Jetson Thor平台JP7.0版本96712 GMSL相机驱动调试记录

摘要:本文档记录了在Thor Custom Board (JP7.0GA)上配置GMSL摄像头时遇到的视频流问题及调试过程。问题表现为视频设备(/dev/video11)能正常创建,但获取视频时出现"Internal data stream error",而相同配置在AGX Orin JP6.0上运行正常。通过梳理硬件拓扑、v4l2-ctl测试、提升时钟频率及分析内核日志,发现VI引擎未接收到帧数据包。调试步骤包括检查设备树冲突、调整I2C总线配置、修正通道名称,最终通过屏蔽传感器启动时

jzwjzw19900922的博客 1109

ADRC自抗扰PD+ESO控制(博途SCL源代码)

文章浏览阅读119次。线性自抗扰控制(LADRC)系统算法框图-优快云博客文章浏览阅读335次。NLADRC自抗扰控制从Simulink仿真到PLC控制实现_自抗扰控制器 simulink仿真-优快云博客本文介绍了如何将ADRC自抗扰控制算法从Simulink仿真应用到PLC控制中,包括Simulink框图、TD微分器模型、MATLAB函数的使用、SCL控制代码,以及非线性状态误差反馈控制率的实现。ADRC自抗扰PD+ESO控制(CODESYS测试+完整ST代码)-优快云博客。

RXXW_Dor的博客 1316

流媒体技术介绍

流媒体)技术,是指将一连串的多媒体数据压缩后,经过互联网分段发送数据,在互联网上即时传输影音,以供用户观赏的一种技术。在流媒体技术出现之前,人们必须要先下载多媒体内容到本地计算机,等待完整的多媒体内容下载完成之后,才能够欣赏多媒体的内容。流媒体技术的出现,使人们只需经过几秒或十几秒的启动延时即可欣赏媒体内容,而无需再等待媒体内容完全下载完成了。流媒体技术使得数据包可以像流水一样发送,如果不使用此技术,用户就必须先下载整个媒体文件,而后才能使用多媒体数据。

liitdar的博客 2万+

AI大模型探索之路-认知篇1-全景透视:揭秘AIGC技术的进化之路

随着人工智能技术的突飞猛进,内容创作方式的发生了革命性的转变;从早期专业人员主导的内容生产,到现如今生成式人工智(AIGC)能创作时代;本篇文章主要讲解AIGC技术的演变历程。

寻道AI,探索AI无限可能! 1648

流媒体相关技术介绍

1、流媒体简介 流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件,这对于实时性要求比较高的场景而言,显然是不现实的,所以流媒体技术为此孕育而生。 传统的视频监控、IPTV,以及这几年兴起的视频直播、网络授课都属于流媒体的范畴,从广义上来讲,视频通话,视频会议也属于流媒体。 2、视频监控 2.1 传统解决方案的现状和挑战 视频监控是流媒

lixiaowu119的博客 1173

ThingsBoard-阿里云短信规则节点

由于Thingsboard平台国内只支持短信服务,那我们运维人员去及时接收邮箱肯定是没有短信来的方便的,在这基础上,需要自己从规则链入手,自定义一个支持阿里云短信服务的规则节点。

weixin_67440240的博客 2094

筑基篇第9节:CUDA内存管理API进阶

CUDA多维内存管理与零拷贝技术 本文介绍了CUDA中高效处理多维数据的内存管理技术。对于二维数据,使用cudaMallocPitch可确保内存对齐访问,提升75%的带宽利用率;三维数据则通过cudaMalloc3D实现切片对齐。配套的cudaMemcpy2D/3D函数能高效处理数据拷贝。此外,零拷贝内存技术允许内核直接访问主机内存,避免显存拷贝开销。这些技术对图像处理、科学计算等应用至关重要,能显著提升多维数据处理的性能。

PeterPan的博客 82

Pion流媒体服务测试

项目原因,测试了Pion流媒体服务器,将测试过程记录一下,方便日后查阅。 Pion:A pure Go implementation of the WebRTC API.

eennddyy的博客 5003

5.30华为OD机试真题 新系统 - 链表数字游戏 (Java/Py/C/C++/Js/Go)

5.30华为OD机试真题 新系统 - 链表数字游戏 (Java/Py/C/C++/Js/Go)

算法大师! 1117

流媒体知识点概述

流媒体 流媒体,又叫流式媒体,是边传边播的媒体,是多媒体的一种。边传边播是指媒体提供商在网络上传输媒体的同时,用户一边不断地接收并观看或收听被传输的媒体。“流”媒体的“流”指的是这种媒体的传输方式(流的方式),而并不是指媒体本身。流媒体分为直播和点播,被广泛运用于在线直播、视频点播、远程教育、实时视频会议等领域。 流媒体协议 流媒体协议包括RTP,RTCP,RTMP,MMS,HLS,HTTP...

weixin_30778805的博客 170

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

流媒体技术概述

一、流媒体定义 所谓流媒体,是指采用流式传输的方式在Iternet播放的媒体格式。流媒体又称流式媒体,是将普通多媒体,如音频、视频、动画等,经过特殊编码,使其成为在网络中使用流式传输的连续时基媒体,以适应在网络上边下载边播放的方式。其具有连续性、实时性、时序性三个特点。在这个过程中,网络上传输的一系列相关的数据包称为流(Stream)。 二、流媒体特点 1.启动延时大幅度地缩短 用户不用等待所有内...

XBlog 8642

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

流媒体传输协议之概述

流媒体网络协议一、流媒体二、流媒体协议 一、流媒体 媒体指的是承载信息的载体,而流媒体就是把媒体文件流化、串行化,已达到分段分发、分段播放的目的。流媒体的概念如下: 流媒体(Streaming media)是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网络上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。 流媒体...

Joker_N的博客 1174

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

安防流媒体概述

流媒体技术最早出现在互联网,指在Internet/Intranet中使用流式传输技术的连续时基媒体,如:音频、视频或多媒体文件。使用流媒体技术可以避免文件信息下载后再播放的尴尬,并且实时性较好,无需长时间的下载等待,特有的预览和随时的连接资源给互联网用户带来了极大的便利性。     在安防领域,近年来数字化系统的大规模推广和使用,给流媒体技术的应用带来了机会。流媒体技术可实现低带宽环境下提供

erin45的专栏 2774

【网络通信 -- 直播】流媒体直播基础知识点总结

【网络通信 -- 直播】流媒体直播基础知识点总结 参考致谢 本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。 【1】福优学苑 -- 音视频资料 ...

CopperSun 技术博客 1263

流媒体及FLV播放器相关知识点

 <span lang="EN-US" style="font-size:14.0pt;mso-bidi-font-family:宋体">一、        <span style="font-size:14.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times N

Jaytse的专栏 1303

[总结]RTMP流媒体技术零基础学习方法

本文主要总结一些我在学习RTMP流媒体技术过程中积累的经验。也为后来学习RTMP流媒体技术的人们一个参考。本文力图从简到难,循序渐进的介绍RTMP流媒体技术的方方面面,先从应用说起,逐步深化剖析相关工程的源代码。看完本文的话应该会对RTMP流媒体技术有比较完整的了解。 0.背景知识 本章主要介绍一下RTMP流媒体技术都用在了哪里(在这里仅列几个我所知的,其实远比这个多)。说白了就是为了

雷霄骅(leixiaohua1020)的专栏 15万+

流媒体及流媒体传输协议简介

流媒体(streaming media):是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。 多媒体兼指多媒体信息和多媒体技术,并以后者居多。多媒体信息是指集数据、文字、图形与图像为一体的综合媒体信息;多媒体技术则是将计算机技术与通信传播技术融为一体,综合处理、传送...

网络资源是无限的 1万+

流媒体相关

起始码之后是每一个NALU的header,H264之所以要定义NALU,是因为NALU的头里面有H264相关的信息,NALU头里面主要带着这个数据单元的类型,如是否IDR、是否SPS、PPS,是否是分块的SLICE ABC,指示是否码流结束,指示这个NALU的重要程度等等。在每个关键帧之前发送的头信息,分开两个RTP发过来,可以认为是I帧的一部分,是两个独立的NALU,只有header,没有body,类似的NALU还有分界符NALU,放在PES和ES中间作为PES和ES的分隔点。

tang063的专栏 586

流媒体相关介绍

流媒体相关介绍一、流媒体主要实现方式二、流媒体技术2.1 流媒体2.2 直播2.3 流协议2.3.1 HLS 协议2.3.2 RTMP 协议2.3.3 RTSP 协议2.3.4 MPEG-DASH2.3.5 WebRTC 协议2.4 服务器端技术2.4.1 GStreamer2.4.2 Live5552.4.3 其它三、HTML5媒体标签3.1 audio3.2 video3.3 canvas四、MSE4.1基于 MSE 的框架4.1.1 wfs4.1.2 flv.js4.1.3 Streamedian五、

爱是与世界平行 1819

go srs 流媒体服务器_简述SRS流媒体服务器相关技术

0.引言阅读本文前,一定要阅读这篇文章,<>,能够帮助你,快速搭建Srs流媒体服务器,可以用作后期的学习。Srs4.0流媒体支持的技术。Srs官网:https://github.com/ossrs/srs推流端支持(1)RTMP(2)HLS(3)WebRTC(4)SRT(5)GB28181拉流端支持(1)RTMP(2)HLS(3)WebRTC(4)SRT(5)GB28181注意:不管推...

weixin_42360467的博客 953

流媒体相关知识介绍及其RTP应用

一、流媒体简介随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声音、

人的一生应当这样度过:当他回首往事时,不因虚度年华而懊悔,也不因碌碌无为而羞愧! 1972
上一篇: 基于WebSocket协议的性能测试
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值