命令行利用ffmpeg實現rtmp推流《轉》

ffmpeg在之前介紹過,是一個至關強大的工具,咱們此次利用它實現rtmp推流(最終推流地址統一爲rtmp://127.0.0.1:1935/live/123)。nginx

 

一、首先下載ffmpeg和ffplay

 
http://ffmpeg.org/

官方下載連接爲:http://ffmpeg.org/服務器

 

二、cmd進入ffmpeg所在目錄

 
cmd進入ffmpeg.exe所在目錄

 

三、ffmpeg查看電腦設備

輸入下面的語句便可列出電腦的設備ide

ffmpeg -list_devices true -f dshow -i dummy工具

 

 
ffmpeg -list_devices true -f dshow -i dummy

能夠看到我電腦裏面有USB2.0 PC CAMERA攝像頭和一個亂碼的麥克風測試

 

若是設備名稱有中文,會出現亂碼,想看設備原名,能夠去設備管理器中查看,又能夠利用第三方工具查看,推薦後者。code

好比使用graphedit,打開程序後 圖表-> 插入過濾器,就能夠看到相應的設備名orm

 
 
 
 
 
能夠發現可用設備爲USB2.0 PC CAMERA和麥克風 (2- USB2.0 MIC)

能夠發現可用設備爲USB2.0 PC CAMERA和麥克風 (2- USB2.0 MIC)視頻

 

四、測試攝像頭是否可用

cmd中輸入下面語句並回車(USB2.0 PC CAMERA爲攝像頭名稱)ip

ffplay -f dshow -i video="USB2.0 PC CAMERA"  開發

或者

ffplay -f vfwcap -i 0

 
彈出的監控畫面

若是成功彈出播放窗口,則表明設備可用,不然多是設備不可用或者設備被佔用

 

五、查看攝像頭和麥克風信息

cmd中輸入下面語句便可查詢攝像頭信息

ffmpeg -list_options true -f dshow -i video="USB2.0 PC CAMERA"  

 
ffmpeg -list_options true -f dshow -i video="USB2.0 PC CAMERA"  

USB2.0 PC CAMERA攝像頭信息

 

cmd中輸入下面語句便可查詢麥克風信息

ffmpeg -list_options true -f dshow -i audio="麥克風 (2- USB2.0 MIC)"  

 
 

麥克風(2- USB2.0 MIC)信息

 

六、本地視頻的推流

先進行簡單的本地視頻推流模擬,咱們在ffmpeg的目錄下放置一個視頻,而後cmd進入該目錄,把視頻推流至rtmp://127.0.0.1:1935/live/123(127.0.0.1:1935爲rtmp服務器地址、live爲nginx配置節點、123當作密鑰,推流拉流地址同樣便可播放),語句以下

ffmpeg.exe -re -i demo.wmv -f flv rtmp://127.0.0.1:1935/live/123

 
推流中...

此時ffmpeg源源不斷的把視頻推流至服務器,若是地址沒錯,能夠利用vlc或其餘手段實現拉流,這裏就先不解釋如何拉流

 

七、攝像頭推流

接下來正式把對攝像頭進行推流,從前面咱們知道攝像頭名稱爲USB2.0 PC CAMERA,並且推流服務器ip爲127.0.0.1:1935,關鍵字爲live,因此cmd中輸入如下語句:

ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123

 
攝像頭推流中

和本地視頻推流同樣,攝像頭拍到的畫面會實時推流出去(固然會有延遲並且如今是沒有聲音的),當地址正確時,能夠實現拉流

 

八、麥克風推流

前面介紹了攝像頭畫面推流,但是沒有聲音,此次咱們把麥克風聲音推流出去,cmd中輸入下面語句

ffmpeg  -f dshow -i audio="麥克風 (2- USB2.0 MIC)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123

 
推送聲音

和前面差很少,聲音被推流出去了,經過vlc拉流能夠聽到錄製的聲音,但很明顯不會有畫面

 

九、攝像頭&麥克風推流

終於到最激動人心的時刻了,咱們此次要實現同時推流攝像頭畫面與聲音,此時咱們的語句應該以下

ffmpeg -f dshow -i video="USB2.0 PC CAMERA" -f dshow -i audio="麥克風 (2- USB2.0 MIC)" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123

或者

ffmpeg -f dshow -i video="USB2.0 PC CAMERA":audio="麥克風 (2- USB2.0 MIC)" -vcodec libx264  -r 25  -preset:v ultrafast -tune:v zerolatency -f flv rtmp://127.0.0.1:1935/live/123

 

 
監控畫面與聲音同步推流

很nice,和前面同樣,畫面與聲音源源不斷的被推流到服務器,接下來咱們就應該正式的開發拉流了



做者:MsgSS
連接: https://www.jianshu.com/p/c141fc7881e7 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索