如何利用VLC或FFMPEG将HTTP的串流转换成RTMP
这个应用主要是将HTTP的串流转换成RTMP协议传送到Adobe Flash Media Server或Wowza Media Server的媒体服务器。
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 在 20x版本里可以支持RTMP协议。不过,有些环境却没法执行,例如202, 203, 204, 206在Windows 2008 Server 64的服务器上确实没法执行。可以开启VLC然后开启网络串流,如“RTMP://aaabbbcom:1935/live/串流源“,看看可否开 启。主要是VLC 20x采用 ffmpeg/libav的程序库,但是, 有的包装却没法支持。所以必须先做确认。当 librtmp 的支持被启动于 ffmpeg/libav 则RTMPS才可以有功用。
VLC和RTMP的情形主要是用来捕获和转码应用程序生成一个单一的流。是通过另一个应用程序分配给多个客户端。这在Wowza是非常重要的。虽然,Wowza也支持VLC采用UDP/RTP/RTSP方式接收串流,但是,很多情况下是很不稳定的。
LC直接连接到一个的RTMP串流,如WOWZA,不听传入的请求。因此,它是不可能的,以查看的RTMP流直接从VLC。您需要连接到WOWZA,观看流。这是可以用VLC做到的:
$ vlc rtmp://rtmpservercom: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://rtmpservercom: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://rtmpservercom: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 dummy 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
需要socket(套接字)编程、HTTP协议的知识,实现一个最简单的HTTP服务器,其实就是根据HTTP协议的通信规则来发送socket数据,往往是绑定(用bind调用)一个socket(套接字)然后监听(用listen调用)80端口,具体任何实现可以参考网上的一些简单的代码。之所以说这是最简单的HTTP服务器,是因为HTTP服务器还要处理并发、缓存等功能,更进一步还要支持某种动态脚本比如PHP的模块。
1、客户与服务器建立连接;
2、客户向服务器提出请求;
3、服务器接受请求,并根据请求返回相应的文件作为应答;
4、客户与服务器关闭连接。
HTTP的性质:
1、HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。
2、HTTP是一种面向对象的协议。允许传送任意类型的数据对象。它通过数据类型和长度来标识所传送的数据内容和大小,并允许对数据进行压缩传送。
扩展资料
http代理的作用:
1、突破自身IP访问限制,访问国外站点。如:教育网、169网等网络用户可以通过代理访问国外网站。
2、访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务。
3、隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。
-http
HTTP上传下载大文件总是通过80端口,而FTP上传下载文件却不通过21端口
FTP服务要用到两个端口,21号端口是用来建立控制连接的,而20号断口才是用来建立数据连接的(即用来传输数据的)
HTTP也一样,80端口是用来建立连接用的,它会起一个别的端口去接收数据
建HTTP下载服务器:
外网使用端口映射就能解决,内网下个软件就可以了
或
1、给这台计算机分配固定ip地址
2、安装Serv-U之类的ftp软件,并且按要求设置
3、如果内网访问直接输入ip地址就可以了
4、如果外网也要访问则需要这台计算机上安装花生壳之类的动态域名软件绑定ADSL的动态ip地址,然后在路由器上映射这台的计算机的21端口到广域网ip地址的21端口上,这样外网就可以通过花生壳的动态域名访问你的ftp服务器了。
超文本传输协议,缩写为HTTP,它是一种用于分布式、协作式和超媒体信息系统的应用层协议,是万维网的数据通信的基础,也是互联网应用最为广泛的一种网络传输协议。最初设计HTTP的目的是为了提供一种发布和接收HTML页面的方法。HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织所发起,标准制定由万维网协会和互联网工程任务组进行协调,目前HTTP协议中最广泛使用的版本是HTTP 11。
0条评论