ffmpeg

centos 安裝ffmpeg

[root@localhost ffmpeg]cd /opt
[root@localhost ffmpeg]xz -d ffmpeg-release-amd64-static.tar.xz
[root@localhost ffmpeg]tar -xvf ffmpeg-release-amd64-static.tar
[root@localhost ffmpeg]mv ffmpeg-release-amd64-static ffmpeg

配置環(huán)境變量

vi /etc/profile
export FFMPEG_PATH=/opt/ffmpeg/ffmpeg
export CLASSPATH=$FFMPEG_PATH/lib:$CLASSPATH
PATH=$FFMPEG_PATH/bin:$PATH
source /etc/profile
ffmpeg -version

獲取攝像頭推流

ffmpeg -list_devices true -f dshow -i dummy #獲取攝像頭名稱(chēng)
ffmpeg -f dshow -i video="獲取的攝像頭的名稱(chēng)" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -f flv <推流地址> #獲取視頻流并推流

舉例

ffmpeg -f dshow -i video="EasyCamera" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -f flv rtmp://172.18.0.x.x:1935/vod/video # 傳輸?shù)姆直媛蚀?,視頻較為卡頓
ffmpeg -f dshow -i video="EasyCamera" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -vf scale=iw/2:-1 -f flv rtmp://172.18.0.x.x:1935/vod/video # 分辨率減少一半,視頻較流暢

前提:

首先你得有FFmpeg(ffmpeg官網(wǎng)快捷通道:http://ffmpeg.org/

再者,推流你得有個(gè)流媒體服務(wù),個(gè)人測(cè)試用小水管:rtmp://eguid.cc:1935/rtmp/test(小水管,請(qǐng)盡量錯(cuò)開(kāi)時(shí)間使用,另切記推流視頻碼率不要太高,避免占用太多帶寬)

一、攝像頭信息采集和錄制推流

攝像頭名稱(chēng)要通過(guò)這個(gè)命令拿到,然后替換掉下面的“Integrated Camera”這個(gè)名稱(chēng)即可推流或者錄制成文件

ffmpeg -list_devices true -f dshow -i dummy

ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -acodec copy -preset:v ultrafast -tune:v zerolatency -f flv rtmp://eguid.cc:1935/rtmp/eguid

二、桌面屏幕錄制

1、屏幕錄制并保存成文件

ffmpeg -f gdigrab -i desktop eguid.mp4

2、屏幕錄制并推流

ffmpeg -f gdigrab -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://eguid.cc:1935/rtmp/destop

三、視頻文件推流

ffmpeg -re -i eguid.flv -vcodec copy -acodec copy -f flv -y rtmp://eguid.cc:1935/rtmp/eguid

四、轉(zhuǎn)流(rtsp轉(zhuǎn)rtmp為例)

ffmpeg -i rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov -rtsp_transport tcp -vcodec h264 -acodec aac -f flv rtmp://eguid.cc:1935/rtmp/eguid

五、拉流

ffmpeg -i rtmp://eguid.cc:1935/rtmp/eguid -vcodec h264 -f flv -acodec aac -ac 2 eguid.flv
————————————————

原文鏈接:https://blog.csdn.net/az44yao/article/details/98104615

<meta charset="utf-8">

<article class="_2rhmJa">

ffmpeg在以前介紹過(guò),是一個(gè)相當(dāng)強(qiáng)大的工具,我們這次利用它實(shí)現(xiàn)rtmp推流(最終推流地址統(tǒng)一為rtmp://127.0.0.1:1935/live/123)。

1、首先下載ffmpeg和ffplay

image

官方下載鏈接為:http://ffmpeg.org/

2、cmd進(jìn)入ffmpeg所在目錄

image

3、ffmpeg查看電腦設(shè)備

輸入下面的語(yǔ)句即可列出電腦的設(shè)備

ffmpeg -list_devices true -f dshow -i dummy

image

可以看到我電腦里面有USB2.0 PC CAMERA攝像頭和一個(gè)亂碼的麥克風(fēng)

如果設(shè)備名稱(chēng)有中文,會(huì)出現(xiàn)亂碼,想看設(shè)備原名,可以去設(shè)備管理器中查看,又可以利用第三方工具查看,推薦后者。

比如使用graphedit,打開(kāi)程序后 圖表-> 插入過(guò)濾器,就可以看到相應(yīng)的設(shè)備名

image
image
image

可以發(fā)現(xiàn)可用設(shè)備為USB2.0 PC CAMERA和麥克風(fēng) (2- USB2.0 MIC)

4、測(cè)試攝像頭是否可用

cmd中輸入下面語(yǔ)句并回車(chē)(USB2.0 PC CAMERA為攝像頭名稱(chēng))

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

或者

ffplay -f vfwcap -i 0

image

如果成功彈出播放窗口,則代表設(shè)備可用,否則可能是設(shè)備不可用或者設(shè)備被占用

5、查看攝像頭和麥克風(fēng)信息

cmd中輸入下面語(yǔ)句即可查詢(xún)攝像頭信息

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

image

USB2.0 PC CAMERA攝像頭信息

cmd中輸入下面語(yǔ)句即可查詢(xún)麥克風(fēng)信息

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

image

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

6、本地視頻的推流

先進(jìn)行簡(jiǎn)單的本地視頻推流模擬,我們?cè)趂fmpeg的目錄下放置一個(gè)視頻,然后cmd進(jìn)入該目錄,把視頻推流至rtmp://127.0.0.1:1935/live/123(127.0.0.1:1935為rtmp服務(wù)器地址、live為nginx配置節(jié)點(diǎn)、123當(dāng)做密鑰,推流拉流地址一樣即可播放),語(yǔ)句如下

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

image

此時(shí)ffmpeg源源不斷的把視頻推流至服務(wù)器,如果地址沒(méi)錯(cuò),可以利用vlc或其他手段實(shí)現(xiàn)拉流,這里就先不解釋如何拉流

7、攝像頭推流

接下來(lái)正式把對(duì)攝像頭進(jìn)行推流,從前面我們知道攝像頭名稱(chēng)為USB2.0 PC CAMERA,而且推流服務(wù)器ip為127.0.0.1:1935,關(guān)鍵字為live,所以cmd中輸入以下語(yǔ)句:

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

image

和本地視頻推流一樣,攝像頭拍到的畫(huà)面會(huì)實(shí)時(shí)推流出去(當(dāng)然會(huì)有延遲而且現(xiàn)在是沒(méi)有聲音的),當(dāng)?shù)刂氛_時(shí),可以實(shí)現(xiàn)拉流

8、麥克風(fēng)推流

前面介紹了攝像頭畫(huà)面推流,可是沒(méi)有聲音,這次我們把麥克風(fēng)聲音推流出去,cmd中輸入下面語(yǔ)句

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

image

和前面差不多,聲音被推流出去了,通過(guò)vlc拉流可以聽(tīng)到錄制的聲音,但很明顯不會(huì)有畫(huà)面

9、攝像頭&麥克風(fēng)推流

終于到最激動(dòng)人心的時(shí)刻了,我們這次要實(shí)現(xiàn)同時(shí)推流攝像頭畫(huà)面與聲音,此時(shí)我們的語(yǔ)句應(yīng)該如下

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

image

很nice,和前面一樣,畫(huà)面與聲音源源不斷的被推流到服務(wù)器,接下來(lái)我們就應(yīng)該正式的開(kāi)發(fā)拉流了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容