首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    音视频新人如何快速上手nginx-rtmp-module

    源码结构说明nginx-rtmp-module/├── ngx_rtmp.c // RTMP模块入口定义├── ngx_rtmp.h // 模块的核心数据结构定义 ├── ngx_rtmp_cmd_module.c // 处理RTMP命令消息(connect/publish/play)├── ngx_rtmp_handler.c // RTMP事件处理和连接管理逻辑 ├── ngx_rtmp_core_module.c // RTMP核心配置与指令定义├── ngx_rtmp_live_module.c // RTMP直播流管理模块├── ngx_rtmp_record_module.c // 音视频Codec分析和处理└── ngx_rtmp_shared.c // 共享内存管理2. 在ngx_rtmp_handler.c中实现了对RTMP协议的状态机,处理RTMP消息包的读写。

    39900编辑于 2025-03-26
  • 来自专栏RTSP/RTMP直播相关

    Android平台音视频推送选RTMP还是GB28181?

    技术背景早在2015年,我们发布了RTMP直播推送模块,那时候音视频直播这块场景需求,还不像现在这么普遍,我们做这块的初衷,主要是为了实现移动单兵应急指挥系统的低延迟音视频数据传输。 功能设计如下:音频编码:AAC/SPEEX;视频编码:H.264、H.265(RTMP扩展H.265);推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[摄像头]支持采集过程中,前后摄像头实时切换 MP4文件);支持Android 5.1及以上版本。 支持对接数据类型:编码前数据(目前支持的有YV12/NV21/NV12/I420/RGB24/RGBA32/RGB565等数据类型);编码后数据(如无人机等264/HEVC数据,或者本地解析的MP4音视频数据 1:IPV6, 默认是IPV4, 当前仅支持IPV4 * * @return {0} if successful */public native int SetRTPSenderIPAddressType

    69840编辑于 2023-05-26
  • 来自专栏开源技术小栈

    FFmpeg 通过 RTMP 轻松打造笔记本音视频直播

    FFmpeg 通过 RTMP 轻松打造笔记本音视频直播 原创 Tinywan 开源技术小栈 2025年06月07日 10:08 浙江 查看本机电脑的设备 ffmpeg -list_devices true 来这里查看哦 FFmpeg编码推送到RTMP服务器 推送命令 ffmpeg -f dshow -i video="Lenovo EasyCamera":audio="麦克风 (Realtek High Definition Audio)" \ -vcodec libx264 \ -acodec copy -preset:v ultrafast -tune:v zerolatency \ -f flv "rtmp 来这里查看哦 FFmpeg编码推送到RTMP服务器 推送命令 ffmpeg -f dshow -i video="Lenovo EasyCamera":audio="麦克风 (Realtek High Definition Audio)" \ -vcodec libx264 \ -acodec copy -preset:v ultrafast -tune:v zerolatency \ -f flv "rtmp

    37210编辑于 2025-06-08
  • 来自专栏用户1692782的专栏

    手撕Rtmp协议细节(4)——connect消息

    我们继续来说rtmp协议哈。当rtmp客户端和rtmp服务端握手完成之后,客户端就会向服务端发送connect消息。connect消息的格式按照RTMP Header+RTMP Body的格式组织。 其中RTMP Header的Type ID为0x14,表示以AMF0编码的command消息。 对于RTMP Body,connect的组织格式如下: ? app是application的缩写,代表客户端要链接到的,rtmp服务器的应用程序,这个一般我们在nginx服务器的配置选项中可以看到。 此处app的值为rtmp_live,是字符串类型,占用9个字节。正好,此次请求的rtmp的应用程序确实是rtmp_live,可参照之前文章的rtmp配置文件。 02 版本 flashVer ? 以0x0080为例,我们得知此次rtmp连接针对视频支持H264编码。 08 帧搜索 videoFunction ?

    2.5K30发布于 2020-05-20
  • 音视频项目:实现一个RTMP流媒体服务器

    内容来源:程序员老廖项目概述本项目是一个基于muduo网络库实现的高性能RTMP流媒体服务器,支持:✅ H.264 + AAC 音视频编码格式✅ 多路推流和拉流 ✅ GOP缓存机制 实现快速首屏✅ 音视频同步 ✅ 低延迟优化✅ 时间戳映射 保证播放连续性技术栈网络框架: muduo (高性能网络库)协议支持: RTMP 1.0 规范音视频格式: H.264 + AAC编程语言: C++17构建工具: CMake /bin/rtmp_server# 方法2:指定配置文件./bin/rtmp_server --config=/path/to/your/config.json# 4. 测试(另开终端)# 推流:ffmpeg -re -i test_video.mp4 -c copy -f flv rtmp://localhost:1935/live/test# 拉流:ffplay rtmp 推拉流项目实现了一个完整的流媒体服务器,主要特点包括:完整的RTMP协议支持: 握手、命令处理、媒体数据传输高性能网络处理: 基于muduo库的异步网络框架音视频同步机制: 时间戳映射器确保播放连续性GOP

    21510编辑于 2026-02-27
  • 来自专栏音视频技术学习笔记

    音视频技术(4)-SDL播放PCM

    SDL 是一套跨平台的音视频播放框架,对齐了底层硬件的差异,开发者可以专注于音视频的处理,本文记录在iOS上使用SDL播放pcm音频裸数据的实现过程。pcm是音频的裸数据。 free(pcm_buffer); } fclose(fp); SDL_Quit(); return 0; } 使用ffmpeg从mp4中提取 pcm文件 提取:ffmpeg -i 1.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm 播放:ffplay -ac 2 -ar 44100 -f s16le out.pcm

    1.1K20发布于 2020-03-27
  • 来自专栏RTSP/RTMP直播相关

    Android平台实现VR头显Unity下音视频数据RTMP推送

    采集到的音视频原始数据,分别投递到Android原生封装的模块,进行编码、打包,通过RTMP传输到服务端,实现毫秒级延迟的RTMP直播方案。 Push()封装 获取到推送实例句柄后,设置推送参数和RTMP URL,采集音视频数据,推送到RTMP服务,如需推送麦克风,启动麦克风,并设定采样率和通道数,如需混音: public void Push 4.【停止麦克风】NT_PB_U3D_StopAudioRecord,如启动了麦克风,调用停止推送相关操作之前,把麦克风采集停掉。 5. 【推送URL】NT_PB_U3D_SetPushUrl,设置推送的RTMP URL; 40.【开始RTMP推流】NT_PB_U3D_StartPublisher,开始RTMP推流; 41. 【停止RTMP推流】NT_PB_U3D_StopPublisher,停止RTMP推流; 42.【开始录像】NT_PB_U3D_StartRecorder,开始录像; 43.

    1.1K20编辑于 2022-04-28
  • 来自专栏关键帧Keyframe

    RTMP 协议:为什么直播推流协议都爱用它?丨音视频基础

    由于协议设计对低延时、音视频同步等能力的良好支持,RTMP 是实时直播场景,尤其是在推流上行链路中,最常用的传输协议之一。 1.1、数据传输流程 使用 RTMP 协议来传输音视频数据的流程大致如下: 在发送端: 把数据封装成消息(Message); 把消息分割成块(Chunk); 将分割后的块(Chunk)通过传输协议(如 在 RTMP 直播中,实时生成视频 Chunk 和音频 Chunk,依次加入到数据流,通过网络发送到客户端。这样的复用传输流,也是音视频同步的关键。 RTMP 块流和 RTMP 协议协同工作很适合于各种和样的音视频程序,从一对一和一对多的直播到视频点播服务再到互动会议程序。 我们将在后面继续探讨其他常见的音视频协议,敬请期待) - 完 -

    4.3K21编辑于 2022-06-13
  • 来自专栏嵌入式项目开发

    音视频开发:大华摄像头配置RTSP与RTMP地址访问视频画面

    例如: http://10.0.0.4 登录之后看到摄像头画面: 配置摄像头码流参数: 网络配置页面上可以看到各个协议的默认端口: 平台接入里可以配置RTMP地址: 三、RTSP地址访问摄像头效果 自己编写拉流软件,获取摄像头数据: 流媒体播放器设计:https://blog.csdn.net/xiaolong1126626497/article/details/105412560 四、大华摄像头的RTMP 地址设置 大华摄像头支持推流到RTMP服务器,要使用这个功能,需要先自己搭建一个RTMP服务器再配置。 windows如何搭建RTMP服务器? 看这里: https://xiaolong.blog.csdn.net/article/details/106391149 linux如何搭建RTMP服务器? RTMP拉流和推流的地址是一样的。

    18.9K30编辑于 2022-01-12
  • 来自专栏RTSP/RTMP直播相关

    Android平台音视频RTMP推送|GB28181对接之动态水印设计

    final int text1_index_ = 2; private final int text2_index_ = 3; private final int picture_index_ = 4;

    75960编辑于 2022-05-25
  • 来自专栏用户1692782的专栏

    手撕rtmp协议细节(2)——rtmp Header

    RTMP header的长度不固定,可能的长度为12字节,8字节,4字节,1字节。具体长度为多少个字节,由RTMP header数据包的第一个字节的高2位决定。 ? (如connect) 1(二进制01) 8字节 大部分的rtmp header都是8字节的 2(二进制10) 4字节 比较少见 3(二进制11) 1字节 偶尔出现,低于8字节频率 下面,通过wireshark 图中,RTMP Header的第一个字节为0x03,高两位的值为00,所以,整个RTMP Header的长度就是4个字节了。 TypeID此处为0x04,也就是用户控制信息(本条消息实际上是rtmp客户端和服务器之间的Ping Response)。 4字节的RTMP Header ? 可以看到,第一个字节为0xa2,所以高2位的值为10,所以,RTMP Header占用4个字节,后面跟着的时间戳的增量。 1字节的RTMP Header ? 抓个包,好奇的看一下。 ?

    4.5K40发布于 2020-05-20
  • 来自专栏用户1692782的专栏

    手撕Rtmp协议细节(3)——Rtmp Body

    上一篇讲了RTMP数据包中关于Header的数据组织格式,不过一个完整的RTMP数据包除了Header之外,紧跟着的是RTMP Body,这一篇就继续来说一下RTMP Body的数据组织结构了。 说到RTMP Body的数据包组织格式,就不得不提到AMF。 那么AMF和RTMP Body又有什么关系呢,不才,RTMP数据包的序列化就是按照AMF的格式进行的。 说完AMF,再回到我们的RTMP Body,RTMP Body就是按照AMF0规范,将数据包进行组织,然后再通过网络发送的。 从抓包中可以看出,该RTMP Body中包含三种类型,4个AMF0编码的数据,一个String类型,一个Number类型,和2个Object类型。

    3.3K40发布于 2020-05-20
  • 来自专栏音视频开发技术

    ffplay源码分析4-音视频同步

    4. 音视频同步 音视频同步的目的是为了使播放的声音和显示的画面保持一致。 如果仅仅是视频按帧率播放,音频按采样率播放,二者没有同步机制,即使最初音视频是基本同步的,随着时间的流逝,音视频会逐渐失去同步,并且不同步的现象会越来越严重。 我们暂且把一个音频时钟更新点记作其播放点,理想情况下,音视频完全同步,音视频播放过程如下图所示: ? [4]. 4.5 音视频同步到外部时钟 略

    2.7K40发布于 2019-04-02
  • 来自专栏RTSP/RTMP直播相关

    多路RTSP-RTMPRTMP定制版

    大牛直播SDK(Github)多路RTMP/RTSP转RTMP转发软件,系原有转发SDK基础上,官方推出的Windows平台定制版。 如监控类摄像机、NVR等,通过厂商说明或Onvif工具,获取拉流的RTSP地址,图形化配置,完成拉流转发等操作,轻松实现标准RTMP服务器(或CDN)对接。 此外,可以通过点击拉流地址或推流地址栏,实现推拉流地址,同步到左侧预览框,实现推拉流音视频数据预览。 地址; ² 推流RTMP地址:需要转推的RTMP地址; ² 推流播放地址:需要预览的播放地址; ² 音视频转发选项:可选择之转发音频或视频,亦或同时转发音视频; ² 录像参数配置:可选择录制音频或视频, 亦或音视频同时录制,并可设定录像文件前缀。

    3.2K30发布于 2019-09-11
  • 来自专栏全栈程序员必看

    rtmp协议详解_rtmp服务器

    前言 最近在学习rtmp协议,在看官方文档的时候总是懵懵懂懂,硬生生看了两天,现在基本上了解rtmp协议了,想用自己觉得比较清晰的方式来讲解rtmp协议,希望能够对向我一样的初学者有所帮助。 1、消息 2、块 3、rtmp的消息类型 4、实例分析rtmp传输过程 一、消息 消息是rtmp的基本数据单元,服务端和客户端通过在网络上发送RTMP消息进行通讯。 2、用户控制消息(Message Type=4RTMP使用消息类型ID 4表示用户控制消息。这些消息包含RTMP流传输层所使用的信息。 示意图如下: 实例分析: (1)客户端向服务端发送”命令消息”中的”createStream命令”: (2)服务端向客户端发送”命令消息”中的”结果(_result)”: 4、发布音视频数据 (1 (3)客户端开始发送音视频数据。

    3.6K12编辑于 2022-11-01
  • 来自专栏性能优化

    RTMP协议

    则从 0x17 开始,一直到最后一行的 0xC0,就是数据区域,而最后的 0x00,0x00,0x00,0x3A 即 58,表示的是这个数据块除最后 4 个字节的总大小。 视频数据 字段 占位 描述 帧类型 4 1:关键帧 2:普通帧 ...... 编码 ID 4 7: 高级视频编码 AVC...... 其数据为两字节: 第一个数据:AAC-LC 值为 2,占用 5 位,则数据为: 0001 0 第二个数据:采样率 44100 值为 4,占用 4 位,则数据为:0100 第三个数据:声道,双声道为 2,单声道为 1,则数据为:0010(双声道),0001(单声道) 最后三位为 0,这样组成的数据 5+4+4+3=16 位,两字节。 公众号 杨正友 现在专注音视频和 APM ,涵盖各个知识领域; 只做全网最Geek的公众号,欢迎你的关注!

    2.2K02发布于 2020-11-24
  • 来自专栏linux驱动个人学习

    RTMP协议

    RTMP消息块流和RTMP一起适用于多样性音视频应用程序,从一对一和一对 多向视频点播服务器直接广播到交互式会议应用程序。 2.9 复合技术: 把分开的音视频数据组合成一条音视频流的过程。 2.10 逆复合技术: 复合的反向过程,交叉存取组装的音视频数据,是他们成为最初的音视频数据。 S2 服务器必须等收到C2之后才能发送其他数据(控制信息和音视频数据) 4. rtmp通信过程 简化如下: client--> server   : 发送一个创建流的请求  (C0、C1)。 client--> server   : 开始发送 (C2) client--> server   : 发送音视频数据(这些包用流的索引号来唯一标识) 4.1 握手第一阶段: C0和S0都是rtmp版本包 4.3 握手第三阶段: 客户端发送C2包:C2包,包大小1536字节,包格式如图: 时间:4byte,这个字段必须对应发送的时间戳(C2:S1, S2:C1); 时间2:4byte,这个包含先前的每一个包被读的时间戳

    1.6K20编辑于 2022-05-10
  • 来自专栏嵌入式项目开发

    FFMPEG音视频开发: 完成摄像头、桌面本地录制与rtmp推流(windows)

    download/xiaolong1126626497/19323232 二、windows下软件运行效果 (1)主界面效果 (2)保存视频到本地,设置录制间隔为10秒一个视频 (3)推流视频到B站,必须保证RTMP multimedia QT += network QT += widgets QT += serialport greaterThan(QT_MAJOR_VERSION, 4)

    2.7K20编辑于 2022-01-12
  • 来自专栏TSINGSEE青犀视频

    深入了解RTMP推流技术:视频汇聚EasyCVR低延迟与高稳定性分析

    RTMP以其独特的优势,为实时音视频传输提供了高效、稳定的解决方案。视频汇聚安防监控综合平台EasyCVR支持多协议接入,其中就包括RTMP协议。 1、RTMP视频推流技术具有低延迟的特点RTMP基于TCP协议,在应用层和传输层之间提供了一个可靠的传输通道,从而保证了音视频数据的可靠传输。 这使得RTMP视频推流技术可以轻松地实现跨平台、跨设备的音视频传输,满足了用户在不同场景下的需求。 以EasyCVR视频汇聚平台为例,平台能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、ws-fmp4、http-fmp4等视频流,支持在多终端设备上观看 ,视频画面1、4、9、16个可选,支持自定义视频轮播;流媒体分发:能对外分发RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、WebRTC、ws-fmp4、http-fmp4等视频流

    64110编辑于 2024-06-21
  • 来自专栏RTSP/RTMP直播相关

    大牛直播SDK跨平台RTMP直播推送模块技术设计和功能列表

    功能支持Windows平台RTMP直播推送SDK音频编码:AAC/SPEEX;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[屏幕/摄像头]支持帧率、关键帧间隔 Linux平台x64_64架构|aarch64架构RTMP直播推送SDK音频编码:AAC/SPEEX;视频编码:H.264;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;支持X11屏幕采集 ;支持部分V4L2摄像头设备采集;[屏幕/V4L2摄像头]支持帧率、关键帧间隔(GOP)、码率(bit-rate)设置;[V4L2摄像头]支持V4L2摄像头设备选择(设备文件名范围:[/dev/video0 RTMP服务器或CDN;支持断网自动重连、网络状态回调;支持实时动态水印;支持实时快照;支持降噪处理、自动增益控制;支持外部编码前音视频数据对接;支持外部编码后音视频数据对接;支持RTMP扩展H.265 iOS平台RTMP直播推送SDK音频编码:AAC;视频编码:H.264、H.265;推流协议:RTMP;[音视频]支持纯音频/纯视频/音视频推送;[摄像头]支持采集过程中,前后摄像头实时切换;支持帧率、

    88210编辑于 2024-07-24
领券