Linux环境下实现VLC转发视频流命令格式简介

时间:2021-12-06 16:51:13

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}'

      命令各参数详解:(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:12345@192.168.0.101/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:12345@192.168.0.101/h.264,在最后rtp段file参数由"/home/video/01.mpg" 变成了" rtsp://admin:12345@192.168.0.101/h.264"。

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

vlc-vvv --extraintf=logger rtsp://admin:12345@192.168.0.101/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就指向了要存储的视频文件的绝对路径。

 水平有限,欢迎大家多提意见,多多指教!!