注意流媒体转发服务器,取流的方式和推流的方式
推流方式
udp 方式 主动把流发送到某一个IP 和端口
vlc -vvv sample1.avi --sout udp:172.16.1.100:1234 --ttl 10
//把本地的视频文件推到 某一个IP和端口
cvlc --no-audio v4l2:///dev/video0 --v4l2-width 1920 --v4l2-height 1080 --v4l2-chroma h264 --v4l2-fps 30 --v4l2-hflip 1 --v4l2-vflip 1 --sout udp:172.16.1.100:1234 --ttl 10
接收端(IP 172.16.1.100)监听这个端口即可
vlc udp://@:1234
RTP方式 主动把流发送到某一个IP 和端口
vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{dst=172.16.1.100,port=5004,mux=ts,ttl=10}"
接收端(IP:172.16.1.10):
vlc rtp://@:5004
RTSP方式 让客户端主动来索取
vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:rtp{sdp=rtsp://:8554/test}"
//服务端 (IP:172.16.1.113)
客户端
vlc rtsp://172.16.1.113:8554/test
**HTTP方式 让客户端主动来索取**
vlc -vvv sample1.avi --sout "#transcode{vcodec=h264,vb=0,scale=0,acodec=mpga,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:8080/test}"
//服务端 (IP:172.16.1.113)
客户端
vlc http://172.16.1.113:8080/test
使用VLC直接从本地摄像头取流,MPEG压缩,然后传输
cvlc --no-audio v4l2:///dev/video0 --v4l2-width 1920 --v4l2-height 1080 --v4l2-chroma h264 --v4l2-fps 30 --v4l2-hflip 1 --v4l2-vflip 1 --sout "#transcode{vcodec=mjpg,vb=25,scale=1.0,fps=10,acodec=none}:standard{access=http{mime=multipart/x-mixed-replace; boundary=7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8888/videostream.cgi}"
从浏览器播放
http://localhost:8888/videostream.cgi
使用VLC从RTSP网络摄像头取流,MPEG压缩,然后传输
cvlc -R rtsp://10.0.10.64:554/Streaming/Channels/101 --sout "#transcode{vcodec=mjpg,vb=25,scale=1.0,fps=10,acodec=none}:standard{access=http{mime=multipart/x-mixed-replace; boundary=7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:8888/videostream.cgi}"
从浏览器播放
http://localhost:8888/videostream.cgi
参考文档:
用vlc搭建各种流媒体服务器的简单示例