欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
FFmpeg獲取DirectShow設備數據(攝像頭,錄屏)

這兩天研究了FFmpeg獲取DirectShow設備數據的方法,在此簡(jiǎn)單記錄一下以作備忘。本文所述的方法主要是對應Windows平臺的。

1.       列設備

  1. ffmpeg -list_devices true -f dshow -i dummy  

命令執行后輸出的結果如下(注:中文的設備會(huì )出現亂碼的情況)。列表顯示設備的名稱(chēng)很重要,輸入的時(shí)候都是使用“-f dshow -i video="{設備名}"”的方式。


我自己的機器上列出了以下設備:

  1. [dshow @0388f5e0] DirectShow video devices  
  2. [dshow @0388f5e0]  "Integrated Camera"  
  3. [dshow @0388f5e0] "screen-capture-recorder"  
  4. [dshow @0388f5e0] DirectShow audio devices  
  5. [dshow @0388f5e0]  "鍐呰楹﹀厠椋?(Conexant20672 SmartAudi"  
  6. [dshow @0388f5e0]  "virtual-audio-capturer"  

下文的測試中,使用其中的兩個(gè)視頻輸入:"Integrated Camera"和"screen-capture-recorder"。

 注:音頻設備出現亂碼,這個(gè)問(wèn)題還沒(méi)有解決。

2.       獲取攝像頭數據(保存為本地文件或者發(fā)送實(shí)時(shí)流)

2.1. 編碼為H.264,保存為本地文件

下面這條命令,實(shí)現了從攝像頭讀取數據并編碼為H.264,最后保存成mycamera.mkv。

  1. ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 mycamera.mkv  

2.2. 直接播放攝像頭的數據

使用ffplay可以直接播放攝像頭的數據,命令如下:

  1. ffplay -f dshow -i video="Integrated Camera"  

如果設備名稱(chēng)正確的話(huà),會(huì )直接打開(kāi)本機的攝像頭,如圖所示。


注:除了使用DirectShow作為輸入外,使用VFW也可以讀取到攝像頭的數據,例如下述命令可以播放攝像頭數據:

  1. ffplay -f vfwcap -i 0  

2.3. 編碼為H.264,發(fā)布UDP

下面這條命令,實(shí)現了:獲取攝像頭數據->編碼為H.264->封裝為UDP并發(fā)送至組播地址。

  1. ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f h264 udp://233.233.233.223:6666  

注1:考慮到提高libx264的編碼速度,添加了-preset:v ultrafast和-tune:v zerolatency兩個(gè)選項。

注2:高分辨率的情況下,使用UDP可能出現丟包的情況。為了避免這種情況,可以添加–s 參數(例如-s 320x240)調小分辨率。

2.4. 編碼為H.264,發(fā)布RTP

下面這條命令,實(shí)現了:獲取攝像頭數據->編碼為H.264->封裝為RTP并發(fā)送至組播地址。

  1. ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtp rtp://233.233.233.223:6666>test.sdp  

注1:考慮到提高libx264的編碼速度,添加了-preset:v ultrafast和-tune:v zerolatency兩個(gè)選項。

注2:結尾添加“>test.sdp”可以在發(fā)布的同時(shí)生成sdp文件。該文件可以用于該視頻流的播放。

2.5. 編碼為H.264,發(fā)布RTMP

下面這條命令,實(shí)現了:獲取攝像頭數據->編碼為H.264->并發(fā)送至RTMP服務(wù)器。

  1. ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://localhost/oflaDemo/livestream  

2.6. 編碼為MPEG2,發(fā)布UDP

與編碼為H.264類(lèi)似,指明-vcodec即可。

  1. ffmpeg -f dshow -i video="Integrated Camera" -vcodec mpeg2video -f mpeg2video udp://233.233.233.223:6666  

播放MPEG2的UDP流如下。指明-vcodec為mpeg2video即可

  1. ffplay -vcodec mpeg2video udp://233.233.233.223:6666  

 

3.       屏幕錄制(Windows平臺下保存為本地文件或者發(fā)送實(shí)時(shí)流)

Linux下使用FFmpeg進(jìn)行屏幕錄制相對比較方便,可以使用x11grab,使用如下的命令:

  1. ffmpeg -f x11grab -s 1600x900 -r 50 -vcodec libx264 –preset:v ultrafast –tune:v zerolatency -crf 18 -f mpegts udp://localhost:1234  

詳細時(shí)使用方式可以參考這篇文章:DesktopStreaming With FFmpeg for Lower Latency

