rtmp流媒体协议
RTSP和RTMP的区别是什么?

RTSP和RTMP的区别是什么?RTMP和RTSP协议是流媒体协议。
RTSP (Real-Time Stream Protocol)由Real Networks 和 Netscape共同提出的,基于⽂本的多媒体播放控制协议。
RTSP定义流格式,流数据经由RTP传输;RTSP实时效果⾮常好,适合视频聊天,视频监控等⽅向。
RTMP(Real Time Message Protocol)有 Adobe 公司提出,⽤来解决多媒体数据传输流的多路复⽤(Multiplexing)和分包(packetizing)的问题,优势在于低延迟,稳定性⾼,⽀持所有摄像头格式,浏览器加载 flash插件就可以直接播放。
RTSP和RTMP的区别:RTSP虽然实时性最好,但是实现复杂,适合视频聊天和视频监控;RTMP强在浏览器⽀持好,加载flash插件后就能直接播放,所以⾮常⽕,相反在浏览器⾥播放rtsp就很困难了。
直播的协议有:rtmp,http,rtsp等等。
最常⽤的有⼆种:http,rtmp,当使⽤http协议的时候视频格式需要是m3u8或flv,下⾯作详细说明各种环境的优缺点。
⾸先,rtsp不能使⽤于⽹页环境(包含PC端和移动端)。
那么直播只能选择rtmp或httprtmp协议只⽀持flashplayer,也就是只能在PC端(或安卓环境中安装了flashplayer组件,这种环境⽐较少)安装了flashplayer的情况下使⽤。
按现在的趋势,flashplayer是要逐渐被淘汰掉的。
当然,在中国还会存在相对长时间。
http协议的直播分⼆种格式,m3u8和flv。
flv是⼀种即将被淘汰的直播格式。
⽤来做直播已显的⼒不从⼼了。
所以综合考虑,m3u8相对的⽐较好点,优点是⽀持移动端,并且⽀持PC端上安装了flashplayer的环境。
缺点就如同rtmp⼀样。
flashplayer并不是未来的发展趋势。
另外⼀个缺点就是m3u8是有延迟的。
rtmp协议

rtmp协议第一篇:RTMP协议的基础概念及特点RTMP(Real Time Messaging Protocol)是一种实时消息传递协议,属于Adobe公司开发的一种流媒体协议。
RTMP 协议使用TCP进行数据传输,适用于音视频流的实时播放、互动、互传等方面,被广泛应用于视频直播、在线教育、网络会议等领域。
RTMP协议具有以下特点:1. 实时传输:RTMP协议传输数据的速度非常快,能够满足实时传输音视频流的要求。
2. 跨平台:RTMP协议支持多种操作系统和平台,包括Windows、Mac OS X、Linux等。
3. 支持多种编码方式:RTMP协议支持多种编码方式,如H.264、VP6、Sorenson Spark等,可以适应不同的数据类型和网络环境。
4. 安全性高:RTMP协议支持加密传输,可以保证数据的安全性。
5. 支持多种传输方式:RTMP协议支持多种传输方式,包括点对点传输、客户端和服务器之间的传输等。
6. 支持多种数据格式:RTMP协议支持多种数据格式,如FLV、MP4等,可以适应不同的数据类型和网络环境。
总之,RTMP协议具有高效、可靠、跨平台、安全等特点,是现今流媒体传输的主流协议之一。
第二篇:RTMP协议的工作原理及实现RTMP协议的工作原理是,客户端向服务器发送连接请求,并进行握手验证,验证通过后,建立连接,开始实时传输数据。
在建立连接后,客户端可以向服务器发送控制信息、元数据和音视频数据。
控制信息包括连接控制、流控制、消息控制等,用于控制数据的传输。
元数据包含音视频的标题、格式、描述等信息。
音视频数据则包含音视频的编码数据。
RTMP协议的传输方式有三种:直接传输、容器传输和点对点传输。
直接传输和容器传输都是通过服务器进行流媒体传输,只不过采用的传输方法不同。
点对点传输则是直接将数据传输到接收端,实现点对点传输。
实现RTMP协议需要以下步骤:1. 与服务器建立连接首先需要与服务器建立连接,进行握手验证,验证通过后方可进入数据传输阶段。
rtmp协议

