日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

用SRS和FFMPEG进行直播流转码

發(fā)布時(shí)間:2025/7/25 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用SRS和FFMPEG进行直播流转码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

WIKI:https://github.com/simple-rtmp-server/srs/wiki/v1_CN_FFMPEG

一、直播流轉(zhuǎn)碼配置及說(shuō)明

listen ? ? ? ? ? ? ?1935;

max_connections ? ? 1000;

#定義一個(gè)默認(rèn)的vhost

vhost __defaultVhost__ {

}

#定義一個(gè)名為v.flyfn.com的vhost,這樣只對(duì)v.flyfn.com這個(gè)vhost中所有流進(jìn)行轉(zhuǎn)碼

vhost v.flyfn.com {

? ? transcode {

? ? ? ? enabled ? ? on; ? ? #開始實(shí)時(shí)轉(zhuǎn)碼

? ? ? ? ffmpeg ? ? ?./objs/ffmpeg/bin/ffmpeg; ? #ffmpeg的執(zhí)行文件

? ? ? ? engine sd { ? ? ?#這里通過engine定義轉(zhuǎn)一個(gè)名為sd的轉(zhuǎn)碼引擎,這個(gè)名稱在下面輸出流的時(shí)候用到

? ? ? ? ? ? enabled ? ? ? ? on; ? #開始,設(shè)置為off就是關(guān)閉

? ? ? ? ? ? vfilter { ? ? #對(duì)應(yīng)ffmpeg中的濾鏡參數(shù),可以在這里寫

? ? ? ? ? ??????v ? ? ? ? ? quiet; ? #減少ffmpeg的輸出日志

????????????}

? ? ? ? ? ? vcodec ? ? ? ? ?libx264; #視頻編碼器

? ? ? ? ? ? vbitrate ? ? ? ?500; ? #視頻比特率

? ? ? ? ? ? vfps ? ? ? ? ? ?25; ? #視頻幀率

? ? ? ? ? ? vwidth ? ? ? ? ?768; ? ?#寬

? ? ? ? ? ? vheight ? ? ? ? 320; ? ?#高

? ? ? ? ? ? vthreads ? ? ? ?12; ? #使用ffmpeg線程數(shù)

? ? ? ? ? ? vprofile ? ? ? ?main; ?#編碼等級(jí),high、main、baseline

? ? ? ? ? ? vpreset ? ? ? ? medium; ?#視頻預(yù)設(shè)

? ? ? ? ? ? vparams { ? ? ? ?#ffmpeg的其他視頻參數(shù)

? ? ? ? ? ??????g????????????100; ?# 指定gop時(shí)長(zhǎng)為4秒=100 / 25(vfps)

????????????}

? ? ? ? ? ? acodec ? ? ? ? ?libfdk_aac; ? #音頻編碼器

? ? ? ? ? ? abitrate ? ? ? ?70; ? ? #音頻比特率

? ? ? ? ? ? asample_rate ? ?44100; ? ? #音頻采樣率

? ? ? ? ? ? achannels ? ? ? 2; ? ?#聲道

? ? ? ? ? ? aparams { ? ?#ffmpeg中的其他音頻參數(shù)

? ? ? ? ? ? }

? ? ? ? ? ?#轉(zhuǎn)碼后的流輸出到那里,這里是輸出到本機(jī)了。另外一種推流到vhost的方法:

????????????#rtmp://SRS_IP:[port]/[app]?vhost=[vhost]/[stream]

????????????#[vhost] 輸入流的vhost

????????????#[port] 輸入流的端口

????????????#[app] 輸入流的app

????????????#[stream] 輸入流的流名稱

????????????#[engine] 轉(zhuǎn)碼引擎的名稱

? ? ? ? ? ? output ? ? ? ? ?rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];

? ? ? ? }

????????#可以定義多個(gè)engine

? ? ? ? engine ld {

? ? ? ? ? ? enabled ? ? ? ? on;

? ? ? ? ? ? vfilter {

? ? ? ? ? ? }

? ? ? ? ? ? vcodec ? ? ? ? ?libx264;

? ? ? ? ? ? vbitrate ? ? ? ?300;

? ? ? ? ? ? vfps ? ? ? ? ? ?25;

? ? ? ? ? ? vwidth ? ? ? ? ?640;

? ? ? ? ? ? vheight ? ? ? ? 480;

? ? ? ? ? ? vthreads ? ? ? ?12;

? ? ? ? ? ? vprofile ? ? ? ?main;

? ? ? ? ? ? vpreset ? ? ? ? medium;

? ? ? ? ? ? vparams {

? ? ? ? ? ? }

? ? ? ? ? ? acodec ? ? ? ? ?libfdk_aac;

? ? ? ? ? ? abitrate ? ? ? ?70;

? ? ? ? ? ? asample_rate ? ?44100;

? ? ? ? ? ? achannels ? ? ? 2;

? ? ? ? ? ? aparams {

? ? ? ? ? ? }

? ? ? ? ? ? output ? ? ? ? ?rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine];

? ? ? ? }

? ? }

}

二、用ffmpeg推流

./ffmpeg -re -i 'abc.rmvb' -f flv -y rtmp://v.flyfn.com:1935/live?vhost=v.flyfn.com/test


原始視頻播放:rtmp://v.flyfn.com/live/test

轉(zhuǎn)碼流1(sd):rtmp://v.flyfn.com/live/test_sd

轉(zhuǎn)碼流2(ld):rtmp://v.flyfn.com/live/test_ld


三、推流到srs的vhost時(shí)的另一種方法

rtmp://SRS_IP:[port]/[app]?vhost=[vhost]/[stream]


四、如何對(duì)某一個(gè)app下的流都進(jìn)行轉(zhuǎn)碼

listen 1935;

vhost v.flyfn.com {

????transcode live{ ? ? ? ? ?#對(duì)形如rtmp://srs_ip:1935/live下的流進(jìn)行轉(zhuǎn)碼

????????......

????}

}

五、如何對(duì)某一路直播流進(jìn)行轉(zhuǎn)碼

listen 1935;

vhost v.flyfn.com {

????transcode live/livestream { ? ? ? ? ?#對(duì)形如rtmp://srs_ip:1935/live/livestream進(jìn)行轉(zhuǎn)碼

????????......

????}

}

總結(jié)

以上是生活随笔為你收集整理的用SRS和FFMPEG进行直播流转码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。