㈠ 如何在网页端和移动端播放rtmp和hls视频流
安卓设备上的播放——Vitamio
安卓设备3.0以上原生支持hls,但是不支持rtmp,为了统一以及低版本兼容,可以使用第三方的一个播放器库——vitamio。
hls播放
如果仅需要在移动设备的WebView上播放,可以选择使用html中嵌入hls播放。如下html能够在所有Safari或者安卓3.0以上的WebView上播放。这样就不需要使用第三方的播放器。
VideoJS
如果要让网页支持在所有浏览器上播放,就需要使用第三方的播放器。VideoJs是一个较好的播放器库,完全免费,不像JWPlayer一样需要付费才能使用一些高级功能。
㈡ 如何利用VLC或FFMPEG将HTTP的串流转换成RTMP
这个应用主要是将HTTP的串流(非HLS或DASH)转换成RTMP协议传送到Adobe Flash Media Server或Wowza Media Server的媒体服务器。
根据维基网络: “Real Time Messaging Protocol (RTMP) was initially a proprietary protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player and a server. Macromedia is now owned by Adobe, which has released an incomplete version of the specification of the protocol for public use.”
RTMP的协议有以下的参数:
RTMP: 其原始采用TCP port 1935
RTMPS: 将RTMP加载到SSL的安全机制,就类似HTTPS。
RTMPE: 采用Adobe所提供给RTMP所发展的加密版本。
RTMPT: 在RTMP上加挂he RTMP protocol 封装在HTTP请求中,可以穿越防火墙。这是一个很不错的协议,使用TCP端口80和443绕过公司对防火墙。封装的会话可能携带纯RTMP,RTMPS或RTMPE包内。
RTMP 串流
VLC 在 2.0.x版本里可以支持RTMP协议。不过,有些环境却没法执行,例如2.0.2, 2.0.3, 2.0.4, 2.0.6在Windows 2008 Server 64的服务器上确实没法执行。可以开启VLC然后开启网络串流,如“RTMP://aaa.bbb.com:1935/live/串流源“,看看可否开启。主要是VLC 2.0.x采用 ffmpeg/libav的程序库,但是, 有的包装却没法支持。所以必须先做确认。当 librtmp 的支持被启动于 ffmpeg/libav 则RTMPS才可以有功用。
VLC和RTMP的情形主要是用来捕获和转码应用程序生成一个单一的流。是通过另一个应用程序分配给多个客户端。这在Wowza是非常重要的。虽然,Wowza也支持VLC采用UDP/RTP/RTSP方式接收串流,但是,很多情况下是很不稳定的。
LC直接连接到一个的RTMP串流,如WOWZA,不听传入的请求。因此,它是不可能的,以查看的RTMP流直接从VLC。您需要连接到WOWZA,观看流。这是可以用VLC做到的:
$ vlc rtmp://rtmp.server.com:1935/path/to/stream有件事必须提醒的。从VLC将RTMP串流传送给Wowza服务器并不是都很稳定的。有一些时间关系的“虫”会造成Wowza关闭连线。 这样的问题都是与“音频”与”视频“时间戳(Timestamp)有关系的。采用“audio-desync” 选项来整合RTMP也不是个好点子,但是, 可以不断调整与修改。
Webcam RTMP streaming
以下是有关webcam的应用。其他的有采集装置、设备、视频文档等应用。
Windows 的范例
在windows的采集装置都是利用DirectShow这个界面的。在VLC的模块也是用这样的界面,成为“DirectShow“或”dshow”。以下是范例:
$ vlc dshow://"" --sout '#transcode{vcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,ab=64,channels=2}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://rtmp.server.com:1935/path/to/stream}'DirectShow选项也可在QT界面里采用
Linux 的范例
通常在Linux的采集装置上都是采用“video for linux” (v4l2)这个界面。使用指令方式来采集webcam装置(或称为”v4l2 装置”)送出RTMP串流的范例如下:
$ vlc v4l2:// --v4l2-fps=25 --sout '#transcode{vcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,ab=64,channels=2}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://rtmp.server.com:1935/path/to/stream}'这个例子可以自动侦测 v4l2 装置并且选择第一个装置来采集讯号。其他的参数选项如视频标准(PAL, NTSC)、Chroma、宽度、长度等等可以自行设置。必须要注意的是,这些参数设置跟本身的设备有关。 当我门使用debug模式 (-vvv),VLC自身的video for linux (v4l2) 模块会显示出执行时所出现的数值讯息。v4l2 模块提供以下可作为优化的选项:
–v4l2-dev=: 指定所要采集的特定装置
–v4l2-standard=: 使用哪种视频标准,例如: SECAM, PAL, NTSC and more
–v4l2-width=: 视频呈现的宽度(in pixels)
–v4l2-height=: 视频呈现的长度度(in pixels)
以上是描述有关v4l2的参数选项。完整的v4l2模块讯息,可以利用下面的指令查询。
$ vlc -H -p v4l2 --advanced以下是另一个将http串流转码(transcode)到RTMP给Adobe Flash Media Server或Wowza Media Server等视频服务器
cvlc -I mmy http://orginalstreamIPaddress:50014 --sout-mux-caching=5000 --sout='#transcode{venc=x264{keyint=60},vcodec=h264,vb=800}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://destinationIPaddress:1935/live/StreamFile}}' &这是用ffmpeg的方法:
ffmpeg -i http://OriginalIPAddress:50010 -vcodec libx264 -vb 800k -acodec libfaac -ab 64k -f flv rtmp://DestinationIPAddress:1935/live/StreamFile
㈢ rtmpt和rtmp为什么一个加端口号,一个不加
这个应用主要是将HTTP的串流(非HLS或DASH)转换成RTMP协议传送到Adobe Flash Media Server或Wowza Media Server的媒体服务器。
根据维基网络: “Real Time Messaging Protocol (RTMP) was initially a proprietary protocol developed by Macromedia for streaming audio, video and data over the Internet, between a Flash player and a server. Macromedia is now owned by Adobe, which has released an incomplete version of the specification of the protocol for public use.”
RTMP的协议有以下的参数:
RTMP: 其原始采用TCP port 1935
RTMPS: 将RTMP加载到SSL的安全机制,就类似HTTPS。
RTMPE: 采用Adobe所提供给RTMP所发展的加密版本。
RTMPT: 在RTMP上加挂he RTMP protocol 封装在HTTP请求中,可以穿越防火墙。这是一个很不错的协议,使用TCP端口80和443绕过公司对防火墙。封装的会话可能携带纯RTMP,RTMPS或RTMPE包内。
RTMP 串流
VLC 在 2.0.x版本里可以支持RTMP协议。不过,有些环境却没法执行,例如2.0.2, 2.0.3, 2.0.4, 2.0.6在Windows 2008 Server 64的服务器上确实没法执行。可以开启VLC然后开启网络串流,如“RTMP://aaa.bbb.com:1935/live/串流源“,看看可否开启。主要是VLC 2.0.x采用 ffmpeg/libav的程序库,但是, 有的包装却没法支持。所以必须先做确认。当 librtmp 的支持被启动于 ffmpeg/libav 则RTMPS才可以有功用。
VLC和RTMP的情形主要是用来捕获和转码应用程序生成一个单一的流。是通过另一个应用程序分配给多个客户端。这在Wowza是非常重要的。虽然,Wowza也支持VLC采用UDP/RTP/RTSP方式接收串流,但是,很多情况下是很不稳定的。
LC直接连接到一个的RTMP串流,如WOWZA,不听传入的请求。因此,它是不可能的,以查看的RTMP流直接从VLC。您需要连接到WOWZA,观看流。这是可以用VLC做到的:
$ vlc rtmp://rtmp.server.com:1935/path/to/stream有件事必须提醒的。从VLC将RTMP串流传送给Wowza服务器并不是都很稳定的。有一些时间关系的“虫”会造成Wowza关闭连线。 这样的问题都是与“音频”与”视频“时间戳(Timestamp)有关系的。采用“audio-desync” 选项来整合RTMP也不是个好点子,但是, 可以不断调整与修改。
Webcam RTMP streaming
以下是有关webcam的应用。其他的有采集装置、设备、视频文档等应用。
Windows 的范例
在windows的采集装置都是利用DirectShow这个界面的。在VLC的模块也是用这样的界面,成为“DirectShow“或”dshow”。以下是范例:
$ vlc dshow://"" --sout '#transcode{vcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,ab=64,channels=2}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://rtmp.server.com:1935/path/to/stream}'DirectShow选项也可在QT界面里采用
Linux 的范例
通常在Linux的采集装置上都是采用“video for linux” (v4l2)这个界面。使用指令方式来采集webcam装置(或称为”v4l2 装置”)送出RTMP串流的范例如下:
$ vlc v4l2:// --v4l2-fps=25 --sout '#transcode{vcodec=h264,vb=300,fps=25,scale=1,acodec=mp4a,ab=64,channels=2}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://rtmp.server.com:1935/path/to/stream}'这个例子可以自动侦测 v4l2 装置并且选择第一个装置来采集讯号。其他的参数选项如视频标准(PAL, NTSC)、Chroma、宽度、长度等等可以自行设置。必须要注意的是,这些参数设置跟本身的设备有关。 当我门使用debug模式 (-vvv),VLC自身的video for linux (v4l2) 模块会显示出执行时所出现的数值讯息。v4l2 模块提供以下可作为优化的选项:
–v4l2-dev=: 指定所要采集的特定装置
–v4l2-standard=: 使用哪种视频标准,例如: SECAM, PAL, NTSC and more
–v4l2-width=: 视频呈现的宽度(in pixels)
–v4l2-height=: 视频呈现的长度度(in pixels)
以上是描述有关v4l2的参数选项。完整的v4l2模块讯息,可以利用下面的指令查询。
$ vlc -H -p v4l2 --advanced以下是另一个将http串流转码(transcode)到RTMP给Adobe Flash Media Server或Wowza Media Server等视频服务器
cvlc -I mmy --sout-mux-caching=5000 --sout='#transcode{venc=x264{keyint=60},vcodec=h264,vb=800}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://destinationIPaddress:1935/live/StreamFile}}' &这是用ffmpeg的方法:
ffmpeg -i -vcodec libx264 -vb 800k -acodec libfaac -ab 64k -f flv rtmp://DestinationIPAddress:1935/live/StreamFile
㈣ rtmp除了flash之外还有其他方式播放吗
使用canvas逐帧渲染。不要担心声音,声音也是支持的。自己实现比较简单,也可以用类似WebGL等的方式。
㈤ 如何通过RTMP将流推送给Wowza Stream Engine 4
这个部分描述了建立一个直播应用的过程以及Application.xml文件中的相关配置。
创建一个应用文件夹[install-dir]/applications/live。
创建一个配置文件夹[install-dir]/conf/live,并将[install-dir]/conf/Application.xml拷贝到这个新的文件夹下。
打开并编辑这个新拷贝的Application.xml文件,按下面的描述修改配置(可能有些配置已经是配置好的):
注意: 点击这里可以下载一个已经有默认配置的Application.xml。
将Streams/StreamType属性设置为:
Code:
<StreamType>live</StreamType>
将HTTPStreamers属性设置为:
Code:
<HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming</HTTPStreamers>
将Streams/LiveStreamPacketizers属性设置为:
Code:
<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>
将RTP/Authentication/PlayMethod属性设置为:
Code:
<PlayMethod>none</PlayMethod>
打开并编辑[install-dir]/conf/publish.password文件,添加一个username和password,用来控制RTSP/RTP推送时对wowza的访问(下面是一个username为myuser,password为mypassword的文件例子):
Code:
# Publish password file (format [username][space][password])
# username password
myuser mypassword
启动Wowza Stream Engine 4
推送
在你的编码器上输入下面的信息,然后再点击Publish或Start按钮:
Host Address: [wowza-ip-address]:1935
Stream Name: live/myStream.sdp
注意: 关于在编码器上向Wowza Media Server推送直播流的具体操作依据编码器的不同而不同。要了解更多如何在编码器上推送直播流,请联系你的编码器厂家。
播放
注意:在下面的例子中,[wowza-ip-address] 是运行Wowza Stream Engine 4的IP地址或域名。
Adobe Flash Player (RTMP)
针对Wowza Media Server 3.5.0及更高版本,用浏览器打开[install-dir]/examples/LiveVideoStreaming/FlashRTMPPlayer/player.html,输入下面的信息,再点击Connect按钮。
Server: rtmp://[wowza-ip-address]/live
Stream: myStream
如果要从远程电脑上播放这个直播流,你只要将FlashRTMPPlayer文件夹拷贝到一个web server上,然后用浏览器访问: http://<webserver>/FlashRTMPPlayer/player.html即可。
Adobe Flash Player (San Jose/Adobe HDS)
针对Wowza Media Server 3.5.0及更高版本,用浏览器打开[install-dir]/examples/LiveVideoStreaming/FlashHTTPPlayer/player.html,输入下面的信息,再点击Connect按钮。
如果要从远程电脑上播放这个直播流,你只要将FlashHTTPPlayer文件夹拷贝到一个web server上,然后用浏览器访问: http://<webserver>/FlashHTTPPlayer/player.html即可。
注意: 要使用HDS播放这个直播流,你必须采用一个基于OSMF的Flash播放器。
Apple iOS device (Cupertino/Apple HLS)
在苹果设备上的Safari®web浏览器上打开下面的URL:
URL: http://[wowza-ip-address]:1935/live/myStream/playlist.m3u8
注意: The Apple®iPhone®3GS (及更早的设备) 以及iPod touch®终端需要视频的编码格式为H.264 format (Baseline profile level 3 或更低) 以及音频编码格式为AAC或MP3立体声。
注意:你也可以在一台Mac OS® X Snow Leopard 10.6 或更高版本的电脑上用Safari web 浏览器或QuickTime 10.x播放这个直播流。
Microsoft Silverlight (Smooth Streaming)
针对Wowza Media Server 3.5.0及更高版本,用浏览器打开[install-dir]/examples/LiveVideoStreaming/SilverlightPlayer/player.html,输入下面的信息,再点击Connect按钮。
Stream: http://[wowza-ip-address]:1935/live/myStream/Manifest
如果要从远程电脑上播放这个直播流,你只要将SilverlightPlayer文件夹拷贝到一个web server上,再访问: http://<webserver>/SilverlightPlayer/player.html。
注意: The Microsoft® Silverlight® 播放器需要音频和视频同时存在。针对直播流,关键帧的频率(可以在编码器上设置或者叫做gop/fps)必须在1到4秒之间(推荐采用2秒)。只要超过4秒播放就会停止。
RTSP/RTP player
在RTSP/RTP播放器中输入下面的URL:
URL: rtsp://[wowza-ip-address]:1935/live/myStream
㈥ WEB服务器,FTP服务器和流媒体服务各自主要功能及其主要配置平台
通俗的说,WEB服务器--网站发布,FTP服务器--上传下载,流媒体服务--流媒体发布。
windows 2003 windows 2008都可以配置,对硬件要求不高的
㈦ 在微信浏览器里面播放rtmp 是怎么实现的
基本原理是通过websocket连接服务器,在websocket中传输rtmp协议的二进制数据,微信浏览器里面使用javascript解析rtmp协议。
1、通过Boardway.js 和speex.js来解析音视频数据;
2、通过webgl或者rgb渲染画面,AudioContext播放声音。
㈧ 流媒体和普通web服务器有什么区别
流媒体和服务器是两个概念
web服务器提供了流媒体播放所需要的环境,这样流媒体就可以实现点播与直播
web服务器能播放不是服务器可以播放,而是服务器支持了如flash这样视频解码,就是有客户端!流媒体,简单的包括播放客户端、通信协议、服务器基本这三块
tomcat是支持并发量的,可以支持多少客户端同时取文件播放,一般利用live555支持流的传输,并且web也不是必须用http!的看具体的情况,支持的协议rtsp http rtmp都可以
㈨ webrtc支持rtmp协议吗
一) sipdroid 1)架构 sip协议栈使用JAVA实现,音频Codec使用skype的silk(Silk编解码是Skype向第三方开发人员和硬件制造商提供免版税认证(RF)的Silk宽带音频编码器)实现。NAT传输支持stun server. 2)优缺点: NAT方面只支持STUN,无ICE框架,...
㈩ 如何用c++开发rtmp流媒体服务器
RTMP直播协议,是Adobe公司推出的以flash播放器为客户端的实时直播流协议,是一种应用非常广泛的通信协议。而flash直播,也是到目前为止,web页面上最成熟的直播技术。不过,因为flash主要是嵌入到web页面中,因此,RTMP直播,通常也就局限在B/S形式的直播应用。