關於使用FFmpeg推流時,live目錄的理解

2021-09-29 16:23:16 字數 1213 閱讀 7080

根據博主之前的博文《在windows下搭建、配置nginx流**伺服器,並進行rtmp流的推流、拉流測試》搭建好nginx流**伺服器後,可能有些朋友會對博文裡面進行推流測試的指令:「 ffmpeg -i video3.mp4 -f flv rtmp: 」中的「 live 」有一些不理解。「 live 」其實是乙個虛擬目錄,這個目錄和windows中傳統的目錄是不一樣的,可以理解為推流到的流**伺服器的模組路徑或者虛擬路徑,但是實際在流**伺服器中是不會存在這個目錄的,因為它是虛擬的。這個目錄其實是用來區分流的,表示要推流到的位址;推流位址為多少,拉流位址就得為多少。比如推流指令為「 ffmpeg -i video3.mp4 -f flv rtmp: 」,使用ffplay進行拉流的指令就得為「 ffplay rtmp:」,可以看到推流位址和拉流位址是對應的。

在測試的過程中,可能有些朋友也會發現,將推流指令中的「 live 」目錄改為其它目錄時,推流會失敗。比如在命令提示符中輸入指令:「 ffmpeg -i video3.mp4 -f flv rtmp: 」,推流會失敗(但是輸入指令「 ffmpeg -i video3.mp4 -f flv rtmp: 」是可以成功進行推流的)如下圖所示:

問題產生的原因是:推流目錄其實是在nginx的配置檔案中進行設定的,預設是「 live 」。在沒有更改配置檔案中推流目錄的情況下改變指令中的推流目錄,自然就會推流失敗了。如下圖所示,在nginx的conf目錄下有配置檔案nginx.conf。

要想在推流指令中使用其它推流目錄,比如改為使用「 mydir 」。我們可以更改配置檔案nginx.conf為如下所示:

更改配置檔案後,重啟nginx,在命令提示符中輸入指令:「 ffmpeg -i video3.mp4 -f flv rtmp: 」,我們發現推流成功了,如下圖所示:

ffmpeg使用指令實現推流實現直播流程

windows下用ffmpeg nginx rtmp搭建直播環境 實現推流 拉流 啟動nginx 進入nginx的目錄,執行其中rtmp檔案。執行下列 cd g studyprojects setupvideoservice nginx 1.7.11 3 gryphon nginx.exe c co...

Windows環境下FFmpeg推流命令集合

建議使用官網最新的 ffmpeg.exe api文件 ffmpeg f gdigrab video size 1920x1080 i desktop r 20 vf scale 1920x1080 vcodec libx264 preset ultrafast pix fmt yuv420p f f...

RTMP 直播推流時延

除了gop cache,還有乙個有關係,就是累積延遲。伺服器可以配置直播佇列的長度,伺服器會將資料放在直播佇列中,如果超過這個長度就清空到最後乙個i幀 當然這個不能配置太小,譬如gop是1秒,queue length是1秒,這樣會導致有1秒資料就清空,會導致跳躍。有更好的方法?有的。延遲基本上就等於...