扫描二维码上苹果店直接下载免费的 Wolfram Player: Wolfram Player App 让您可以随时随地把玩 Wolfram 笔记本和可计算格式文档(CDF)。 口袋中的 Wolfram 笔记本 (原文链接:https://wolfr.am/paiUgwwa) 十个月前我们曾宣布 iOS 平台上使用的 Wolfram Player 的 Beta 版。 iOS 版 Wolfram Player 是继 Windows、Mac 和 Linux 版 Wolfram CDF Player 之后,为广大用户提供的免费平台,让 iOS 用户也能与世界分享自己的笔记本内容 Wolfram Player 是至今首个在 iOS 平台上的原生计算笔记本体验。 如果你在 Dropbox 或其他任何 iOS 上的文件分享服务器中存储笔记本,也可简单快捷的打开浏览。点击文件链接,即可选择在 Player 中打开邮件附件或网页中的笔记本 。
无需赘述,全自研内核,行业内一致认可的跨平台RTSP、RTMP直播播放器。本文以iOS平台为例,介绍下如何集成RTSP、RTMP播放模块。 扩展H.265播放(Enhanced RTMP);支持扩展录像功能;支持Unity3D接口;支持H.264扩展SEI接收模块;支持iOS 9.0及以上版本。 播放录像SDK和播放端SDK可组合使用,相关Event同步更新在iOS播放端SDK(如下图):iOS播放端SDK Event回调说明事件ID事件描述EVENT_DANIULIVE_ERC_PLAYER_STARTED ) { player_event = @"[event]收不到RTMP数据 由于设备和系统比较单一,优先考虑硬解码,除了基础播放外,我们还实现了实时快照、实时录像、实时回调YUV数据、实时音量调节等,实际体验下来,iOS平台RTMP和RTSP,可以轻松毫秒级。
技术背景在我的blog里面,最近很少有提到iOS平台RTMP推送|轻量级RTSP服务和RTMP|RTSP直播播放模块,实际上,我们在2016年就发布了iOS平台直播推拉流、转发模块,只是因为传统行业, 对iOS的需求比较少,所以一直没单独说明,本文主要介绍下,如何在iOS平台播放RTMP或RTSP流。 技术实现先说播放实现,iOS端,RTMP|RTSP直播播放,我们实现的功能如下: [支持播放协议]高稳定、超低延迟(毫秒级) [多实例播放]支持多实例播放; [事件回调]支持网络状态、buffer状态等回调 ) { player_event = @"[event]收不到RTMP数据 平台播放,由于设备和系统比较单一,所以优先考虑硬解码,除了基础播放外,我们还实现了实时快照、实时录像、实时回调YUV数据、实时音量调节等,实际体验下来,iOS平台RTMP和RTSP,可以轻松毫秒级,感兴趣的开发者
技术背景我们在做RTSP、RTMP直播播放器的时候,有个比较重要的功能,就是拉流端实时录像,包括设置单个录像文件大小、文件前缀、audio转AAC、只录制视频或只录制音频、开始录像、停止录像事件状态回调等 我们录像模块,覆盖了RTMP、轻量级RTSP服务、RTSP|RTMP播放端录像,平台覆盖了Windows、Linux、Android、iOS,主要功能设计如下: [拉流]支持拉取RTSP流录像; [拉流 ]支持拉取RTMP流录像; [推流端录像]支持RTMP|RTSP推送端同步录像; [轻量级RTSP服务录像]支持轻量级RTSP服务SDK同步录像; [推流端录像实时暂停/恢复]支持推送端录像过程中实时暂停录像 技术实现本文以大牛直播SDK的iOS平台拉流端录像为例,大概介绍下相关接口的设计,废话不多说,先上代码:- (void)RecorderBtn:(UIButton *)button { NSLog * * Stop recorder(停止录像) * * @return {0} if successful */- (NSInteger)SmartPlayerStopRecorder;总结RTSP、RTMP
技术实现实际上,大牛直播SDK在2018年就发布了Unity的RTSP|RTMP的播放模块,平台陆续覆盖了Windows、Android、iOS和Linux,Unity下播放RTSP|RTMP流,原理很简单 ,底层原生模块,把RTSP|RTMP流拉过来,做解析解码回调YUV或RGB数据到上层,Unity环境下,做绘制即可。 目前我们实现的功能如下: [支持播放协议]高稳定、超低延迟(毫秒级延迟,行业内几无效果接近的播放端)、业内首屈一指的RTMP、RTSP直播播放SDK; [多实例播放]支持多实例播放; [事件回调]支持网络状态 、buffer状态等回调; [视频格式]支持RTMP扩展H.265,H.264; [音频格式]支持AAC/PCMA/PCMU/Speex; [H.264/H.265软解码]支持H.264/H.265软解 ; [H.264硬解码]Android/iOS支持H.264特定机型硬解; [H.265硬解]Android/iOS支持H.265特定机型硬解; [RTSP模式设置]支持RTSP TCP/UDP模式设置
本文作者:IMWeb 杨文坚 原文出处:IMWeb社区 未经同意,禁止转载 前端可选的视频直播协议大致只有两种: RTMP(Real Time Messaging Protocol) HLS (HTTP Live Streaming) 其中RTMP是Adobe开发的协议,无法在iPhone中兼容,故目前兼容最好的就是HLS协议了。 所以,HLS比RTMP有较高的延迟。 前端播放HLS Native支持 Android 3.0+ iOS 3.0+ flash支持 Flowplayer(GPL ×) GrindPlayer(MIT) video-js-swf(Apache /player/mediaelement-and-player.js"></script> <script> var player = new MediaElementPlayer('#player1'
技术探讨自2017年我们发布跨平台的低延迟Unity下的RTSP|RTMP直播播放器后,Unity下的直播体验有了质的提升,特别是RTMP,从大家认知里面的几秒钟,直接缩减到100-300ms,满足了绝大多数场景下低延迟的技术诉求 今天就Unity下的RTSP|RTMP的低延迟播放,从以下几个维度,抛砖引玉,做个探讨: 选择合适的播放插件 Unity下的RTSP|RTMP低延迟播放,业内想到最多的是大牛直播SDK的SmartPlayer ,支持 RTMP 和 RTSP 直播流播放,在资源占用、延迟等方面表现较好。 以下是原生模块的功能支持,如不单独说明,系Windows、Linux(含x86_64|aarch64)、Android、iOS全平台支持。 [音频格式]支持AAC/PCMA/PCMU; [H.264/H.265软解码]支持H.264/H.265软解; [H.264硬解码]Windows/Android/iOS支持特定机型H.264硬解; [
前端可选的视频直播协议大致只有两种: RTMP(Real Time Messaging Protocol) HLS(HTTP Live Streaming) 其中RTMP是Adobe开发的协议,无法在iPhone 所以,HLS比RTMP有较高的延迟。 前端播放HLS Native支持 Android 3.0+ iOS 3.0+ flash支持 Flowplayer(GPL ×) GrindPlayer(MIT) video-js-swf(Apache /player/mediaelement-and-player.js"></script> <script> var player = new MediaElementPlayer('#player1' / 初始化后立刻播放 player.play(); } }); </script> </body> </html> 效果 ?
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。 播放器 首先,Flutter则是依靠Flutter Engine虚拟机在iOS和Android上运行,开发人员可以通过Flutter框架和API在内部进行交互。 ,不谦虚的说,大牛直播SDK(Github)的这款Flutter下的RTSP/RTMP播放器,可能是首款功能强大、真正好用的Flutter RTSP/RTMP直播播放SDK。 Android和iOS手机上RTSP/RTMP播放效果: 界面截图: 上接口: // // smartplayer.dart // smartplayer // // GitHub: https (is_video_hw_decoder); } else if(defaultTargetPlatform == TargetPlatform.iOS) { is_video_hw_decoder
动画最终所呈现的视觉效果是观众最终看到的结果;在结果之前是不容易被注意到的创作过程;而在过程之前是更不易被察觉却又极其重要的脚本设计。也就是整部动画的”原因“,是可以用来解释为什么这么做而不那么做的答
之前一直都是在App上面进行游戏,所以关于直播这一部分也是与安卓与IOS有关,与前端是没有关系的。但是现在新的需求就是要求这个在线抓娃娃要能够在网页上面进行游戏。所以,我的事情来了。 RTMP协议基于TCP,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP协议中,视频必须是H264编码,音频必须是AAC或MP3编码,且多以flv格式封包。 省去使用其他协议的烦恼 缺点: 延时高,不适合做直播 因为采用ts切片,所以一个文件可能会被切成成百上千个小文件,对存储和缓存都有一定的挑战 这个流一般用于苹果web浏览器的直播,因为FLV和RMTP都不支持IOS (); // }); } // destroy player on unmount componentWillUnmount() { if (this.player) { this.player.dispose() } } // wrap the player in a div with a `data-vjs-player` attribute
技术背景我们在对接RTSP、RTMP推拉流播放的时候,开发者提到这样的技术诉求,他们在用于安检等场景的时候,采集分辨率甚至需要4K+,帧率需要达到50帧以上,码率也非常高,这就对推流和播放模块,提出了更高的要求 以播放端为例,如果需要播放50帧以上高帧率高码率高分辨率的RTSP或RTMP流,以下是一些关键的步骤和考虑因素:1. 选择合适的RTSP播放器播放器性能:选择一款性能强大的RTSP|RTMP播放器,能够处理高帧率视频流的解码和渲染。 硬解码支持:超高帧率码率和分辨率的RTSP|RTMP视频流播放,由于解码非常耗费性能,建议采用硬解码模式。3. 网络条件带宽:高帧率视频流需要更高的带宽来保持流畅的播放。 跨平台兼容性多平台支持:如果你需要在不同的平台上播放高帧率视频(如Windows、Linux、Android、iOS等),需要确保播放器在这些平台上都有良好的表现和兼容性。
我们通过TRTC SDK 下载链接(选择iOS ZIP包下载,根据自己的需求选择专业版或者企业版),下载SDK后会得到一个命名为“TXLiteAVSDK_TRTC_iOS_latest.zip”的压缩文件 基本图表见下图: image.png LiteAVSDK版本关系 这里有各版本详细差异对比 image.png 各模块介绍 超级播放器 LIteAV_Player LiteAVSDK_Player 协议的推流,后者支持 RTMP以及HTTP-FLV 协议的拉流。 TXLivePusher 通过引入 RTMP over QUIC 实现低延时推流,抗 30% 丢包的 RTMP 上行推流优化,增强直播推流稳定性;通过引入TRAE,支持耳返、背景音乐、变声变调、混响等声音处理 RTMP 加速播放;支持 SEI 解析。
技术背景在探讨Unity平台RTMP或RTSP直播流数据播放和录制之前,我们先简单回顾下RTSP或RTMP直播流数据在Unity平台的播放流程:通过Native RTSP或RTSP直播播放SDK回调RGB Unity3D环境下,我们之前已覆盖以下模块:Windows平台RTMP直播推送模块(采集Unity窗体、摄像头或屏幕); Windows平台RTMP|RTSP直播播放模块; Linux平台RTMP 直播推送模块(采集Unity窗体、Unity声音); Linux平台RTMP|RTSP直播播放模块; Android平台RTMP直播推送模块(采集Unity窗体、麦克风或Unity声音); Android 平台RTMP|RTSP直播播放模块; iOS平台RTMP|RTSP直播播放模块。 [sel].player_handle_ = IntPtr.Zero; } videoctrl[sel].is_playing_ = false;}总结Unity下实现RTMP或RTSP流录像,相对来说技术难度不大
但客户端的对该协议支持很弱,不仅ios不支持播放rtsp流,连大多数浏览器也不能直接播放rtsp流。 然后启动电脑上的流媒体播放器VLC media player,打开网络串流“rtmp://127.0.0.1:1935/stream”,此时VLC media player的视频播放界面如下图所示。 结合OBS Studio的直播录制画面和VLC media player的直播观看界面,可知通过OBS Studio成功实现了RTMP协议的直播功能。 ,打开网络串流“rtmp://xxx.xxx.xxx/live/test”,此时VLC media player的视频播放界面如下图所示。 Streamer直播录制画面和VLC media player的直播观看界面,可知通过RTMP Streamer成功实现了RTMP协议的直播功能。
常青:小程序的RTC能力是基于RTMP技术实现的,没有使用WebRTC是出于两方面的考虑:一是微信安装包(尤其是iOS版本)的体积增量必须要控制在可接受的范围内,这是一个硬性的要求。 LiveVideoStack:iOS 11可以支持WebRTC,相信iOS上的微信支持WebRTC也可期。许多开发者看好WebRTC可以打通iOS、Android和PC浏览器。 常青:live-pusher 和 live-player 的RTC模式本身自带回音消除功能,只要设置好mode参数为RTC,都是可以使用回声消除能力的。 而且 live-pusher 和 live-player 没有限制第三方云服务,只要有可用的RTMP地址就可以使用,至于如何基于 live-pusher 和 live-player 标签实现实时通话功能 常青:如果使用 live-player 标签,可以使用RTMP协议和http-flv协议进行接入,也可以使用HLS协议接入,但HLS协议需要使用微信小程序早就开放的
国产操作系统|Linux下RTMP|RTSP直播播放 在发布国产操作系统|Linux平台的RTMP|RTSP直播播放SDK之前,大牛直播SDK(官方)的直播播放SDK无需赘述,采用自研内核框架 ,功能齐全、高稳定、超低延迟、超低资源占用,覆盖Windows、Android和iOS平台。 本次发布的可用于国产操作系统和Linux上的的RTMP|RTSP直播播放SDK, 视频绘制使用XLib相关库实现, 音频输出使用PulseAudio和Alsa Lib实现,除了常规功能如实时静音、快照、 buffer time设定、网络自动重连等,RTMP支持扩展H265播放, RTSP也支持H265播放。 (handle, 100); player_api.SetURL(handle, player_url_); // 设置播放地址, rtsp或者rtmp地址 player_api.SetXDisplay
HLS是一种由苹果公司开发的用于流媒体传输的协议,而FLV则是Adobe公司开发的用于Flash Player播放的容器格式。 而FLV则是一种封闭的格式,它只能通过Flash Player播放器进行播放和显示,而且它的流媒体传输需要使用RTMP协议。 HLS(HTTP Live Streaming): HLS是由苹果公司推出的一种视频流传输技术,原初仅用于iOS设备,但如今已拓展至其他平台和设备,得到了广泛应用。 广泛支持:由于苹果的大力推广和广泛支持,HLS在各种设备和平台上都具备良好的兼容性,包括iOS、Android、Web浏览器等,使得更多用户能够享受到其带来的便利。 传输协议方面,FLV主要依赖于RTMP(实时消息协议)或HTTP进行传输。RTMP在传输实时视频流方面具有优势,但需要专用服务器支持,而HTTP-FLV则利用HTTP协议。
网页端使用RTMP会比较好,因为Flash Player原生支持,而大多数的浏览器都会安装Flash player。 而在移动端如果对实时性要求不高,那么采用hls比较好,因为ios包括3.0以上的安卓都原生支持hls协议。 protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player (reference from wikipedia ) Flash Player是天生能够播放RTMP流的,所以RTMP流可以在网页上得到很好的支持,另外也有很多其他浏览器能够支持播放RTMP流,如比较知名的 JW player,videoJS。
在发布国产操作系统|Linux平台的RTMP|RTSP直播播放SDK之前,大牛直播SDK在Windows、Android、iOS平台已经有了非常成熟的技术积累,功能齐全、稳定性高、超低延迟、超低资源占用 国产操作系统和Linux上的RTMP|RTSP直播播放模块,视频绘制使用XLib相关库实现, 音频输出使用PulseAudio和Alsa Lib,除了常规功能如实时静音、快照、buffer time设定 、网络自动重连等,RTMP支持扩展H265播放, RTSP也支持H265播放。 Linux原生的RTSP、RTMP播放模块这里我们不做赘述,本文主要讲的是如何在Linux平台构建Unity下的RTSP和RTMP低延迟直播播放。 技术实现国产操作系统和Linux平台下,Unity环境的播放器,和Windows、Android、iOS平台基础流程并无大的差异,简单来说,通过调用原生的播放模块,回调解码后的YUV或RGB数据,投递到