首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏码农心语

    深入理解nginx mp4流媒体模块

    它通过减少客户端和Web服务器之间的交互,降低额外数据消耗,显著减少流媒体播放的启动时间。 以下是一个简单的配置示例: location /videos/ { root html; mp4; # 开启mp4流媒体功能 mp4_buffer_size , 0, NULL },   这个指令开启mp4流媒体功能,从以上定义可以知道这个指令只能在location中配置。    譬如,对于完整的MP4文件分析,我们可以认为完整的MP4本身就是一个大容器,那么这么来调用: ngx_http_mp4_read_atom(mp4, ngx_http_mp4_atoms, mp4->end 容器下面的子容器定义是否包含刚刚读取到的名字为atom_name的atom 如果找到了,则调用前面注册的回调函数 如果没有找到,则忽略之,本模块不用关心,也不是流媒体播放所必须的

    2.3K10编辑于 2024-04-09
  • 来自专栏直播+

    直播软件开发科普之流媒体介绍

    直播软件开发编解码 硬编解码 通过硬件实现编解码,减轻CPU计算的负担,如GPU等 软编解码 如 H264、H265、MPEG-4等编解码算法,更消耗CPU 数据优化 数据优化和编解码算法息息相关,一般而言 视频帧大小 一般I 帧的压缩率是7,P 帧是20,B 帧可以达到50 (数据不精确) P帧大概是3~4KB (480P, 1200k码率, baseline profile) 音频帧大小 (采样频率( Hz)* 采样位数(bit)* 声道数)/ 8 48000hz大概经过AAC压缩后,应该是12KB/s左右 流媒体传输协议 直播软件开发常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP ,可实现流媒体的直播和点播。 相对于直播软件开发中常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议等,HLS直播最大的不同在于,直播客户端获取到的,并不是一个完整的数据流。

    1.8K20发布于 2020-09-16
  • 来自专栏Java经验总结

    自己开发一个电视----流媒体之JavaCV

    流媒体到底是什么? 百度百科上是这么讲:“流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术 从一开始的 2G 的全文本,到 3G 的图文,到 4G 的直播和短视频,以及未来 5G 的VR。我们只知道享受,并没有关注过技术的发展。 刚入职一家公司,做金融的,而我所在的部门事金融新媒体部门。 所以不得不关注这方面的技术,然后各种新词开始满天飞 流媒体、JavaCV、OpenCV、FFmpeg 啥都是啥?我母鸡呀! 然后开始恶补一些知识,身为 Java 的我当然最关注 JavaCV 。 JavaCV 事开源的,这事我们 Java 开发人员最大福利。站在巨人的肩膀上摘葡萄。JavaCV 的地址是 https://github.com/bytedeco/javacv 。

    2.9K21发布于 2021-06-29
  • 来自专栏菩提树下的杨过

    开源流媒体服务器SRS学习笔记(4) - Cluster集群方案

    单台服务器做直播,总归有单点风险,利用SRS的Forward机制 + Edge Server设计,可以很容易搭建一个大规模的高可用集群,示意图如下

    4K40发布于 2019-09-12
  • 来自专栏用户7445706的专栏

    关于直播平台开发中流媒体传输,重点干货分享

    随着近年来直播行业的飞速发展,直播平台开发的技术日益成熟,直播系统的应用场景也越来越广泛,也离不开流媒体传输的技术支持,本文就主要介绍了当前主流的流媒体传输中推流端及播放端分别需要几步。 一、什么是流媒体直播传输 在直播平台开发中,流媒体传输就是将收集到的整个音视频信息等多媒体文件,通过一种特殊的压缩方法,分成一个压缩包,这些压缩包通过服务器连续实时地发送给最终用户。 现如今随着直播平台开发中流媒体技术的快速发展,改变了以往电视媒体的“推”式传播,转变为用户可选择的“拉”式传播,不同的用户群体的兴趣点也不同,可选择性的观看。 4.推流:推流端的最后一步也是直播平台开发中流媒体传输推流端最关键的一步,通过推流工具将编码后的音视频数据推流至服务器,推流端的任务到此结束。 上述就是直播平台开发中流媒体传输中推流端及播放端分别需要几步,这就是流媒体协议的使命,随着未来技术的不断提升,将会开发出更多可能性。

    80810发布于 2020-12-28
  • 来自专栏直播知识

    直播平台开发,常用流媒体和视频传递方法

    一、直播平台开发关于流媒体的基础知识 1.流媒体开发,负责网络层的传输,协议层负责网络打包,封装层负责编解码数据的封装,编码层负责图像、音频压缩 2.帧数,每一帧代表一副静止的画面 3.GOP,画面组 直播平台开发的直播数据中,其实就是在传递一组图片,包括I帧、P帧、B帧等,当用户第一次观看时,会寻找I帧,而播放器回到服务器寻找到最近的I帧反馈给用户,因此GOP增加了端到端之间的延迟 4.码率,图片进行压缩后每秒显示的数据量 x宽度 7.视频文件格式,文件的后缀代表了文件的格式,如avi、mp4等,根据格式不同,打开的方式也不同,为了方便用户观看,直播平台开发会统一把视频更改成mp4格式 Command-Key_Hb0kJaAqWbZP.jpeg 3.编码,视频压缩编码标准,对视频进行压缩的编码技术,比如H.264常用的视频编码技术,将视频像素数据压缩成视频码流,从而降低视频的数据量,不经压缩的视频体积过大会影响传输的速度 4.推流,常用的流媒体传输协议 RTMP,足以应对现在各个播放端口需要的播放协议,也是直播平台开发最常用的传输协议 直播平台开发用到的流媒体、视频传递等方面的知识远不止这些,不过对想要初步了解直播平台开发的运营商来说已经足够了。

    1.2K10发布于 2020-11-11
  • 来自专栏IMWeb前端团队

    流媒体加密

    流媒体加密技术原理 看视频分为两种,看点播和看录播。 要看点播可以通过下载完整个视频后再看,或者通过流媒体边下边看。 看直播只能通过流媒体看最新的画面。 加密流媒体的技术很少,也很难找到学习资料,本文主要介绍流媒体加密技术。 常见的应用与浏览器播放的流媒体传输协议有: HLS:Apple 推出的基于 HTTP 协议的 MP4 分片传输协议,可用于点播和直播场景。 流媒体加密原理 可以看出一个规律这些流媒体传输协议都必须把视频流拆分成连续的小块之后再被传送,只不过分块的大小和视频容器的格式不一样而已。 HLS 加密 HLS 是目前最成熟的支持流媒体加密的能应用在浏览器里的流媒体传输协议,HLS 原生支持加密,下面来详细介绍它。

    2.3K31发布于 2019-12-04
  • 来自专栏海之滨云视频和流媒体技术

    Android流媒体开发之路二:NDK开发Android端RTMP直播推流程序

    NDK开发Android端RTMP直播推流程序 经过一番折腾,成功把RTMP直播推流代码,通过NDK交叉编译的方式,移植到了Android下,从而实现了Android端采集摄像头和麦克缝数据,然后进行 开发思路 首先,为什么要用NDK来做,因为自己之前就已经实现过RTMP推流、RTMP播放、RTSP转码等等各种c++实现的流媒体项目,有很成熟的代码模块。 进行硬件编码,也可以通过x264进行软件编码,这里因为要复用以前的代码,决定使用软件编码来验证 RTMP协议封装,这部分代码,直接使用之前的C++代码即可,本身就是平台无关的,NDK也是linux环境开发 具体可以参考我之前的文章“C++实现RTMP协议发送H.264编码及AAC编码的音视频” 程序框架 根据我的开发思路,程序框架就显而易见了: ? 关于Camera2接口获取摄像头数据,可以参考之前的文章“Android流媒体开发之路一:Camera2采集摄像头原始数据并手动预览”,不同的是,那篇文章里直接使用ImageReader的Surface

    2.8K60发布于 2018-05-11
  • 来自专栏海之滨云视频和流媒体技术

    Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器

    基于NDK开发Android平台RTSP播放器 最近做了不少android端的开发,有推流、播放、直播、对讲等各种应用,做了RTMP、RTSP、HTTP-FLV、自定义等各种协议,还是有不少收获和心得的 我这边做,核心模块和核心代码部分,都是基于NDK,用C++开发的,然后将so动态库,在Android java环境中使用,这个既能保证核心部分的代码性能,也能最大程度复用之前写的流媒体相关的大量代码,实践证明 这篇文章里,我打算描述一下我对于开发Android端RTSP播放器的程序框架,和设计思路,有相关需求的,希望能借此扩展下思路。 我在之前的一篇文章里也写了这部分,可以参考一下:"NDK开发Android端RTMP直播推流程序"。1. 4.当需要回调给java层,让EGL来渲染画面时,需要用到c++回调Java的技术手段。

    3.4K20编辑于 2023-04-06
  • 来自专栏IMWeb前端团队

    流媒体加密

    流媒体加密技术原理 看视频分为两种,看点播和看录播。 要看点播可以通过下载完整个视频后再看,或者通过流媒体边下边看。 看直播只能通过流媒体看最新的画面。 加密流媒体的技术很少,也很难找到学习资料,本文主要介绍流媒体加密技术。 常见的应用与浏览器播放的流媒体传输协议有: HLS:Apple 推出的基于 HTTP 协议的 MP4 分片传输协议,可用于点播和直播场景。 流媒体加密原理 可以看出一个规律这些流媒体传输协议都必须把视频流拆分成连续的小块之后再被传送,只不过分块的大小和视频容器的格式不一样而已。 HLS 加密 HLS 是目前最成熟的支持流媒体加密的能应用在浏览器里的流媒体传输协议,HLS 原生支持加密,下面来详细介绍它。

    5.3K101发布于 2018-01-08
  • 来自专栏TSINGSEE青犀视频

    EasyStreamClient对接海康流媒体V4.X—SDK结构体定义说明

    我们前期通过EasyStreamClient对接海康流媒体V4.X实现了无插件播放,在之前的博文中,我们也分享了SDK对接的关键函数以及错误码定义,本文我们分享一下对接海康流媒体V4.X SDK 结构体的定义 sessionhandle 会话句柄 userdata 用户自定义数据 errCode 错误码 param1 错误信息结构体(实现参见示例代码) param2 暂时未定义 param3 暂时未定义 param4 int sessionhandle, void* userdata, int errCode, void* param1, void* param2, void* param3, void* param4) ; (2)原始数据回调说明: /**************************/ /*原始数据(从流媒体服务器接收的数据)回调函数参数定义*/ /************************* pStreamClientPsDataFunc)(int sessionhandle, void* userdata, int datatype, void* pdata, int datalen); (4)

    87730发布于 2021-09-30
  • 来自专栏TSINGSEE青犀视频

    EasyStreamClient对接海康流媒体V4.X—SDK对接关键函数记录

    之前我们通过EasyStreamClient对接海康流媒体V4.X实现了无插件播放,在这其中还有很多SDK中关键的函数需要注意,本文对这些函数做一个总结,大家可以参考。 同时本文附带了海康流媒体 V4.X SDK 错误码定义说明,大家也可以对照错误码的定义来进行局部修改和调试。 (4)返回值: 成功时返回 0,失败返回错误码,参见流媒体 4.3 客户端错误码文档。 (4)返回值: 成功时返回 0,失败返回错误码,参见流媒体 4.3 客户端错误码文档。 (5)备注: 当设置超时时间是 0 秒时,接口内部会自动改为 1 秒。 附:海康流媒体 V4.X SDK 错误码定义说明 1、函数返回值错误码定义 #define STREAM_CLIENT_NO_RTSP_SESSION -3 ///< 流媒体客户端会话已经用尽 #define

    1.6K50发布于 2021-09-30
  • 来自专栏布谷科技

    直播系统开发搭建部署中的流媒体技术

    直播热潮尚未褪去,而直播系统开发究竟是如何实现的?能够支持直播一直火下去的直播系统开发究竟是怎么样的呢?直播的实现与直播系统开发中的流媒体是分不开的,想要知道如何实现直播,就要先了解流媒体。 什么是流媒体服务器? 流媒体服务器是流媒体应用的核心系统,是运营商向用户提供视频服务的关键平台。流媒体服务器的主要功能是对流媒体内容进行采集、缓存 、调度和传输播放。 流媒体服务器直接承担流媒体数据的输出,是整个流媒体系统的核心,它的功能、性能、运行支撑能力直接决定了一个大型流媒体系统的健壮程度。 (4)播放器:各操作平台用于显示流失数据的播放器。客户端从服务器接收到所需的流媒体数据后,播放器会对这些流媒体数据进行解协议、解封装、解码、音视频同步这几个环节。 直播系统开发技术的出现实现了直播,直播的发展必将带动直播系统开发技术的发展。

    1.6K50发布于 2019-09-19
  • 来自专栏直播+

    视频直播源码开发中的流媒体协议:rtmp协议

    这个字段占用4字节。 长度 消息的有效长度。如果消息头不能被忽略,它应该包括长度。这个字段在块头中占用3字节。 类型ID 各种类型的协议控制消息的ID。 版本0-2用在早期的产品中,现在已经被弃用;版本4-31被预留用于后续产品;版本32-255(为了区分RTMP协议和文本协议,文本协议通常以可打印字符开始)不允许使用。 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 时间(4字节) 本字段必须包含时间戳,取值为接收对端发送过来的握手包的时刻。 随机数据(1528字节) 本字段必须包含对端发送过来的随机数据。

    1.2K30发布于 2020-09-03
  • 来自专栏流媒体技术

    Go语言实现的流媒体服务器开发框架

    FMS(全称Flash Media Server),到Red5(java语言开发),到CrtmpServer(C++开发),让我对流媒体服务器的基本原理有了深刻的认识。 后来转而使用golang写的gortmp作为server,同样对其进行了扩展,而且进展十分顺利,golang的开发效率令人惊叹,而且其协程的特性很完美的处理了流媒体服务器的并发的场景。 所以使用golang写的流媒体服务器项目很多,github上随便一搜就有很多,比如livego、joy4等。 综上所述,本人在吸收了以上诸多流媒体服务器的设计后,完成了Monibuca这款golang编写的流媒体开发框架的编写 受到vue渐进式思想的影响 vue渐进式框架的设计思想非常棒,那么是否可以用来设计流媒体服务器 ,使得流媒体服务器不只是一个服务器,而是一个开发框架,让开发者可以定制化自己的流媒体服务器呢?

    2.5K21编辑于 2022-07-28
  • 来自专栏DotNet NB && CloudNative

    基于 .NET 开发的多功能流媒体管理控制平台

    前言 今天大姚给大家分享一个基于 .NET 开发且开源(MIT License)的多功能流媒体管理控制平台:AKStream。 项目介绍 AKStream是一个基于.NET开发且开源(MIT License)的、功能全面的流媒体管理控制平台,集成了GB28181、RTSP、RTMP、HTTP等设备的推拉流控制、PTZ控制、音视频文件录制管理 G711/OPUS等音视频编码格式,可以将推拉流转换成RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、HTTP-TS、WebSocket-TS、HTTP-fMP4、 WebSocket-fMP4、MP4等几乎全协议的互相转换。

    50110编辑于 2025-01-07
  • 来自专栏编程进阶实战

    基于 .NET 开发的多功能流媒体管理控制平台

    前言 今天大姚给大家分享一个基于 .NET 开发且开源(MIT License)的多功能流媒体管理控制平台:AKStream。 项目介绍 AKStream是一个基于.NET开发且开源(MIT License)的、功能全面的流媒体管理控制平台,集成了GB28181、RTSP、RTMP、HTTP等设备的推拉流控制、PTZ控制、音视频文件录制管理 G711/OPUS等音视频编码格式,可以将推拉流转换成RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV、GB28181、HTTP-TS、WebSocket-TS、HTTP-fMP4、 WebSocket-fMP4、MP4等几乎全协议的互相转换。 AKStream 优秀项目和框架精选 该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量

    67610编辑于 2024-12-06
  • 来自专栏音视频进阶之旅

    音视频开发(一)-流媒体数据传输RTSP

    play表示服务开始向请求端发送流媒体数据,pause表示停止。先贴上一篇文章,非常详细的讲解了rtsp的操作,没接触过的童鞋可以了解一些。 当PLAY命令发送后,就进入了第三部分RTP协议传输的流媒体数据包。 资料领取直通车:音视频开发&流媒体服务器资料文档+视频教程 音视频学习直通车:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发 简单的rtsp交互过程:(C表示rtsp客户端 C->S:PLAY request //C请求播放 4.S->C:PLAY response //S回应该请求的信息 5.S->C:发送流媒体数据 6.C->S:TEARDOWN request //C 2016-08-10 13:41:02.748 RTSPClient[2457:961857] didReadData: 4, RTSP/1.0 200 OK CSeq: 4 Date: Wed, Aug

    1.4K30编辑于 2022-09-24
  • 来自专栏达达前端

    (4)Angular的开发

    JavaScript 中专注业务逻辑的代码 通过简单的指令结合页面结构与逻辑数据 通过自定义指令实现组件化编程 我们需要本地运行 Angular 文档 下载最新的 Angular 包 MVC 是一种应用程序的开发思想

    5.1K40发布于 2019-07-22
  • 来自专栏TSINGSEE青犀视频

    EasyStreamClient对接海康流媒体V4.X实现无插件播放流程

    之前有一位朋友找到我们寻求帮助,需要解决对接海康流媒体的问题,当时对接的是海康流媒体V4.X,因为平台只支持SDK方式对接,无法满足无插件播放的需求,后来经过与海康官方SDK联系后,取得了开发版SDK包 ,经研究开发文档和项目DEMO,我们用EasyStreamCLient拉流库+Nginx解决了这个问题,下面我把整个实现过程做个简单记录,方便后期使用。 若从流媒体服务器接收的码流不支持转封装,则回调原始码流。 数据回调 海康流媒体 V4.X客户端消息回调和数据回调实现示例代码如下: 1、消息回调: int CALLBACK MsgFunc(int sessionhandle, void* userdata, V4.X SDK客户端开发注意事项: 1、在数据回调和消息回调中,不要对当前会话进行操作,比如:不要调用StreamClient_Stop、StreamClient_DestroySession 等接口

    88640发布于 2021-09-30
领券