RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder)推送音视频数据至RtmpServer,可实现摄像头实时直播。 不过,毕竟FMLE应用范围有限,想要把它嵌入到自己的程序中,还是要自己来实现RTMP协议的推送。
不同的应用配置:譬如FMLE推上来的流是h264+mp3,可以将音频转码后放到其他的vhost分发hls,这样接入h264+mp3的vhost就不用切hls。
; } case SrsRtmpConnFMLEPublish: { // 按标准的流程进行推流前的交互 if ((err = rtmp->start_fmle_publish = srs_success) { return srs_error_wrap(err, "rtmp: start FMLE publish"); } client type=%d", info->type); } } 这里有三种推流和一种拉流, 这里先看推流: 1.start_xxx_publish是按协议格式做接收推流前的交互, FMLE
source.flv \ -c copy \ -f flv rtmp://192.168.1.170/live/livestream;\ sleep1;\ done 复制 或使用FMLE
RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder)推送音视频数据至RtmpServer,可实现摄像头实时直播。 不过,毕竟FMLE应用范围有限,想要把它嵌入到自己的程序中,还是要自己来实现RTMP协议的推送。
软件编码器,有“串流直播”、“OBS”、“Adobe FMLE”。 使用带有直播功能的IP摄像机。
详细参考RTMP分发 使用FMLE推流: FMS URL: rtmp://10.0.1.1/live Stream:sdtv 播放RTMP流 rtmp://10.0.1.1/live/sdtv rtmp
RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder)推送音视频数据至RtmpServer,可实现摄像头实时直播。 不过,毕竟FMLE应用范围有限,想要把它嵌入到自己的程序中,还是要自己来实现RTMP协议的推送。
-c copy \ -f flv rtmp://192.168.1.170:19350/live/livestream;\ sleep1;\ done 复制 或使用FMLE
--------------- ----- ------------------------- ------------------------- 推送: 可以使用Adobe 的FMLE
acodec copy \ -f flv -y rtmp://192.168.1.170/live/livestream; \ sleep 1; \ done 或使用FMLE
source.flv \ -c copy \ -f flv rtmp://192.168.1.170/live/livestream;\ sleep1;\ done 复制 或使用FMLE
[root@www MonaServer]# ls www myapp [root@www MonaServer]# 通过使用推流工具来进行测试,可以使用OBS或者FMLE
标准中说,chunked的X3包,是不能包含扩展时间戳的;可惜Adobe的所有产品都用了,从flash到FMLE到FMS。而ffmpeg中也有注释抱怨说Adobe太坑爹了,没事改它干啥。
Haivision是另外一只野鸡编码器,黑爷要支持十万火急,所以看了下,Haivision的协议序列不是FMLE也不是FFMPEG也不是Flash,是自己的一个私有协议: 如果看不太明白,那么下面是个总结
第三方推流软件包括:OBS(推荐)、XSplit、FMLE 等。
后来官方专门制作了一款用于推流的软件 FMLE(全称:Flash Media Live Encoder)。
编码工作一般由硬件编码器、PC端OBS/FMLE、移动端各种采集SDK来完成。这些编码工具除了压缩编码外,其实还完成了采集、编码、封装、协议打包、推流等5大环节。