RTMP协议RTMP(Real-Time Messaging Protocol)是一种用于音频、视频和数据传输的协议。
它最初是由Adobe Systems开发,用于在Flash平台上进行实时通信和流媒体传输。
RTMP协议支持实时的音视频传输,可以在互联网上进行高效的视频直播和互动。
概述RTMP协议是一种基于TCP的协议,它通过三个不同的通道进行数据传输:命令通道、音频通道和视频通道。
这种分离的通道使得音视频数据可以独立传输,实现了低延迟、高质量的实时传输。
RTMP协议的特点1. 实时性RTMP协议通过优化传输方式和缓存机制,能够实现低延迟的音视频传输。
这使得它在直播、视频会议等实时场景下得到广泛应用。
2. 强大的流媒体支持RTMP协议支持流媒体传输,可以在互联网上进行高效的视频直播和点播。
它能够根据客户端的带宽情况,动态调整视频的码率和分辨率,保证最佳的观看体验。
3. 安全性RTMP协议可以通过加密和身份验证等方式来保护数据的安全性。
它支持RTMPS(RTMP over SSL/TLS)协议,可以在传输过程中对数据进行加密,防止数据被窃取或篡改。
RTMP协议的工作流程RTMP协议的工作流程可以简单描述为以下几个步骤:1.客户端与服务器建立TCP连接。
2.客户端发送握手请求,服务器返回握手响应。
3.客户端和服务器进行握手确认。
4.客户端发送命令消息,服务器执行相应的操作。
5.客户端发送音频和视频数据,服务器进行解码和处理。
6.服务器将音频和视频数据发送给其他客户端或进行存储。
7.客户端接收到音频和视频数据,进行解码和播放。
RTMP协议的应用场景1. 视频直播RTMP协议在视频直播领域有着广泛的应用。
通过RTMP协议,用户可以将自己的视频内容实时传输到服务器,并且其他用户可以通过使用RTMP协议进行接收和播放。
2. 视频会议RTMP协议支持实时的音频和视频传输,因此在视频会议中也得到了广泛应用。
用户可以通过RTMP协议进行实时的音视频通话,实现远程会议和协作。
流媒体协议

流媒体协议流媒体协议是指用于在网络环境下传输音频、视频等媒体数据的通信协议。
流媒体协议在实时性、带宽控制以及适应不同网络环境等方面都有一定的特殊要求,下面我们来介绍一些常见的流媒体协议。
首先是RTSP协议(Real-Time Streaming Protocol)。
RTSP协议是用来控制流媒体服务器的,它可以实现对媒体流的播放、暂停、快进等操作。
RTSP协议使用了常见的应用层协议,如HTTP、TCP等作为传输方式。
它适用于需要实现对媒体流控制的场景,比如视频监控、视频会议等。
另一个常见的流媒体协议是RTMP协议(Real-Time Messaging Protocol)。
RTMP协议是Adobe公司开发的一种用于流媒体传输的协议,它支持实时音频、视频的传输,并且对带宽控制较为灵活。
RTMP协议常用于视频直播、在线游戏等应用场景。
此外,HTTP协议(Hypertext Transfer Protocol)也可以用于流媒体传输。
虽然HTTP协议是一种非实时的协议,但是通过HTTP协议可以实现流式传输,即在接收者每次请求媒体数据时,服务器会分块发送数据,实现边下载边播放的效果。
流媒体的高延迟和缓冲时间可以通过HTTP协议来减少。
同时,HLS协议(HTTP Live Streaming)也是一种基于HTTP 协议的流媒体协议。
HLS协议将整个视频切成若干个小的文件片段,每个文件片段都有自己的URL地址。
在播放时,客户端会按照一定的规则请求这些文件片段,然后按照顺序播放。
HLS协议通过切片的方式,可以实现更好的适应带宽、适应网络恶化等情况。
最后还有WebRTC协议(Web Real-Time Communication)。
WebRTC协议是一种基于网页的实时通信协议,它可以实现浏览器之间的点对点音视频通信。
WebRTC协议使用了一种名为ICE(Interactive Connectivity Establishment)的技术,可以在不同网络环境下建立起通信连接。
直播技术的流媒体传输协议常见的直播流媒体传输协议介绍

