国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FFmpeg 的使用與Docker安裝流媒體服務(wù)器

這篇具有很好參考價值的文章主要介紹了FFmpeg 的使用與Docker安裝流媒體服務(wù)器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

本文闡述的均為命令行的使用方式,并不牽扯FFmpeg 的 C++音視頻開發(fā)內(nèi)容,補(bǔ)充一句,C++的資料真的少,能把C++學(xué)好的人,我真的是覺得巨佬。

我主要是使用FFmpeg 推流方面的知識,案例大都是靠近這方面。

一、FFmpeg 介紹

本文讀者會比較小眾~ 看到此文的朋友,大概率是需要用到FFmpeg啦,簡單說一下下。
就算是從來沒接觸過的朋友,其實(shí)也已經(jīng)在生活的各個方面都接觸過FFmpeg處理完東西(音視頻)。
一句話來總結(jié):FFmpeg 就是一款封裝好的關(guān)于音視頻方面的開源處理工具。

它功能強(qiáng)大,用途廣泛,大量用于視頻網(wǎng)站和商業(yè)軟件(比如 Youtube 和 iTunes),也是許多音頻和視頻格式的標(biāo)準(zhǔn)編碼/解碼實(shí)現(xiàn)。

如果有接觸過 gstreamer (另外一個音視頻處理框架),它的也有使用到 FFmpeg 的編碼器。

二、FFmpeg 安裝

sudo apt-get install ffmpeg

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

ffmpeg --help

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

安裝就一會的事情,主要還是要看怎么使用。

三、FFmpeg 使用

FFmpeg 的命令行參數(shù)分布大致如下:

ffmpeg \
[全局參數(shù)] \
[輸入文件參數(shù)] \
-i [輸入文件] \
[輸出文件參數(shù)] \
[輸出文件]

下面是一個例子。

ffmpeg \
-y \ # 全局參數(shù)
-c:a libfdk_aac -c:v libx264 \ # 輸入文件參數(shù)
-i input.mp4 \ # 輸入文件
-c:v libvpx-vp9 -c:a libvorbis \ # 輸出文件參數(shù)
output.avi # 輸出文件

上面的命令將 mp4 文件轉(zhuǎn)成 webm 文件,這兩個都是容器格式。輸入的 mp4 文件的音頻編碼格式是 aac,視頻編碼格式是 H.264;輸出的 webm 文件的視頻編碼格式是 VP9,音頻格式是 Vorbis。
如果不指明編碼格式,F(xiàn)Fmpeg 會自己判斷輸入文件的編碼。因此,上面的命令可以簡單寫成下面的樣子。
?

ffmpeg -i input.avi output.mp4

相關(guān)學(xué)習(xí)資料推薦,點(diǎn)擊下方鏈接免費(fèi)報名,先碼住不迷路~】

免費(fèi)學(xué)習(xí)地址:https://xxetb.xet.tech/s/2cGd0

