vlc的應用:用vlc串流攝像頭
原文出處: http://jeremiah.blog.51cto.com/539865/245509
n就沒有更新部落格了,主要是Jeremiah最近對vlc研究的非常的少了,工作重點轉移了,又增加了管理工作,讓Jeremiah忙的暈頭轉向的。
這篇部落格是很久之前就想寫的,今天終於提筆寫了,心情還是比較爽的。廢話不多說。
0. 環境搭建
Jeremiah這次主要是用的vlc-1.0.0(英文版)進行講解。首先需要準備攝像頭,Jeremiah用的是一個普通攝像頭(以前釣MM用的,嘻嘻),驅動安裝好後,在“我的電腦”中顯示如下。
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的音效卡。
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,將這些引數搞明白,我們就可以在程式設計的時候呼叫了。
命令列的最大好處就是,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的引數如下。
根據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視訊都很正常。希望誰研究出來告訴我一聲。謝謝。
從圖片可以看出,播放的視訊顏色是不對的,是攝像頭的問題還是vlc本身的問題還是引數設定的問題,現在不得而知,當然攝像頭本身是沒問題的,因為qq視訊都很正常。希望誰研究出來告訴我一聲。謝謝。
相關文章
- vlc+flv.js 攝像頭 H5 直播JSH5
- vlc的應用:用vlc做單播,組播及點播伺服器伺服器
- 搭建一個攝像頭應用程式 應用程式內部攝像頭
- 攝像頭背後的應用–資訊圖
- 用VLC做流媒體伺服器伺服器
- UVC 攝像頭在 RK3399 上的應用
- Android多媒體應用開發-控制攝像頭拍照Android
- iOS應用自動撥打電話,開啟攝像頭缺陷iOS
- 新增VLC錄影APIAPI
- Windows下編譯VLCWindows編譯
- VLC工具使用指南
- 如何在SAP UI5應用裡新增使用攝像頭拍照的功能UI
- 用樹莓派USB攝像頭做個監控樹莓派
- win10攝像裝置被佔用怎麼辦_win10攝像頭被佔用的解決方法Win10
- OBS+Nginx+VLC推拉流Nginx
- Win10系統如何開啟網路攝像頭應用設定Win10
- 攝像頭操作指南
- ToDesk勾上攝像頭會看到我嗎?如何關閉攝像頭
- vlc play video shared by sambaIDESamba
- win10如何開啟電腦攝像頭錄影_win10用電腦自帶攝像頭錄影的方法Win10
- 攝像頭黑屏怎麼辦 各種攝像頭不能用的解決方法
- vlc-android 的編譯過程Android編譯
- 安卓呼叫攝像頭拍照安卓
- Android呼叫攝像頭Android
- .NET 攝像頭採集
- 教你用python操作攝像頭以及對影片流的處理Python
- 啟明雲端ESP32-S2 攝像頭 WIFI方案應用於智慧貓眼WiFi
- Win10攝像頭如何開啟_WIN10攝像頭在哪裡Win10
- 攝像頭不能用怎麼辦 攝像頭不能用解決辦法
- Android提供的攝像頭拍照Android
- Win10怎麼開啟攝像頭 win10開啟攝像頭的方法Win10
- 熱像儀長焦鏡頭、廣角鏡頭和微距鏡頭的應用
- 佳能公佈可更換式鏡頭卡口專利 已應用於攝像機上
- 某CCTV攝像頭漏洞分析
- android opencv 前置攝像頭AndroidOpenCV
- Android呼叫攝像頭拍照Android
- android 開啟攝像頭Android
- jQuery webcam plugin呼叫攝像頭jQueryWebPlugin