vlc的應用:用vlc串流攝像頭

 原文出處: http://jeremiah.blog.51cto.com/539865/245509

    n就沒有更新博客了,主要是Jeremiah最近對vlc研究的非常的少了,工作重點轉移了,又增加了管理工作,讓Jeremiah忙的暈頭轉向的。

    這篇博客是很久之前就想寫的,今天終於提筆寫了,心情還是比較爽的。廢話不多說。
0. 環境搭建
Jeremiah這次主要是用的vlc-1.0.0(英文版)進行講解。首先需要準備攝像頭,Jeremiah用的是一個普通攝像頭(以前釣MM用的,嘻嘻),驅動安裝好後,在“我的電腦”中顯示如下。
1. vlc播放攝像頭
開啓vlc-1.0.0,media->open capture device,進入Capture Device頁面。這個也可以通過media->Advanced open file,選取此標籤頁。
video device name選擇VIMICRO USB PC Camera (ZC0301PLH),如果沒有,請先選擇Refresh list刷新列表。
audio device name選擇SoundMAX HD Audio,這個是Jeremiah的聲卡。

之後可以勾選show more options,裏面可是設置緩衝及看到MRL和Edit Options,這些信息都是很重要的。Advance Option按鈕裏面有一些詳細設置,大家可以進去選擇,其中video size是可以做調整的。下面會講到。

之後點play,就可以播放了。
2. 用命令行開啓vlc播放攝像頭
命令行的最大好處就是,vlc命令後面的參數,就是我們在編程的時候調用libvlc_new的argv,將這些參數搞明白,我們就可以在編程的時候調用了。

開啓cmd,切換到vlc目錄下。

根據1中的MRL和Edit Options信息,設置vlc播放參數如下。
vlc dshow:// :dshow-vdev="VIMICRO USB PC Camera (ZC0301PLH)" :dshow-adev="SoundMAX HD Audio" :dshow-size=320*240
各個參數什麼意思都是很明顯的,如果不明白,就運行vlc -H,然後到vlc目錄下面去找vlc-help.txt,裏面是全部的參數的介紹。
3. 將vlc播放的攝像頭信息存入文件中
播放成功之後,在達到我們的目的前,我們先做一個簡單的驗證工作,就是播放攝像頭並存入文件。

根據以前stream到文件的參數,修改2的參數如下。
vlc dshow:// :dshow-vdev="VIMICRO USB PC Camera (ZC0301PLH)" :dshow-adev="SoundMAX HD udio" :dshow-size=320*240 :sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp3,ab=128,channels=2,samplerate=44100}:std{access=file,mux=ts,dst=D:/01.ts}}
這裏用到了轉碼,就是將攝像頭的視頻編碼爲h264,音頻編碼爲MP3,然後封裝爲ts寫入到d:/01.ts中。

這個不會顯示攝像頭,但是通過刷新d:/01.ts就會發現這個文件是在增大的,也就是有視頻流在寫入。
4. 將攝像頭串流到網絡中
根據3的參數做簡單的修改就可以達到串流攝像頭視頻流到網絡的目的了。修改3的參數如下。
vlc dshow:// :dshow-vdev="VIMICRO USB PC Camera (ZC0301PLH)" :dshow-adev="SoundMAX HD Audio" :dshow-size=320*240 :sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp3,ab=128,channels=2,samplerate=44100}:duplicate{dst=display,dst=rtp{dst=127.0.0.1,mux=ts,port=1234}}
這裏的duplicate大家應該都很熟悉了,因爲在錄像,vlm裏面都講過這個參數。參數的意思是,將攝像頭的音視頻流分別編碼爲MP3和h264之後封裝爲ts,然後通過rtp發送到127.0.0.1的1234端口上,同時顯示出來。如果希望發送到其他網絡地址或組播裏面只需要改變127.0.0.1和1234爲我們需要的地址和端口即可。

再開啓一個vlc,播放這個ts over rtp流。
vlc rtp://@:1234 --rtp-caching=1500
成功後就可以看到了。切圖如下:
左邊的是攝像頭的流服務,右邊的是流的客戶端,從下邊的地址就能看的很清楚。
5. 遺留問題:
從圖片可以看出,播放的視頻顏色是不對的,是攝像頭的問題還是vlc本身的問題還是參數設置的問題,現在不得而知,當然攝像頭本身是沒問題的,因爲qq視頻都很正常。希望誰研究出來告訴我一聲。謝謝。
發佈了188 篇原創文章 · 獲贊 24 · 訪問量 104萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章