linux下使用vlc命令行推流

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

猜你喜欢

转载自blog.csdn.net/Sheleon1995/article/details/126242937