直播技术的流媒体传输协议常见的直播流媒体传输协议介绍直播技术在现代社交媒体中的应用越来越广泛,为了实现高质量的流媒体传输,直播平台借助各种流媒体传输协议。
本文将介绍几种常见的直播流媒体传输协议,并对其特点进行分析。
一、RTMP协议RTMP(Real-Time Messaging Protocol)是一种实时消息传输协议,由Adobe开发。
它采用基于TCP的传输方式,在互联网传输中表现出良好的稳定性和实时性。
RTMP协议通过将音频、视频及元数据打包成小块传输,保证了传输的流畅性和稳定性。
RTMP协议被广泛应用于实时直播领域,尤其在低延迟的直播环境下表现出色。
二、HLS协议HLS(HTTP Live Streaming)协议是由Apple提出的流媒体传输协议。
HLS协议基于HTTP协议,将整个视频分成多个小的TS (Transport Stream)文件,通过HTTP协议逐个传输。
HLS协议适应性强,支持多种终端设备播放,并且能够自适应网络环境的变化。
这使得HLS成为了许多直播平台的首选协议。
三、DASH协议DASH(Dynamic Adaptive Streaming over HTTP)协议是一种动态自适应流媒体传输协议,由MPEG联盟制定。
DASH协议无需握手过程,通过HTTP协议动态获取数据,根据客户端自身的网络情况和解码能力选择相应的码率和片段进行播放。
DASH协议具有较好的抗丢包能力和适应性,能够在不同的网络环境下提供良好的用户体验。
四、FLV协议FLV(Flash Video)协议是一种用于传输视频和音频的流媒体传输协议,由Adobe Flash Player支持。
FLV协议将视频和音频数据打包成FLV文件进行传输,常用于Adobe Flash Player播放器的直播功能。
然而,由于Adobe Flash Player不再被主流浏览器支持,FLV协议的使用范围受到了限制。
五、WebSocket协议WebSocket协议是一种全双工通信协议,它可以在一个TCP连接上实现双向通信。
RTMP协议

RTMP协议协议名称:Real-Time Messaging Protocol (RTMP) 协议1. 引言本协议描述了 Real-Time Messaging Protocol (RTMP) 的标准格式。
RTMP 是一种用于实时数据传输的协议,最初由 Adobe Systems 开发,用于在 Adobe Flash 平台上传输音频、视频和数据流。
随着时间的推移,RTMP 也被应用于其他实时流媒体应用程序。
2. 目的本协议的目的是规范 RTMP 的通信过程和数据格式,以确保在不同平台和设备之间的兼容性和互操作性。
3. 协议规范3.1 连接建立- 客户端通过 TCP/IP 连接到 RTMP 服务器的默认端口 1935。
- 客户端发送 C0 和 C1 数据包,其中 C0 是一个字节,表示 RTMP 版本号,C1 是一个 1536 字节的随机数据块。
- 服务器接收到 C0 和 C1 数据包后,发送 S0 和 S1 数据包作为响应,其中 S0 是一个字节,表示 RTMP 版本号,S1 是一个 1536 字节的随机数据块。
- 客户端接收到 S0 和 S1 数据包后,发送 C2 数据包,其中包含 S1 数据块的哈希值。
- 服务器验证 C2 数据包,如果匹配成功,连接建立成功。
3.2 握手过程- 客户端发送 C0 和 C1 数据包后,等待服务器响应。
- 服务器接收到 C0 和 C1 数据包后,发送 S0 和 S1 数据包作为响应,等待客户端发送 C2 数据包。
- 客户端接收到 S0 和 S1 数据包后,发送 C2 数据包,等待服务器验证。
- 服务器验证 C2 数据包,如果匹配成功,握手成功。
3.3 数据传输- RTMP 使用消息进行数据传输,每个消息由一个消息头和一个消息体组成。
- 消息头包含了消息的类型、长度、时间戳和流 ID 等信息。
- 消息体包含了实际的数据,可以是音频、视频或其他自定义数据。
- RTMP 支持多种消息类型,如音频消息、视频消息、命令消息等。
RTMP、RTSP、HTTP视频协议详解(附:直播流地址、播放软件)

