从摄像机获取的RTSP视频流直接在浏览器中播放,这里采用vlc插件进行播放,设置步骤如下 1、下载32位的vlc播放器,安装时选择安装插件,安装路径不要有空格,注意64位播放器安装上也不能正常播放 (我测试不能正常播放) 2、注册VLC插件(否则视频无法正常显示):使用cmd 运行:regsvr32 D:\VideoLAN32\VLC\axvlc.dll 其中D:\VideoLAN32\VLC为VLC events=’false’width=”720″height=”410″> object> div> body> 其中,value=’rtsp://184.72.239.149/vod/mp4://BigBuckBunny loop: (true或false),是否循环 fullscreen:是否全屏 controls:显示默认的控件 4、目前测试IE浏览器和360浏览器可以正常支持vlc插件播放 5、若需要播放多个视频 ,将object标签拷贝几次,将id改一下,将不同的RTSP视频流地址修改即可。
GitHub – 131/h264-live-player: A live h264 player for the browser (ideal for raspberrypi / raspicam ) 网页播放 rtsp视频流 原文:网页播放rtsp视频流_江山夜雨的博客-CSDN博客_web播放rtsp RTSP协议 (1)是流媒体协议。 (2)RTSP协议是共有协议,并有专门机构做维护。 (3)RTSP协议一般传输的是 ts、mp4 格式的流。 (4)RTSP传输一般需要 2-3 个通道,命令和数据通道分离。 如果客户使用ie或者firefox的话,可以使用vlc player,vlc player 同样需要安装插件,需要电脑上安装vlc player的本地客户端(安装时勾选插件选项),然后通过 标签来引入播放 //www.apple.com/quicktime/"></embed> </object> 3、H5- streamedian 参考地址:Streamedian ,支持chrome无插件播放
本代码是使用GStreamer播放RTSP视频流,没有使用playbin,而是自己构建pipeline,经测试可以正常播放视频。 data.sink), "sync", FALSE, NULL); /* Set the URI to play */ g_object_set (data.source, "location", "rtsp pad */ gst_object_unref (sink_pad); } 编译命令: gcc rtspplay.c `pkg-config --cflags --libs gstreamer-1.0` RTSP 地址换成自己的即可,上述代码只是简单展示如何使用pipeline播放RTSP视频。
最近项目中需要实时播放摄像头rtsp视频流,于是就专门做了些研究。而浏览器不能直接播放,只有通过插件或者转码来实现这个需求。 方案一: html5 + websocket_rtsp_proxy 实现视频流直播 实现原理 实现步骤 服务器安装streamedian服务器 客户端通过video标签播放 var errHandler flash允许 参考链接 方案三:ffmpeg + video,rtsp转hls播放 HLS (HTTP Live Streaming) 直播 是有苹果提出的一个基于http的协议。 = videojs(‘my_video_1’, {“autoplay”:true}); player.play(); 复制代码 参考链接 方案四:VLC插件播放 播放步骤 下载安装vlc 浏览器播放 复制代码 优缺点 优点: 可以直接播放RTSP,无需任何中介服务器的帮助 缺点: 需要手动安装插件; 基于NPAPI,不被最新的 Chrome 和 Firefox 支持 如果你项目的其他功能都能兼容客户电脑上的
RTSP协议探究RTSP播放器可广泛应用于对延迟要求比较高的场景下,比如协同操控相关的智能机器人或无人机、实时视频监控、远程视频会议、网络电视等。通过控制信令实现对流媒体数据的远程控制和传输管理。 三、协议功能播放控制:客户端可以通过RTSP命令控制媒体流的播放,如播放、暂停、停止、快进和快退等。 如何实现RTSP播放器 本文以大牛直播SDK的Windows平台RTSP直播播放器为例,大概介绍下,如何集成RTSP直播播放能力。 NT_SP_StartPlay开始播放RTMP或RTSP流数据。 停止播放NT_SP_StopPlay停止播放RTMP或RTSP流数据。关闭播放实例NT_SP_Close调用Close接口后,player handler置空。
技术背景2015年,在大家精力放在点播播放的时候,大牛直播SDK已开始布局RTMP、RTSP的低延迟直播技术。 技术特点超低延迟与稳定性超低延迟:大牛直播SDK的RTSP播放器在延迟控制方面表现出色,能够将播放延迟稳定地控制在较低水平,这对于直播场景尤为重要,能够显著提升用户体验。 功能丰富多实例播放:支持同时播放多路RTSP流,适用于需要同时监控多个视频源的场景。 功能覆盖 [支持播放协议]高稳定、超低延迟、业内首屈一指的RTSP直播播放器SDK; [多实例播放]支持多实例播放; [事件回调]支持网络状态、buffer状态等回调; [视频格式]支持H.265、H.264 RTSP播放器在超低延迟、稳定性、跨平台支持、功能丰富性、易用性与集成性等方面均表现出色,是一款值得推荐的流媒体播放解决方案。
实现了浏览器 MSE (Media Source Extensions) 播放相机 RTSP (Real Time Streaming Protocol) 流。 更多 技术: WebSocket[2] MediaSource[3]: 构建媒体流,供 video/audio 元素播放 WebRTC[4]: 可直接捕获客户端视频流,并点对点传输、不依赖服务器中转 WebCodecs [12]: RTSP > fMP4 Streamedian/html5_rtsp_player[13]: RTSP > fMP4, Proxy 收费 JS 解码 131/h264-live-player [21] kyriesent/node-rtsp-stream[15] wanghaoxi3000/gin-rtsp[16] YE-Fan/JAVA-RTSP-JSMpeg[17] Aleckgt/rtsp-ws-proxy /gin-rtsp [17] YE-Fan/JAVA-RTSP-JSMpeg: https://github.com/YE-Fan/JAVA-RTSP-JSMpeg [18] Aleckgt/rtsp-ws-proxy
技术背景好多开发者在播放RTSP或RTMP流的时候,特别是多路播放的时候,希望能试试调节单个视频画面的声音(静音或放大缩小音量),常见的实时调节播放音量可以通过以下方式实现:利用操作系统的音频控制在某些情况下 ,我们可能无法直接通过播放器控制音量,这时候,可以使用操作系统的全局音频控制来调节RTSP或RTMP播放器的音量。 利用播放模块自带的音量调节控制一个功能完善的RTSP或RTMP播放器,一般自带实时静音或实时音量调节,如果支持这种模式,就非常方便,可以只条件播放器的volume,不影响系统的音量。 流媒体协议:除了本地文件播放,VLC 还支持多种流媒体协议,如 RTMP、HTTP、RTSP 等。这使得用户可以直接播放来自网络的流媒体内容,如在线视频、网络电台等。 播放控制功能: 多实例播放:支持同时播放多路 RTMP 或 RTSP 流,方便用户同时观看多个直播源,例如在监控场景中可同时查看多个监控摄像头的画面。
本文将介绍 RTSP H264/HEVC 裸流如何于网页前端播放。涉及 WebSocket 代理发送流数据, Wasm 前端解码等。 代码: https://github.com/ikuokuo/rtsp-wasm-player 相关模块: # RTSP WebSocket Proxy RTSP/Webcam/File > FFmpeg WS Wasm Player: 前端播放实现(ES6)。WebSocket, Wasm, WebGL 等封装,提供了 WsClient 接口。 WS Local Player: 本地播放实现(C++)。与前端流程一样,向流代理服务器请求数据,解码后 OpenGL 显示。 前端解码与播放 主流程: # WS Wasm Player WebSocket > Packets > Wasm FFmpeg decode to YUV > WebGL display
在网上找的rtsp流的视频链接 rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov 设置Activity横屏 if (this.getResources setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } 开启线程进行视频的播放 Override protected void onDestroy() { if(player.isPlaying()){ player.stop();//停止音频的播放
好多开发者提到,在目前开源播放器如此泛滥的情况下,为什么还需要做自研框架的RTSP播放器,自研和开源播放器,到底好在哪些方面?以下大概聊聊我们的一点经验,感兴趣的,可以关注 github: 1. 低延迟:大多数RTSP的播放都面向直播场景,如果延迟过大,严重影响体验,所以,低延迟是衡量一个好的RTSP播放器非常重要的指标,目前大牛直播SDK的RTSP直播播放延迟比开源播放器更优异(大牛直播SDK 支持多实例:大牛直播SDK提供的RTSP直播播放SDK支持在设备性能允许的情况下,支持多实例播放RTSP流数据,大多开源播放器对多实例支持不太友好; 4. 实时静音:比如,多窗口播放RTSP流,如果每个audio都播放出来,体验非常不好,所以实时静音功能非常必要,开源播放器不具备实时静音功能; 6. 长期运行稳定性:大牛直播SDK提供的RTSP直播播放SDK适用于长时间运行,开源播放器对长时间运行稳定性支持较差; 11.
好多开发者在做Windows平台特别是单屏多画面显示时,希望像监控摄像机一样,可以在播放画面添加OSD台标,以实现字符叠加效果,大多开发者可很轻松的实现以上效果,针对此,本文以大牛直播SDK (Github )的Windows平台demo为例,简单介绍下具体实现: Windows平台RTMP播放器、RTSP播放器C++ demo Windows平台C++的demo,以录像过程为例,动态在左上角显示个闪动的图标 swap(buffer); } bitmap.UnlockBits(&locked_bitmapData); } return logo_image; } Windows平台RTMP播放器 、RTSP播放器C# demo Windows平台C#的demo,添加了“设置台标”选择框,在player窗口左上角显示“叠加字符展示”,具体内容、坐标可自定义,具体效果如下: 添加osd.png 核心代码
技术背景我们在对接RTSP直播播放器相关技术诉求的时候,好多开发者,除了选用成熟的RTSP播放器外,还想知其然知其所以然,对RTSP播放器的整体开发有个基础的了解,方便方案之作和技术延伸。 技术实现技术难点在探讨RTSP直播播放器技术实现之前,我们先来看,为什么RTSP播放器的开发看似简单,实则复杂,或者说做播放器容易,做个好的播放器,为什么就那么难? RTSP播放器设计要点1. 低延迟:大多数RTSP的播放都面向直播场景,所以,如果延迟过大,严重影响体验,所以,低延迟是衡量一个好的RTSP播放器非常重要的指标,目前大牛直播SDK的RTSP直播播放延迟比开源播放器更优异,而且长时间运行下 Android平台RTSP播放示例下面以Android平台多实例RTSP播放为例,探讨下接口设计和调用说明。
随着H.265的普及,越来越多的开发者希望大牛直播SDK(Github)能支持低延迟的RTSP H.265播放,并分享相关经验: 实现思路: 对rtsp来说,要播放h265只要正确解析sdp和rtp包即可
SkeyePlayer RTSP Windows端(下文简称:SkeyePlayer)播放器之前抓图代码主要通过OpenCV来实现,且数据格式转换的效率过于低下;故而在当时的代码中采用线程机制来解决抓图导致视频播放时卡顿的问题 ;而最新版的SkeyePlayer为了精简代码也为了提高抓图效率,我们采用ffmpeg进行抓图,为了保证视频播放的流畅性,线程机制我们仍然保留。 当然强大的格式转换函数也支持图像的缩放,且效率很高; 图像编码,细心的同学不难发现,ffmpeg的编码和存文件/推送流的代码是通用的,这套代码可以用来抓图也可以用来编码H264、265等然后存文件(如MP4等)或者推送RTMP/RTSP
技术背景我们在做RTSP、RTMP直播播放器的时候,有个比较重要的功能,就是拉流端实时录像,包括设置单个录像文件大小、文件前缀、audio转AAC、只录制视频或只录制音频、开始录像、停止录像事件状态回调等 我们录像模块,覆盖了RTMP、轻量级RTSP服务、RTSP|RTMP播放端录像,平台覆盖了Windows、Linux、Android、iOS,主要功能设计如下: [拉流]支持拉取RTSP流录像; [拉流 ]支持拉取RTMP流录像; [推流端录像]支持RTMP|RTSP推送端同步录像; [轻量级RTSP服务录像]支持轻量级RTSP服务SDK同步录像; [推流端录像实时暂停/恢复]支持推送端录像过程中实时暂停录像 、恢复录像; [逻辑分离]大牛直播录像SDK不同于普通录像接口,更智能,和推送、播放、转发、内置轻量级RTSP服务SDK功能完全分离,支持随时录像; [url切换]在录像过程中,支持切换不同URL,如两个 、RTMP播放端录像,我们的设计,是播放和录像分离,可以只录像或只播放,如果同时录像和播放,只需要一个拉流实例来完成。
我们在实现Windows平台RTSP播放器或RTMP播放器的时候,需要考虑的点很多,比如多实例设计、多绘制模式兼容、软硬解码支持、快照、RTSP下TCP-UDP自动切换等,以下就其中几个方面,做个大概的探讨 视频绘制模式 我们在实现Windows平台播放的时候,一般首选D3D,D3D不支持的情况下,考虑数据回上来,采用GDI模式,一般实现如下,先做D3D检测,以大牛直播SDK播放端为例(Github),调用 实时快照 实时快照功能不表,是一个好的RTSP播放器和RTMP播放器必备的功能,实时快照是把解码后的yuv数据重新编码成png,所以有一定的CPU消耗,不建议过于频繁操作,具体实现如下: set_capture_image_call_back_(result, image_name); } } 后续,我们将针对RTSP 和RTMP播放器设计过程中的其他点,做更进一步的探讨,谢谢大家的关注。
很多开发者在开发RTSP或RTMP播放器的时候,不晓得哪些event回调事件是有意义的,针对此,我们以大牛直播SDK(github)的Android平台RTSP/RTMP直播播放端为例,简单介绍下常用的 流实时下载回调:显示播放rtsp或rtmp流时,实时流量,注意,这块最好是可设置回调时间间隔,防止不必要的资源消耗; 8. RTSP错误状态:如401鉴权不通过。 播放端连接中EVENT_DANIULIVE_ERC_PLAYER_CONNECTION_FAILED播放端连接失败EVENT_DANIULIVE_ERC_PLAYER_CONNECTED播放端连接成功EVENT_DANIULIVE_ERC_PLAYER_DISCONNECTED 会返回缓冲百分比)EVENT_DANIULIVE_ERC_PLAYER_STOP_BUFFERING停止缓冲数据EVENT_DANIULIVE_ERC_PLAYER_DOWNLOAD_SPEED返回当前 RTSP /RTMP 流 实时下载速度EVENT_DANIULIVE_ERC_PLAYER_RTSP_STATUS_CODERTSP 收到错误码,可能 是用户名、密码不对
2.4.10 RTMP/RTSP播放参数设置 具体可参照Demo源码里面InitCommonSDKParam(): 2.4.10.1 播放前可选设置接口 NT_SP_SetBuffer:设置视频播放缓冲 buffer大小,单位:毫秒; NT_SP_SetRTSPTcpMode:设置RTSP TCP 模式, 1为TCP, 0为UDP, 此接口仅RTSP有效; NT_SP_SetRtspTimeout:设置 RTSP超时时间, timeout单位为秒,必须大于0; NT_SP_SetRtspAutoSwitchTcpUdp:对于RTSP来说,有些可能支持rtp over udp方式,有些可能支持使用rtp NT_SP_StartPlay 开始播放RTMP或RTSP流数据。 2.4.17 停止播放 NT_SP_StopPlay 停止播放RTMP或RTSP流数据。 2.4.18 关闭播放实例 NT_SP_Close 调用Close接口后,player handler置空。
技术背景 实际上,我们在2015年做Android平台RTSP、RTMP播放模块的时候,第一版就支持了多实例播放,因为SDK设计比较灵活,做个简单的player实例封装即可实现多实例播放(Android 技术实现 废话不多说,先上图: 我们针对的功能展示,主要是播放和录像这块,先说播放: /* * SmartPlayer.java * Author: daniusdk.com * Created 1 : 0); //设置RTSP超时时间 int rtsp_timeout = 10; lib_player_.SmartPlayerSetRTSPTimeout(handle, rtsp_timeout ); //设置RTSP TCP/UDP模式自动切换 int is_auto_switch_tcp_udp = 1; lib_player_.SmartPlayerSetRTSPAutoSwitchTcpUdp 、录像的演示,除此之外,大牛直播SDK的RTSP、RTMP播放器海康实现播放缓冲设置、软硬解码设置、实时快照、实时音量调节、实时解码后数据回调等。