Linux錄屏在這里不再贅述。在Windows平臺下屏幕錄像則要稍微復雜一些。在Windows平臺下,使用-dshow取代x11grab。一句話(huà)介紹:注冊錄屏dshow濾鏡(例如screen-capture-recorder),然后通過(guò)dshow獲取錄屏圖像然后編碼處理。

因此,在使用FFmpeg屏幕錄像之前,需要先安裝dshow濾鏡。在這里推薦一個(gè)軟件:screen capture recorder。安裝這個(gè)軟件之后,就可以通過(guò)FFmpeg屏幕錄像了。

 

screen capture recorder項目主頁(yè):

http://sourceforge.net/projects/screencapturer/

下載地址:

http://sourceforge.net/projects/screencapturer/files

下載完后,一路“Next”即可安裝完畢。注意,需要Java運行環(huán)境(Java Runtime Environment),如果沒(méi)有的話(huà)下載一個(gè)就行。

screen capture recorder本身就可以錄屏,不過(guò)這里我們使用FFmpeg進(jìn)行錄屏。


3.1. 編碼為H.264,保存為本地文件

下面的命令可以將屏幕錄制后編碼為H.264并保存為本地文件。

  1. ffmpeg -f dshow -i video="screen-capture-recorder" -r 5 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency MyDesktop.mkv  

注:“-r 5”的意思是把幀率設置成5。         

最后得到的效果如下圖。


此外,也可以錄聲音,聲音輸入可以分成兩種:一種是真人說(shuō)話(huà)的聲音,通過(guò)話(huà)筒輸入;一種是虛擬的聲音,即錄屏的時(shí)候電腦耳機里的聲音。下面兩條命令可以分別錄制話(huà)筒的聲音和電腦耳機里的聲音。

錄屏,伴隨話(huà)筒輸入的聲音

  1. ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="鍐呰楹﹀厠椋?(Conexant 20672SmartAudi" -r 5 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -acodec libmp3lame MyDesktop.mkv  

上述命令有問(wèn)題:audio那里有亂碼,把亂碼ANSI轉UTF-8之后(亂碼變成“內裝麥克”)依然不行,這個(gè)問(wèn)題先留著(zhù),以后有時(shí)間再解決。

PS:感覺(jué)這條命令適合做講座之類(lèi)的時(shí)候使用

 

錄屏,伴隨耳機輸入的聲音

  1. ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -r 5 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -acodec libmp3lame MyDesktop.mkv  

PS:測這條命令的時(shí)候,這在聽(tīng)歌,因此錄制的視頻中的音頻就是那首歌曲。

 

3.2. 編碼為H.264,發(fā)布UDP

下面的命令可以將屏幕錄制后編碼為H.264并封裝成UDP發(fā)送到組播地址

  1. ffmpeg -f dshow -i video="screen-capture-recorder" -r 5 -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f h264 udp://233.233.233.223:6666  

注1:考慮到提高libx264的編碼速度,添加了-preset:v ultrafast和-tune:v zerolatency兩個(gè)選項。

注2:高分辨率的情況下,使用UDP可能出現丟包的情況。為了避免這種情況,可以添加–s 參數(例如-s 320x240)調小分辨率。

3.3. 編碼為H.264,發(fā)布RTP

下面的命令可以將屏幕錄制后編碼為H.264并封裝成RTP并發(fā)送到組播地址

  1. ffmpeg -f dshow -i video="screen-capture-recorder" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtp rtp://233.233.233.223:6666>test.sdp  

注1:考慮到提高libx264的編碼速度,添加了-preset:v ultrafast和-tune:v zerolatency兩個(gè)選項。

注2:結尾添加“>test.sdp”可以在發(fā)布的同時(shí)生成sdp文件。該文件可以用于該視頻流的播放。如下命令即可播放:

  1. ffplay test.sdp  

3.4. 編碼為H.264,發(fā)布RTMP

原理同上,不再贅述。

  1. ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://localhost/oflaDemo/livestream  

注意:播放RTMP的時(shí)候,-max_delay參數會(huì )比較明顯的影響延遲,將此參數值設定小一些,有利于降低延時(shí)。

  1. ffplay -max_delay 100000 "rtmp://localhost/oflaDemo/livestream live=1"  


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
FFmpeg命令行轉碼
使用ffmpeg推流到Wowza
ffmpeg常用命令
FFMPEG用法用例
ffmpeg 圖片轉視頻命令
FFmpeg x264 encoding guide | robert.swain
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久