RTMP、RTSP、HTTP视频协议详解(附:直播流地址、播放软件)⼀、RTMP、RTSP、HTTP协议这三个协议都属于互联⽹ TCP/IP 五层体系结构中应⽤层的协议。
理论上这三种都可以⽤来做视频直播或点播。
但通常来说,直播⼀般⽤ RTMP、RTSP。
⽽点播⽤ HTTP。
下⾯分别介绍下三者的特点。
1,RTMP协议(1)是流媒体协议。
(2)RTMP协议是 Adobe 的私有协议,未完全公开。
(3)RTMP协议⼀般传输的是 flv,f4v 格式流。
(4)RTMP⼀般在 TCP 1个通道上传输命令和数据。
2,RTSP协议(1)是流媒体协议。
(2)RTSP协议是共有协议,并有专门机构做维护。
.(3)RTSP协议⼀般传输的是 ts、mp4 格式的流。
(4)RTSP传输⼀般需要 2-3 个通道,命令和数据通道分离。
3,HTTP协议(1)不是是流媒体协议。
(2)HTTP协议是共有协议,并有专门机构做维护。
(3)HTTP协议没有特定的传输流。
(4)HTTP传输⼀般需要 2-3 个通道,命令和数据通道分离。
⼆、可⽤的直播流地址通常我们进⾏ RTMP/RTSP 开发时,除了可以⾃⼰搭建视频服务器来进⾏测试外。
也可以直接使⽤⼀些电视台的直播地址,省时省⼒。
下⾯是我收集汇总的⼀些视频直播地址,亲测可⽤。
1,RTMP协议直播源⾹港卫视:rtmp:///live/hks2,RTSP协议直播源珠海过澳门⼤厅摄像头监控:rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp⼤熊兔(点播):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov3,HTTP协议直播源⾹港卫视:/live/hks/playlist.m3u8CCTV1⾼清:/hls/cctv1hd.m3u8CCTV3⾼清:/hls/cctv3hd.m3u8CCTV5⾼清:/hls/cctv5hd.m3u8CCTV5+⾼清:/hls/cctv5phd.m3u8CCTV6⾼清:/hls/cctv6hd.m3u8苹果提供的测试源(点播):/streaming/examples/bipbop_4x3/gear2/prog_index.m3u8三、播放软件推荐:VLC要播放视频直播流,或者测试⼀个直播视频地址是否可以使⽤。
网络协议知识:RTMP协议的工作原理及应用

