1. 程式人生 > >使用live555 VLC傳送接收視訊TS流

使用live555 VLC傳送接收視訊TS流

從中可以看出,對於轉碼的需求,也僅僅是添加了藍色的一段options而已
--sout "#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:duplicate{dst=display,dst=standard{mux=ts{pid-video=100,pid-audio=101,pid-pmt=98},access=udp,dst=172.22.102.56:3940}}"

對於轉碼,有音訊和視訊不同類似的轉碼方式,組合後其方式會更多,具體的可以使用VLC的UI配置方式,在選擇不同的轉碼方式後,來檢視對應生成的command有何不同,在此僅僅列舉其中的幾種:

 Video - H.264 + MP3 (MP4)
 vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100

 Video - H.264 + MP3 (TS)
 vcodec=h264,vb=800,acodec=mpga,ab=128,channels=2,samplerate=44100

 Audio - MP3 (MP4)
 vcodec=none,acodec=mpga,ab=128,channels=2,samplerate=44100

 Video for MPEG4 1080p TV/device
 vcodec=h264,vb=3500,width=1920,height=1080,acodec=mp3,ab=192,channels=2,samplerate=44100


需要注意:
1. 使用轉碼後,從測試效果來看,通常會出現馬賽克。是因為轉碼需要消耗一定的cpu資源導致?
2. 使用UDP等方式推送的TS,Client在接收時候需要" vlc udp://@:3940", "vlc udp://@10.22.76.103:3940" 中需要加上 "@"。在後續使用TCP的 RTSP和HTTP中,可以不用加上@

對於Client的接收方式,以上server不同的推送方式下,都是一樣的