2013年4月25日 星期四

VLC : Webcam 擷取變串流

2013年4月25日 星期四
以前一直以為 VLC 這個自由軟體只是影音播放器而,最近仔細的研究了一番,發現它的功能如同 FFmpeg 一樣,多而強大!除了可以取代 media player 的播放功能,因為內建了 HTTP 服務程式,可以遠端控制,甚至成為串流伺服器,把正在播放的影音(影片、Webcam、電腦桌面)變成串流,分享給其它遠端的機器......,哈!好像要寫很多篇才介紹得完。先來看看如何以 Webcam 拍攝畫面,再把畫面變成串流,讓其它人可以在它處收看內容。

VLC 的下載網址如下:


Step 1 :

當我們把 Webcam 接好,並點選上方選單中的 [媒體] → [擷取裝罝] 就可以出現目前可以擷取畫面裝置的頁面:

其中的「擷取模式」中,包括了「DirectShow」、「數位電視」和「桌面」,這三種都可以再選取最下面的「排入佇列」、「播放」、「串流」和﹞「轉換」來執行。Webcam 選用的「擷取模式」是「DirectShow」。選完還可以指定「視訊裝置名稱」及「音訊裝置名稱」,這裡我們先忽略不選取,都用「預設」即可。

Step 2 :

接著選取執行的動作,我們先點選圖中 1 的小箭頭展開選項,然後再點選「串流」,準備進行串流服務的相關設定。

看看畫面,「來源」已自動填入「dshow://」
按「下一個」的按鈕,準備設定「目的地」。

Step 3 :


這邊可以讓我們選取要將影音輸出成哪一種串流服務,我們先試試用 HTTP 的方式:

  1. 勾選「本機顯示」,讓我們的 VLC 可以監看輸出的結果。
  2. 點選「HTTP」。
  3. 按「加入」鈕,把 HTTP 服務加入。


如果加入成功,會出現「連接埠」和「路徑」兩選項,保持預設值即可。


Step 4 :

「轉碼選項」的部份,如果遠端也是用 VLC 來觀看,使用預設的「Video - H.264 + MP3 (MP4)」的設定檔即可。如果遠端是用 MS Media Player 來觀看,則可以改用「Video - Div3 + MP3 (ASF)」的設定檔。如果是想使用網頁瀏覽器來觀看,則必須使用「MJPEG」才行(這部份請參考最後面,直接貼語法比較快)。

選好轉碼的「設定檔」後,就可以按「下一個」來繼續最後的步驟。


Step 5 :
最後,VLC 會把依據我們前面設定所產生的語法,顯示在「選項設定」的頁面上,已經設定好了,所以直接按「串流」的按鈕,正常的話,我們可以在自己的 VLC 中看到 Webcam 的畫面,而串流服務也開啟,可以在另一臺電腦開啟播放軟體來看串流了。


連線的網路是什麼?

網址呢? 我們可以先打開 Windows 附屬應用程式的「命令提示字元」,然後以鍵盤輸入底下的指令後按 Enter 鍵來查詢:
ipconfig
將查到的 IP 和我們在 Step 3 中的埠號結合起來,假設電腦的 IP 為 192.168.1.100,而 Step 4 中用的是預設的埠號 8080 ,網址就是:
http://192.168.1.100:8080
只要將這串網址在串流播放器中輸入並開啟,應該就可以看到 Webcam 所拍攝的影像了。


如何使用瀏灠器就可以觀看影像

如果我們採用的是 M-JPEG 格式的串流,這樣,我們就可以跨平臺的在像 Chrome、Firefox、Safari ...... 等瀏覽器中觀看 Webcam 的串流。

最快的方法是直接貼語法,先照前的方法選取「DirectShow」的「擷取模式」後按「串流」,然後直接點選最下方的「選項設定」,跳前我們前面提過的 Step 5,將語法貼入「產生的串流輸出字串」中:
:sout=#transcode{vcodec=MJPG,vb=800,fps=15,scale=1,width=800,height=600,acodec=none}:duplicate{dst=http{mux=mpjpeg,dst=:8080/,access="http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a}"},dst=display} :sout-keep
裡面的 :
  • width=800, height=600 可以換成自己想要的畫面大小。
  • fps=15 可以換成自己想要的每秒影格數(FPS)。
  • vb=800 是 Video Bit Rate ,愈大畫質愈好。
這裡和我們利用圖形界面來設定的方法來比較,串流輸出字串裡,最大的不同是:
  • vcodec=MJPG
  • access="http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a}"
這兩部份。尤其 access 指定了資料在編碼時的格式,如果少了這個,當我們用瀏覽器開網址時,只會出現「下載」,而看不到畫面。

設定好了,就直接按 Step 5 畫面中的「串流」按鈕。

接著就可以打開瀏覽器,並在網址列中輸入類似 http://192.168.1.100:8080 這樣的網址來觀看了。







1 則留言:

  1. 你好,最近參考了您的文章。成功的完成CCD影像的串流,但是卻沒辦法傳送聲音,不知道這部分您有做過測試嗎? 感謝

    回覆刪除

 
雄::gsyan © 2009. Design by Pocket