网络协议知识:RTMP协议的工作原理及应用RTMP协议的工作原理及应用RTMP(Real-Time Messaging Protocol)是一种实时传输协议,主要用于音视频流的传输,如在线直播、点播等。
它由Adobe公司开发,并在2008年推出了各种开源项目,如NGINX、Wowza等,成为广泛应用的协议之一。
RTMP协议的工作原理RTMP协议的工作原理非常简单,基本上分为三个部分:建立连接、传输数据、断开连接。
建立连接在客户端请求连接时,服务器会响应一个握手消息,通过TCP三次握手建立连接。
握手过程中,客户端会发送C0和C1两个消息,分别包含了主要的连接请求信息。
服务器会发送S0和S1两个回应消息,包含了连接请求的确认以及一些额外的验证信息。
过程如下:1.客户端发送C0消息,告诉服务器它要建立一个新的RTMP连接。
2.服务器回复S0消息,告诉客户端连接已成功建立。
3.客户端发送C1消息,包含了一些验证信息,如时间戳、认证密钥等。
4.服务器回复S1消息,包含了对C1消息的确认,以及一些服务器信息(如时间戳、加密密钥等)。
5.此时,客户端已经可以开始发送数据。
传输数据在建立连接后,客户端可以开始发送音视频数据,数据传输主要分为两种方式:1.传输视频数据:客户端通过发送RtmpMessage包(RTMP数据包)来传输视频流。
RtmpMessage包由一个固定格式的消息头和消息体组成,消息头包含了流ID、时间戳等信息,消息体则包含了实际的视频数据。
2.传输控制数据:除了视频流外,RTMP协议还可以传输控制数据(如ping包、取消流数据等),这些控制信息都由特殊的RtmpMessage包组成。
断开连接当客户端不再需要连接时,它可以发送一个断开连接的消息告诉服务器。
服务器会回复一个确认消息,并关闭连接。
过程如下:1.客户端发送断开连接的RtmpMessage包,告诉服务器它不再需要连接。
2.服务器回复一个确认消息,并关闭连接。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
H5视频直播扫盲1 H5到底能不能做视频直播当然可以, H5火了这么久,涵盖了各个方面的技术。
对于视频录制,可以使用强大的webRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的技术,缺点是只在PC的chrome上支持较好,移动端支持不太理想。
对于视频播放,可以使用HLS(HTTP Live Streaming)协议播放直播流,ios和android都天然支持这种协议,配置简单,直接使用video标签即可。
webRTC兼容性:video标签播放hls协议视频:1 2 3 4<video controls autoplay><source src="" type="application/" /><p class="warning">Your browser does not support HTML5 video.</p> </video>2 到底什么是HLS协议简单讲就是把整个流分成一个个小的,基于HTTP的文件来下载,每次只下载一些,前面提到了用于H5播放直播视频时引入的一个.m3u8的文件,这个文件就是基于HLS协议,存放视频流元数据的文件。
每一个.m3u8文件,分别对应若干个ts文件,这些ts文件才是真正存放视频的数据,m3u8文件只是存放了一些ts文件的配置信息和相关路径,当视频播放时,.m3u8是动态改变的,video标签会解析这个文件,并找到对应的ts文件来播放,所以一般为了加快速度,.m3u8放在web服务器上,ts文件放在cdn上。
.m3u8文件,其实就是以UTF-8编码的m3u文件,这个文件本身不能播放,只是存放了播放信息的文本文件:1 2 3 4 5#EXTM3U m3u文件头#EXT-X-MEDIA-SEQUENCE 第一个TS分片的序列号#EXT-X-TARGETDURATION 每个分片TS的最大的时长#EXT-X-ALLOW-CACHE是否允许cache#EXT-X-ENDLISTm3u8文件结束符6#EXTINF 指定每个媒体段(ts)的持续时间(秒),仅对其后面的URI有效7ts文件:HLS的请求流程是:1http请求m3u8的url。
2服务端返回一个m3u8的播放列表,这个播放列表是实时更新的,一般一次给出5段数据的url。
3客户端解析m3u8的播放列表,再按序请求每一段的url,获取ts数据流。
简单流程:3 HLS直播延时我们知道hls协议是将直播流分成一段一段的小段视频去下载播放的,所以假设列表里面的包含5个ts文件,每个TS文件包含5秒的视频内容,那么整体的延迟就是25秒。
因为当你看到这些视频时,主播已经将视频录制好上传上去了,所以时这样产生的延迟。
当然可以缩短列表的长度和单个ts文件的大小来降低延迟,极致来说可以缩减列表长度为1,并且ts的时长为1s,但是这样会造成请求次数增加,增大服务器压力,当网速慢时回造成更多的缓冲,所以苹果官方推荐的ts时长时10s,所以这样就会大改有30s的延迟。
参考资料:视频直播的整个流程是什么当视频直播可大致分为:1 视频录制端:一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,目前以移动端的手机视频为主。
2 视频播放端:可以是电脑上的播放器,手机端的native播放器,还有就是h5的video标签等,目前还是已手机端的native播放器为主。
3 视频服务器端:一般是一台nginx服务器,用来接受视频录制端提供的视频源,同时提供给视频播放端流服务。
简单流程:5 怎样进行音视频采集当首先明确几个概念:视频编码:所谓视频编码就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式,我们使用的iphone录制的视频,必须要经过编码,上传,解码,才能真正的在用户端的播放器里播放。
编解码标准:视频流传输中最为重要的编解码标准有国际电联的、、,其中HLS协议支持格式的编码。
音频编码:同视频编码类似,将原始的音频流按照一定的标准进行编码,上传,解码,同时在播放器里播放,当然音频也有许多编码标准,例如PCM编码,WMA编码,AAC编码等等,这里我们HLS协议支持的音频编码方式是AAC编码。
下面将利用ios上的摄像头,进行音视频的数据采集,主要分为以下几个步骤:1音视频的采集,ios中,利用AVCaptureSession和AVCaptureDevice可以采集到原始的音视频数据流。
2 对视频进行H264编码,对音频进行AAC编码,在ios中分别有已经封装好的编码库来实现对音视频的编码。
3 对编码后的音、视频数据进行组装封包;4 建立RTMP连接并上推到服务端。
ps:由于编码库大多使用c语言编写,需要自己使用时编译,对于ios,可以使用已经编译好的编码库。
x264编码:kewlbear/x264-iosfaac编码:fflydev/faac-ios-buildffmpeg编码:kewlbear/FFmpeg-iOS-build-script关于如果想给视频增加一些特殊效果,例如增加滤镜等,一般在编码前给使用滤镜库,但是这样也会造成一些耗时,导致上传视频数据有一定延时。
简单流程:6 前面提到的ffmpeg是什么和之前的x264一样,ffmpeg其实也是一套编码库,类似的还有Xvid,Xvid是基于MPEG4协议的编解码器,x264是基于协议的编码器,ffmpeg集合了各种音频,视频编解码协议,通过设置参数可以完成基于MPEG4,等协议的编解码,demo这里使用的是x264编码库。
7 什么是RTMPReal Time Messaging Protocol(简称 RTMP)是 Macromedia 开发的一套视频直播协议,现在属于 Adobe。
和HLS一样都可以应用于视频直播,区别是RTMP基于flash无法在ios的浏览器里播放,但是实时性比HLS要好。
所以一般使用这种协议来上传视频流,也就是视频流推送到服务器。
这里列举一下hls和rtmp对比:8 推流简所谓推流,就是将我们已经编码好的音视频数据发往视频流服务器中,一般常用的是使用rtmp推流,可以使用第三方库librtmp-iOS进行推流,librtmp封装了一些核心的api供使用者调用,如果觉得麻烦,可以使用现成的ios视频推流sdk,也是基于rtmp的,runner365/LiveVideoCoreSDK9 推流服务器搭建简简单的推流服务器搭建,由于我们上传的视频流都是基于rtmp协议的,所以服务器也必须要支持rtmp才行,大概需要以下几个步骤:1 安装一台nginx服务器。
2 安装nginx的rtmp扩展,目前使用比较多的是arut/nginx-rtmp-module3 配置nginx的conf文件:1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1rtmp {server {listen 1935;#监听的端口chunk_size 4000;application hls {#rtmp推流请求路径live on;hls on;hls_path /usr/local/var/www/hls; hls_fragment 5s;}}}6174 重启nginx,将rtmp的推流地址写为,其中hls_path表示生成的.m3u8和ts文件所存放的地址,hls_fragment表示切片时长,mysteam表示一个实例,即将来要生成的文件名可以先自己随便设置一个。
更多配置可以参考:arut/nginx-rtmp-module/wiki/根据以上步骤基本上已经实现了一个支持rtmp的视频服务器了。
10 在html5页面进行播放直播视频简单来说,直接使用video标签即可播放hls协议的直播视频:1 2 3 4<video autoplay webkit-playsinline><source src="" type="application/" /><p class="warning">Your browser does not support HTML5 video.</p> </video>需要注意的是,给video标签增加webkit-playsinline属性,这个属性是为了让video视频在ios的uiwebview里面可以不全屏播放,默认ios会全屏播放视频,需要给uiwebview设置allowsInlineMediaPlayback=YES。
业界比较成熟的videojs,可以根据不同平台选择不同的策略,例如ios使用video标签,pc使用flash等。
11 坑点总结简根据以上步骤,笔者写了一个demo,从实现ios视频录制,采集,上传,nginx服务器下发直播流,h5页面播放直播视频者一整套流程,总结出以下几点比较坑的地方:1 在使用AVCaptureSession进行采集视频时,需要实现AVCaptureVideoDataOutputSampleBufferDelegate协议,同时在- (void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputSampleBuffer:(CMSampleBufferRef)sampleBuff er fromConnection:(AVCaptureConnection *)connection 捕获到视频流,要注意的是didOutputSampleBuffer这个方法不是didDropSampleBuffer方法,后者只会触发一次,当时开始写的是didDropSampleBuffer方法,差了半天才发现方法调用错了。
2 在使用rtmp推流时,rmtp地址要以,ip地址要写实际ip地址,不要写成localhost,同时要加上端口号,因为手机端上传时是无法识别localhost的。
这里后续会补充上一些坑点,有的需要贴代码,这里先列这么多。
demo地址:lvming6816077/LMVideoTest/参考资料:结尾打个广告:移动端日志工具:lvming6816077/MLoggerReactNative下拉刷新组件:lvming6816077/react-native-pullRefreshScrollView欢迎使用!原创文章转载请注明:nginx -serversRun port 80:$ sudo chown root:wheel /usr/local/opt/nginx-full/bin/nginx $ sudo chmod u+s /usr/local/opt/nginx-full/bin/nginx Reload config:$ nginx -s reloadReopen Logfile:$ nginx -s reopenStop process:$ nginx -s stopnginx安装所在位置 /usr/local/Cellar/nginx-full/配置文件所在位置 /usr/local/etc/nginx/nginx服务器根目录所在位置 /usr/local/var/www。