vlc生成rtsp流

一、 命令行方式,在linux下测试可可以

1. Ubuntu环境下安装vlc:

      apt-get install vlc

2. 获取vlc帮助

      vlc --help 或者 vlc --help--advanced

3. vlc的debug log

      vlc --vv --extraintf=logger

      运行的log将会保存在vlc-log.txt中。

4. 作为服务器通过rtp将本地视频文件ts流往客户端发送(run at server)

vlc-vvv --extraintf=logger /home/video/01.mpg --sout '#transcode{vcodec=h264,vb=800,scale=1,width=500,height=300,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:5544/01.mpg}'

简单的写法

vlc -vvv  /home/qw/master.mp4 --sout '#rtp{sdp=rtsp://:5544/01.mpg}'

      命令各参数详解:(1)参数"/home/video/01.mpg"指定本地的媒体文件路径;(2)参数"sout"表示输出流;(3)参数"transcode"表示转码,其后花括号中各参数表示转码的各个规则:"vcodec"表示视频编码格式,"vb"表示视频位率如800表示800kb/s,"width"和"height"分别表示视频宽度和高度,"acodec"表示音频编码格式,"ab"表示音频位率,"channels"表示音频声道,"samplerate"表示音频采样率;(4)参数"rtp"RTP协议一些参数的设置,以上命令中"rtp"段命令也可写成这样:":rtp{dst=192.168.0.116, port=5544, sdp=rtsp://:5544/01.mpg}"

5.作为服务器转发摄像头实时视频流(run at server)

vlc-vvv --extraintf=logger rtsp://admin:[email protected]/h.264 --sout '#transcode{vcodec=h264,vb=800,scale=1,width=500,height=300,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:5544/cam}'

可以看出其命令格式基本同上相似,只是视频源参数换成了rtsp://admin:[email protected]/h.264,在最后rtp段file参数由"/home/video/01.mpg" 变成了" rtsp://admin:[email protected]/h.264"。

6. 作为服务器转发摄像头实时视频流并存储到本地文件命令格式(run atserver)

vlc-vvv --extraintf=logger rtsp://admin:[email protected]/h.264 --sout'#transcode{vcodec=h264,vb=800,scale=1,width=500,height=300,acodec=mp4a,ab=128,channels=2,samplerate=44100}duplicate{dst=std{access=file,mux=ps,dst=/home/video/a.mpg},dst=rtp{sdp=rtsp://:5544/cam}}'

格式说明:命令transcode的参数同上一命令相同,duplicate模式是用做复制视频流,然后根据不同方式处理相应的视频流,duplicate可以有多个dst参数指向不同的流副本,如rtp或者是standard(file),上述参数中std就指向了要存储的视频文件的绝对路径。

一、 界面操作方式,windows验证通过

vlc客户端打开rtsp://ip地址:8554/

猜你喜欢

转载自my.oschina.net/hanxiaodong/blog/1811239