Rtsp to Rtmp流媒体转发

RTMP是一种设计用来进行实时数据通讯的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通讯。支持该协议的软件包括Adobe Media ServerUltrant Media Serverred5nginxnginx

HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,相对于常见的流媒体直播协议,例如RTMP协议、RTSP协议、MMS协议 等,HLS直播最大的不一样在于,直播客户端获取到的,并非一个完整的数据流。HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件 (MPEG-TS格式),而客户端则不断的下载并播放这些小文件,由于服务器端老是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。因而可知,基本上能够认为,HLS是以点播的技术方式来实现直播。因为数据经过HTTP协议传输,因此彻底不用考虑防火墙或者代理的问题,并且分段文件的时长很短,客户端能够很快的选择和切换码率,以适应不一样带宽条件下的播放。不过HLS的这种技术特色,决定了它的延迟 通常老是会高于普通的流媒体直播协议。服务器

nginx配合ffmpeg作流媒体服务器的原理是: nginx经过rtmp模块提供rtmp服务, ffmpeg推送一个rtmp流到nginx, 而后客户端经过访问nginx来收看实时视频流. HLS也是差很少的原理,只是最终客户端是经过HTTP协议来访问的,可是ffmpeg推送流仍然是rtmp的。网络

1、推送视频文件到rtmp上app

ffmpeg -re -i "D:\videos\test1.mp4"-vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv-s 1280x720 -q 10 rtmp://127.0.0.1:1935/live/test1ide

2、推送到视频文件到hls上测试

ffmpeg -re -i "D:\videos\test1.mp4"-vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv-s 1280x720 -q 10 rtmp://127.0.0.1:1935/hls/test2spa

3、执行ffmpeg命令进行rtsp协议转成rtmp:设计

ffmpeg -i"rtsp://admin:12345@192.168.3.218/h264/ch1/main/av_stream" -f flv -r25 -s 640x480 -an "rtmp://127.0.0.1:1935/live/test3"代理

-i:后面是我所须要的摄像头协议code

-f flv:后面是我要转到nginxrtmp服务器上

-s:视频解析度:(分配率)也就是能调视屏的清晰度,若是在本机上测试建议640*480就好,改变视屏流的解析式cpu会消耗很大

(rtmp服务地址:rtmp://127.0.0.1:1935/myapp/test2)

127.0.0.1nginx启动的机器ip

1935:端口号(以前在nginx.conf里配置的)

live:是application 后面的名称

test3:能够随便起,记获得时候访问rtmp时要一致

相关文章
相关标签/搜索