【免費(fèi)分享】音視頻學(xué)習(xí)資料包、大廠面試題、技術(shù)視頻和學(xué)習(xí)路線圖,資料包括(C/C++,Linux,F(xiàn)Fmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以點(diǎn)擊788280672加群免費(fèi)領(lǐng)取~

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

四、FFmpeg 常見案例

本章節(jié)只是簡單的介紹了如何使用,并且解釋啦常用的參數(shù),如果需要更詳細(xì)全面的參數(shù)解釋,可以查看FFmpeg官方文檔。

封包格式(format、視頻格式)、編碼、解碼、幀率、I幀、B幀等等一些偏向于專業(yè)的名詞,大伙如果有需求可以去仔細(xì)了解了解,我這邊暫時只是簡單使用一下。

4.1、轉(zhuǎn)換編碼格式
轉(zhuǎn)換編碼格式(transcoding)指的是, 將視頻文件從一種編碼轉(zhuǎn)成另一種編碼。比如轉(zhuǎn)成 H.264 編碼,一般使用編碼器libx264,所以只需指定輸出文件的視頻編碼器即可。
?

ffmpeg -i 1.mp4 -c:v libx264 output_h264.mp4

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

查看支持的編碼器(也就是?-vcodec?簡稱為?-c:v?后面可以接的參數(shù)):

ffmpeg -codecs

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

支持很多很多,不一一列舉出來啦

4.2、轉(zhuǎn)換文件格式:

ffmpeg -y -i 1.mp4 -c:v libx264 -preset ultrafast -b:v 6000k output_avi.avi其中, 

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

:v 代表視頻,:a 代表音頻;

  • -i 1.mp4 表示視頻輸入來源,這表示當(dāng)前目錄下的 1.mp4 ,也可以接收來自外部視頻源或者本機(jī)攝像頭作為視頻來源
  • -c:v libx264 表示使用264編碼器,
  • -preset,H.264 的轉(zhuǎn)碼預(yù)設(shè)參數(shù)和調(diào)優(yōu)參數(shù)。指定輸出的視頻質(zhì)量,會影響文件的生成速度,有以下幾個可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。
  • -b 6000k 指定碼率(比特率),碼率低時速度快,但失真嚴(yán)重,碼率高時反之;
  • -y 表示如果已存在?output_avi.avi則將其覆蓋;

4.3、對已有視頻進(jìn)行抓圖:
?

ffmpeg -i output_avi.avi -y -f image2 -ss 8 -t 0.001 -s 1980x1280 'test.jpg'

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

4.4 調(diào)整碼率

調(diào)整碼率(transrating)指的是,改變編碼的比特率,一般用來將視頻文件的體積變小。下面的例子指定碼率最小為964K,最大為3856K,緩沖區(qū)大小為 2000K。

ffmpeg -i 1.mp4 -minrate 964K -maxrate 3856K -bufsize 2000K output_rate.mp4

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

4.5 改變分辨率(transsizing)

下面是改變視頻分辨率(transsizing)的例子,從 1080p 轉(zhuǎn)為 480p

ffmpeg -y -i 1.mp4 -vf scale=480:-1 output_scale.mp4

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

4.6 提取音頻

有時,需要從視頻里面提取音頻(demuxing),可以像下面這樣寫。

ffmpeg -y -i 1.mp4 -vn -c:a copy output_avideo.aac

上面例子中,-vn表示去掉視頻,-c:a copy表示不改變音頻編碼,直接拷貝。

4.7、本地攝像頭推流

ffmpeg -f video4linux2 -r 30 -i /dev/video0 -vcodec h264 -f flv rtmp://192.168.79.133:1935/live/stream0

稍微解釋一下上面的命令:

  • -f video4linux2 -r 30 -i /dev/video0?表示從 /dev/video0 中以 30 fps 的幀率采集視頻,視頻格式 為 video4linux2
  • c:v libx264?輸出視頻的編碼格式是 H.264, RTMP 通常采用H.264 編碼
  • f flv?指的視頻的封包格式, RTMP 一般采用 flv 封包格式。
  • an?忽略音頻流
  • preset superfast -tune zerolatency?H.264 的轉(zhuǎn)碼預(yù)設(shè)參數(shù)和調(diào)優(yōu)參數(shù)。會影響視頻質(zhì)量和壓縮率

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

注意:在虛擬機(jī)中使用攝像頭需注意、將USB的兼容性設(shè)置成USB3.0 ,否則出現(xiàn)推流一直卡在那

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

五、Docker 安裝流媒體服務(wù)器,推流和拉流實(shí)現(xiàn)

這里我當(dāng)時就是隨便在github上找了一個可以docker方式部署的流媒體服務(wù)器~

直接輸入下面這條命令就可以構(gòu)建成功啦。

sudo docker run -id --restart=always -p 1935:1935 -p 8080:80 -p 8443:443 -p 554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp zlmediakit/zlmediakit:master

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

zlmediakit:github 地址

詳細(xì)使用大家可以去到github仔細(xì)閱讀文檔,我只是簡單使用,不再多說啦哈

FFmpeg 推流和拉流測試

推流和拉流,要是接觸過視頻服務(wù)可能就比較了解~

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

粗糙的流程就大致如上圖啦,推流就是將收集到的視頻流推送到流媒體服務(wù)器上去,拉流就是從流媒體服務(wù)器上把視頻拉取下來,進(jìn)行播放。

至于如何收集視頻,如何進(jìn)行視頻處理,更為詳細(xì)的就沒有介紹啦,F(xiàn)Fmpeg 是涵蓋了全流程的, 可以去了解了解。

里面牽扯到的 RTSP、RTMP、HTTP-FLV協(xié)議,都是一些視頻相關(guān)的協(xié)議,可以去了解了解,我這里只測試了 RTSP和RTMP協(xié)議。

rtsp 推流和拉流

ffmpeg -re -i 1.mp4 -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://192.168.79.133/live/room

(rtsp 端口我這里使用的是默認(rèn)的 554,故而省略沒寫啦

拉流進(jìn)行播放可以使用專門的播放器,也可以使用ffmpeg的組件ffplay來進(jìn)行視頻的播放

ffplay 拉流進(jìn)行播放

ffplay rtsp://192.168.79.133:554/live/room

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

常用的播放器 vlc media player 也可以播放 rtsp 和 rtmp 協(xié)議的視頻流。

播放器截圖

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

然后正常播放就是ok啦

rtmp 推流

ffmpeg -re -i 1.mp4 -vcodec h264 -acodec aac -f flv rtmp://192.168.79.133/live/room

ffplay rtmp://192.168.79.133:1935/live/room

rtmp協(xié)議的端口號是 1935 ~這些端口號,都是可以修改的,是否支持取決于你部署的流媒體服務(wù)器是什么樣的。

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

播放器截圖

FFmpeg 的使用與Docker安裝流媒體服務(wù)器,ffmpeg,docker,服務(wù)器

(另外,這個流媒體服務(wù)器內(nèi)部對視頻做了處理,可以實(shí)現(xiàn)多種輸出,你RTMP推上去的,也可以用RTSP協(xié)議拉流下來的)

原文?FFmpeg 的使用與Docker安裝流媒體服務(wù)器文章來源地址http://www.zghlxwxcb.cn/news/detail-796228.html

到了這里,關(guān)于FFmpeg 的使用與Docker安裝流媒體服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 搭建RTSP流媒體服務(wù)器(用于測試分析RTSP協(xié)議)(rtsp-simple-server+FFmpeg+vlc+wireshark)

    搭建RTSP流媒體服務(wù)器(用于測試分析RTSP協(xié)議)(rtsp-simple-server+FFmpeg+vlc+wireshark)

    本文所搭建的流媒體服務(wù)器是在虛擬機(jī)centos7中安裝rtsp-simple-server充當(dāng)服務(wù)器,在windows本機(jī)中安裝FFmpeg用于推流,使用vlc播放器播放rtsp-simple-server中的視頻充當(dāng)拉流,并用wireshark抓包分析RTSP協(xié)議。 在https://github.com/aler9/rtsp-simple-server/releases下載linux版本,進(jìn)入文件夾解壓 tar

    2024年02月09日
    瀏覽(35)
  • 9步實(shí)現(xiàn) Docker部署 SRS rtmp/flv流媒體服務(wù)器

    9步實(shí)現(xiàn) Docker部署 SRS rtmp/flv流媒體服務(wù)器

    這是基于centos7.6系統(tǒng)部署的 運(yùn)行容器會直接停留在容器運(yùn)行界面,通過Ctrl+P+Q可后臺形式退出容器 這時候其實(shí)已經(jīng)運(yùn)行成功!可以通過以下命令查看SRS控制臺 進(jìn)入/home/docker/srs3 可查看配置文件是否復(fù)制成功 這是可能會報錯: 因為步驟四我們意見運(yùn)行一個容器,已經(jīng)使用過

    2024年02月15日
    瀏覽(23)
  • 使用nginx部署rtmp流媒體服務(wù)器完成直播推流

    使用nginx部署rtmp流媒體服務(wù)器完成直播推流

    筆者為了開發(fā)方便使用windows系統(tǒng)的Nginx進(jìn)行配置。 下載Nginx http://nginx-win.ecsds.eu/download/ 在windows版本下只有個別的幾個版本才支持rtmp服務(wù),本文選擇版本 nginx 1.7.11.3 Gryphon.zip 解壓下載zip文件 在conf文件夾中找到 nginx-win.conf 配置我們所需要的內(nèi)容 rtmp是adobe基于flash開發(fā)的音視頻

    2024年02月15日
    瀏覽(28)
  • linux+nginx-http-flv-module+ffmpeg實(shí)現(xiàn)搭建簡易流媒體服務(wù)器將rtsp流轉(zhuǎn)flv格式在web端和微信小程序?qū)崟r播放監(jiān)控視頻

    linux+nginx-http-flv-module+ffmpeg實(shí)現(xiàn)搭建簡易流媒體服務(wù)器將rtsp流轉(zhuǎn)flv格式在web端和微信小程序?qū)崟r播放監(jiān)控視頻

    一.介紹背景 公司項目開發(fā)需求:將??禂z像頭的rtsp流在web端及微信小程序端進(jìn)行播放。之前我寫過一篇關(guān)于web端使用webtrc+videojs播放rtsp流的文章,確實(shí)能夠解決web端播放rtsp流的需求,但是這次多加了一個微信小程序....所以要考慮小程序的播放問題。本著探索實(shí)踐的精神在

    2024年02月08日
    瀏覽(39)
  • FFmpeg流媒體處理的收流與推流

    FFmpeg流媒體處理的收流與推流

    1. 簡介 流媒體是使用了流式傳輸?shù)亩嗝襟w應(yīng)用技術(shù)。如下是維基百科關(guān)于流媒體概念的定義: 流媒體 (streaming media) 是指將一連串的媒體數(shù)據(jù)壓縮后,經(jīng)過網(wǎng)絡(luò)分段發(fā)送數(shù)據(jù),在網(wǎng)絡(luò)上即時傳輸影音以供觀賞的一種技術(shù)與過程,此技術(shù)使得數(shù)據(jù)包得以像流水一樣發(fā)送;如果不

    2024年02月11日
    瀏覽(30)
  • 流媒體服務(wù)器(17)—— 流媒體開源服務(wù) MediaSoup 初識

    流媒體服務(wù)器(17)—— 流媒體開源服務(wù) MediaSoup 初識

    目錄 前言 正文 一、簡單介紹 二、關(guān)鍵特色 1. 超強(qiáng) SFU 功能 2. Node.js 模塊 3. 客戶端 SDK 三、架構(gòu)組成 1. 關(guān)鍵實(shí)例 2. 重要模塊 四、發(fā)展現(xiàn)狀 https://liuzhen.blog.csdn.net/article/details/115603863 https://liuzhen.blog.csdn.net/article/details/115603863 最近收看了一期微軟(中國)關(guān)于云原生、大數(shù)據(jù)

    2023年04月09日
    瀏覽(23)
  • 一個.Net開發(fā)的功能強(qiáng)大、易于使用的流媒體服務(wù)器和管理系統(tǒng)

    一個.Net開發(fā)的功能強(qiáng)大、易于使用的流媒體服務(wù)器和管理系統(tǒng)

    推薦一個視頻管理系統(tǒng),非常適合個人或者公司打造視頻網(wǎng)站。 這是基于.Net Core開發(fā)的,跨平臺的開源項目;支持多種音視頻格式,如MP3、MP4、AVI、WMV、FLV等;支持本地管理與遠(yuǎn)程管理,讓管理員可以輕松的管理視頻資源。 而且該項目還提供多平臺的客戶端,支持Web、桌面

    2024年02月05日
    瀏覽(16)
  • 【音視頻流媒體】 3、ffmpeg、ffplay、ffprobe 超詳細(xì)介紹

    【音視頻流媒體】 3、ffmpeg、ffplay、ffprobe 超詳細(xì)介紹

    ffmpeg中文文檔 常見測試視頻 ffmpeg 大神筆記 ffmpeg 的 release 是 Linux Static Build ,即靜態(tài)庫(各庫已被打包到可執(zhí)行程序中),而不是動態(tài)鏈接庫(共享機(jī)器上的 so),所以非常方便部署(sqlite 也是這樣),這是ffmpeg官網(wǎng)下載地址 rtsp-simple-server用法 注意,該命令會找時間點(diǎn)附近

    2024年02月08日
    瀏覽(93)
  • 搭建SRS流媒體服務(wù)器

    搭建SRS流媒體服務(wù)器

    一、獲取 SRS git clone https://github.com/ossrs/srs cd srs/trunk 二、編譯SRS ./configure make 三、編寫SRS配置文件(我的這個文件是原始的,未修改) vim conf/srs.conf 四、啟動SRS ./objs/srs -c conf/srs.conf 五、啟動ip攝像頭進(jìn)行推流 手機(jī)下載一個ip攝像頭軟件,然后設(shè)置中修改RTMP推流地址 rtmp://你的阿里

    2024年02月16日
    瀏覽(39)
  • 學(xué)著搭建流媒體服務(wù)器

    學(xué)著搭建流媒體服務(wù)器

    操作系統(tǒng):NAME=\\\"openEuler\\\",架構(gòu):aarch64,CPU 運(yùn)行模式:64-bit 目前有多個開發(fā)源代碼可以搭建流媒體服務(wù),但要先依賴gcc和cmake,所以首先安裝gcc和cmake,查了一通資料,cmake安裝記錄如下: 1、依賴環(huán)境安裝 yum -y install libyaml libyaml-devel python-setuptools libcurl-devel python-devel gmp gmp

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包