VLC使用总结
关键字: VLC, streaming server, VOD server, media trascoding, streaming media player, audio broadcasting over IP, 音频广播 在线广播 Live radio broadcast
VLC是一个跨平台的多媒体框架,可以作为(流)媒体播放器,VOD服务器,流媒体服务器,multicast RTP多播音频服务器,媒体文件转码等功能。
同时在使用方面提供了HTTP REST API,telnet,命令行,图形界面,VLM配置文件的方式。
编程方面有libVLC可供使用,提供多种binding方式,不过本文主要关于命令行下面的简单操作与使用,算是对官方VLC howto的一个验证(官方文档有一些都跑不起来,需要理解相关的原理,可以作为深入理解VLC的参考资料)
使用环境:Ubuntu 18.04下VLC相应的版本
1. 命令行下VLC 将本地视频文件ts流往客户端发送
cvlc -vvv xxx.mp4 --sout '#transcode{vcodec=h264,vb=800,scale=1,width=1360,height=768,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{dst=192.168.50.128, port=9000, sdp=rtsp://:9000/}'
2.命令行下VLC 将桌面ts流往客户端发送
cvlc -vvv screen:// --sout '#transcode{vcodec=h264,vb=800,scale=1,width=1360,height=768,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{dst=192.168.50.128, port=9000, sdp=rtsp://:9000/}'
命令参数含义:
A.参数"xxx.mp4":指定本地的媒体文件路径(绝对或相对路径);
B.参数"sout":表示输出流;
C.参数"transcode":表示转码,转码规则:
"vcodec":表示视频编码格式,
"vb":表示视频位率如800表示800kb/s,
"width"和"height":分别表示视频宽度和高度,
"acodec":表示音频编码格式,
"ab":表示音频位率,
"channels":表示音频声道,
"samplerate":表示音频采样率;
D.参数"rtp":表示RTP协议参数的设置,以上命令中"rtp"段命令也可简写成这样:":rtp{sdp=rtsp://:9000/}"
简写命令:
cvlc -vvv xxx.mp4 --sout '#rtp{sdp=rtsp://:9000/}'
cvlc -vvv screen:// --sout '#rtp{sdp=rtsp://:9000/}'