如何在自己的应用程序直接接收rtmp流
发布网友
发布时间:2022-04-28 18:02
我来回答
共1个回答
热心网友
时间:2022-05-03 10:45
一,目标: 利用开源或者免费工具实现一个直播系统;同时支持在浏览器、播放器和嵌入到 PC 应 用或者移动 APP 中观看直播。 二,技术选型: 视音频源端:: Adobe Flash Media Live Encoder 3.2,可以在 windows 和 mac 安装; 如果你已有一些支持 RTMP 的采集设备,那是最好了; 或许你想在自己的应用中实现,这样你就必须自己开发处理采集,编码和协议传输了(以后 再表); RTMP Server: FMS -- Adobe 公司出品的服务器,价格昂贵,当然是最正宗的,因为 RTMP 就是 Adobe 公 司的私有协议; Wowza -- 同样需要授权费, 大概是$55 per month/instance,效率和稳定性都还不错; Red5 -- 一个开源实现, 效率和稳定性都稍微差些,由于它是 java 实现的,所以天生支持 跨平台运行; Nignx-rtmp-mole - -nginx 的一个第三方模块,如果你熟悉 nginx 那是不错的选择,当然它 也是免费的,不过功能就没有其他几个丰富了; 这里我选择 nginx+nginx-rtmp-mole 作为服务器,这是我认为最容易上手的一种方式了(如 果 你 把 windows 作 为 服务 器 那 可 能 麻烦 些 , 官 方 提供 的 windows 二 进 制版 本 是 没 有 nignx-rtmp-mole 的,而且 nginx 在 windows 下的性能比 linux 就差太多了) 客户端: VLC 也可以安装其他支持 rtmp 的播放器; JW Media Player 一个开源的 flash 视音频播放器, 利用它我们可以直接在浏览器观看直播; (移动端的浏览器是不知道 flash 的) ffmpge/librtmp 如果你希望在自己的应用中实现播放器,或者希望在移动端直接接收 RTMP 流,那就要自己开发了(以后再表) 最后选型是: Adobe Flash Media Live Encoder 3.2 + Nignx-rtmp-mole + JW Media Player 三,实现 (本文将 nginx 安装到 Centos 6.5 下,IP 为 192.168.0.51) 1,下载安装 Adobe Flash Media Live Encoder 3.2 2,编译安装配置 nginx + nginx-rtmp-mole (nginx 1.7 无法编译通过) #wget http://nginx.org/download/nginx-1.6.2.tar.gz #tar -zxvf nginx-1.6.2.tar.gz #git clone https://github.com/arut/nginx-rtmp-mole.git (如果没有安装 git 则直接下载 zip 包) #cd nginx-1.6.2 #./configure --add-mole=../nginx-rtmp-mole --with-http_ssl_mole #make #make install 配置 ( 详细查看 https://github.com/arut/nginx-rtmp-mole), 编辑 nginx/nginx.conf ,增加 rtmp 模块: rtmp { server { Listen 1935; chunk_size 4000; #可以将 mylive 改成你想要的名字 application mylive { live on; } } } 在 http 模块增加: location /stat{ rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl{ root html; } 同时需要将 nginx-rtmp-mole 源码目录下的 stat.xsl 拷贝到 nginx/html 下,这样就可以通过 网页查看服务器的 RTMP 状态了。
如何在自己的应用程序直接接收rtmp流
一,目标: 利用开源或者免费工具实现一个直播系统;同时支持在浏览器、播放器和嵌入到 PC 应 用或者移动 APP 中观看直播。 二,技术选型: 视音频源端:: Adobe Flash Media Live Encoder 3.2,可以在 windows 和 mac 安装; 如果你已有一些支持 RTMP 的采集设备,那是最好了; 或许你想在自己的...
FFmpeg开发笔记(三十八)APP如何访问SRS推流的RTMP直播地址
在APP或小程序中播放RTMP流,可以通过ExoPlayer实现。首先在APP模块的build.gradle文件中添加ExoPlayer及其rtmp扩展包的依赖。然后,修改播放代码以支持RTMP流,如以下代码所示:private void playVideo(String url) { // ...其他代码省略 if (url.startsWith("rtmp")) { // RTMP地址 videoSource = ne...
哪些手机直播软件可以支持RTMP推流?
手机上可以支持RTMP推流的软件有云图TV、风云直播、VST全聚合手机版等等;直接打开手机应用市场搜索电视直播看看;有的电视台节目可以直接微信关注公众号,然后微信直接看电视直播。RTMP 是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/...
VUE中播放海康威视RTSP/RTMP/ISC平台/NVR视频流
1. 无插件方案,如FFmpeg + node.js,需在服务器搭建转码服务,虽然成本高且可能增加延迟,适合对清晰度要求不高的场景,但商业应用效果不佳。2. 有插件方案,如海康威视提供的开发包,尽管延迟低,但依赖NPAPI插件,可能与新版本浏览器不兼容,存在安全风险且厂商间不通用。另一种选择是liveweb播放器...
obs推流到苹果手机
3. 在应用程序中找到直播地址的输入框,输入你的OBS推流地址。这通常是一个URL,格式类似于“rtmp://yourstreamkey.com/live”。输入完成后,点击“开始直播”或类似的按钮,开始将OBS的流推送到你的iPhone。请注意,推流过程可能需要确保OBS设置正确,以及你有稳定的网络连接。此外,直播应用程序可能会...
RTMP(实时信息传输协议)详解
3.1 Chunking(消息拆分)为了灵活性和效率,RTMP将Message拆分为Chunk。每个Chunk都包含Message ID,接收端依据此ID重组数据。大小由Set Chunk Size控制,大小设置需在发送和接收端保持一致,以平衡CPU和带宽利用。3.2 Chunk Format(块格式详解)Chunk Header包含流ID(CSID)和类型标识,基本Header长度...
rtmp推流地址是什么?
标准的推流地址格式为rtmp://主机地址/应用名/流名称,例如rtmp://example.com/myApp/myStream。在这个地址中,rtmp协议负责数据的实时传输,服务器接收这个地址后,将音频和视频内容分发到指定的应用和流中,客户端(如直播平台或视频播放器)通过这个地址获取并播放这些实时内容。无论是直播活动、视频...
流媒体推拉流实战之RTMP协议分析(BAT面试官推荐)
连接地址示例:rtmp://192.168.121.31/live/36,应用实例区分功能。创建流命令用于建立传输通道,返回唯一Stream ID。play命令启动音视频传输。deleteStream命令用于删除指定流。RTMP数据流向分析。传输流程:消息拆包、网络发送与接收。发送端:封装数据、拆包传输。接收端:组包恢复数据。切包原因:适应...
如何从RTMP源将流拉到Wowza Stream Engine 4
针对Wowza Media Server 3.5.0及更高版本,用浏览器打开[install-dir]/examples/LiveVideoStreaming/FlashRTMPPlayer/player.html,输入下面的信息,再点击Connect按钮。Server: rtmp://[wowza-ip-address]/live Stream: myStream 如果要从远程电脑上播放这个直播流,你只要将FlashRTMPPlayer文件夹拷贝到一个...
使用ffmpeg将本地摄像头推流至RTSP服务器,支持RTSP和RTMP协议
选择使用哪种协议,需要考虑设备兼容性、实时性需求和网络环境。RTSP适合于IP摄像头和物联网设备,因其低延迟和对RTSP支持较好。RTMP在流媒体应用程序中更常见,因为它对浏览器的兼容性更好。将本地摄像头推流至RTSP服务器,可以借助ffmpeg工具。例如,通过rtsp-simple-server作为中转,ffmpeg作为客户端推流...