【淺學】Windows下ffmpeg+nginx+flv將本地視頻推流在本地搭建的Web前端頁面中播放,超詳細步驟

Nginx安裝和配置

下載nginx-1.19.3-http-flv 模塊預編譯包并解壓放在d盤,路徑就跟安裝步驟里說的一樣(如下圖),不然會有其他問題出現。
在這里插入圖片描述
打開conf/nginx.conf,查看RTMP和http相關的配置,確認端口號和路由名稱
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

ffpemg推流視頻

ffmpeg安裝

安裝步驟參考FFmpeg 超級詳細安裝與配置教程(Windows 系統),安裝包的位置不要有中文路徑,建議把原來的巨長的文件夾名重命名簡短一點,官網下載需要魔法不然很慢但下下來的時長可以接受,我上傳的安裝包被自動設成VIP資源了需要的話可以留郵箱。。

視頻推流

安裝配置好后在終端(CMD)中輸入以下命令(同時按住win+R鍵左下角彈出輸入框,然后輸入cmd按回車就能打開終端)

ffmpeg -stream_loop -1 -i 你的視頻文件的路徑.mp4 -c:v libx264 -preset ultrafast -c:a aac -f flv rtmp://localhost/myapp/stream

這條命令的作用是把本地的 .mp4 文件進行無限循環播放,并將視頻流以 H.264 編碼、音頻流以 AAC 編碼,封裝成 FLV 格式后推送到 rtmp://localhost/myapp/stream 這個 RTMP 地址。

ffmpeg命令解釋

命令的基本格式如下

ffmpeg [全局選項] [輸入文件選項] -i 輸入文件 [輸出文件選項] 輸出文件或推流地址
  1. -stream_loop -1
    此為全局選項,用于指定輸入文件的循環次數。-1 表示無限循環,也就是輸入的視頻文件會不斷循環播放,直至手動停止推流。這個選項也可以不要
  2. -i 你的視頻文件.mp4
    這是輸入文件選項,-i 是指定輸入文件的標志,你的視頻文件.mp4 是要作為輸入的本地視頻文件名稱,注意如果終端沒有切到這個文件的所在的目錄下要加上文件所在的完整路徑(文件夾或者文件名一定不能有空格
  3. -c:v libx264
    屬于輸出文件選項,-c:v 用于指定視頻編碼器,libx264 是常用的 H.264 視頻編碼器,它能將視頻流編碼成 H.264 格式。
  4. -preset ultrafast
    同樣是輸出文件選項,-preset 用于設置編碼速度和壓縮比的平衡。ultrafast 是最快的預設,意味著編碼速度快,但可能會犧牲一定的視頻質量和壓縮率。
  5. -c:a aac
    這是輸出文件選項,-c:a 用于指定音頻編碼器,aac 是常用的音頻編碼格式,可將音頻流編碼成 AAC 格式。
  6. -f flv
    屬于輸出文件選項,-f 用于指定輸出文件的格式,flv 是 Flash Video 格式,常用于 RTMP 推流。
  7. rtmp://localhost/myapp/stream
    這是推流地址,代表 RTMP 服務器的地址和流名稱。localhost 是本地服務器地址,myapp 是應用名稱,stream 是流名稱。

終端沒有報Error,持續顯示以下信息即表示正常推流了
在這里插入圖片描述

查看推流視頻

通過VLC軟件播放RTMP流

使用VLC播放器(沒有這個軟件可以點擊去官網下載安裝),點擊媒體->打開網絡串流輸入你的推流地址然后點擊播放,如果能正常播放你的視頻則說明RTMP正常推流了
在這里插入圖片描述

通過VLC軟件播放FLV流

同上一步操作 “打開網絡串流”,輸入 FLV 流的地址http://localhost:8080/live?port=1935&app=myapp&stream=stream&schema=rtmp,然后點擊 “播放” 按鈕,注意這里的兩個端口號分別對應第一步中Nginx中的配置,8080是http服務的端口號,1935是RTMP的的端口號,后面的app、stream、schema這三個參數與推流地址rtmp://localhost/myapp/stream對應匹配,如果前一步中RTMP能正常播放那么這一步也是能正常播放的

通過web的video標簽播放

新建一個.txt文件,然后輸入以下代碼并保存。重名將.txt后綴改成.html,如果前一步中FLV流正常播放那么,雙擊這個html文件在瀏覽器打開就能看到視頻播放

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>FLV Stream Player</title>
</head><body><video width="640" height="480" controls><source src="http://localhost:8080/live?stream=myapp/stream.flv" type="video/flv">Your browser does not support the video tag.</video>
</body></html>

當然還可以通過js腳本把以上推流步驟封裝一鍵運行web項目,本篇純小白向所以不展開贅述,有需要后續會單開一篇在web項目里腳本實現的基礎demo

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/79559.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/79559.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/79559.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ubuntu-tomcat安裝部署

https://blog.csdn.net/weixin_43877427/article/details/144697087 Linux下Tomcat安裝與配置_tomcat linux安裝及配置教程-CSDN博客 一、下載Tomcat 1、官網下載 進入后根據自己需要選擇不同的版本&#xff0c;點擊download 進入后&#xff0c;在下圖標注的里邊選擇要下載…

希洛激活器策略思路

在復雜多變的外匯市場中&#xff0c;交易者常常尋求有效的工具來輔助決策。 希洛激活器作為一種綜合性的技術指標&#xff0c;結合了江恩理論、CCI&#xff08;商品通道指數&#xff09;和MACD&#xff08;移動平均收斂發散指標&#xff09;&#xff0c;旨在為交易者提供更為全…

n8n工作流自動化平臺的實操:本地化高級部署

一、本地高級部署 1.下載 docker pull docker.n8n.io/n8nio/n8n 2.運行 docker volume create n8n_data docker run -dit --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n -e N8N_SECURE_COOKIEfalse -e N8N_RUNNERS_ENABLEDtrue -e N8N_ENFORCE_SETTINGS_FIL…

vector和string的迭代器

1. 迭代器的本質 (1) 標準要求 C 標準要求 std::string 和 std::vector 的迭代器必須是 隨機訪問迭代器&#xff08;Random Access Iterator&#xff09;。 指針天然滿足隨機訪問迭代器的所有操作&#xff08;如 、--、n、* 等&#xff09;&#xff0c;因此可以直接用指針實現…

PyCharm代理配置全攻略:系統設置+Python運行環境一鍵搞定

文章目錄 1. 設置系統代理1.1 作用范圍1.2 使用場景1.3 設置步驟 2. 設置 python 運行/調試代理2.1 作用范圍2.2 使用場景2.3 設置步驟 Pycharm 工具作為一款強大的 IDE&#xff0c;其代理配置在實際開發中也是必不可少的&#xff0c;下面介紹下如何配置 Pycharm 的代理。 1. …

stm32 g031g8 flash擦除函數被坑

先記錄一下在擦除的時候由于調用了這個FLASH_PageErase(FLASH_BANK_1, secpos); 導致擦除不成功&#xff0c;寫入失敗。 下面的擦除有問題// 使用 FLASH_PageErase 擦除該頁while ((FLASH->SR & FLASH_SR_BSY1) ! 0); // 等待空閑FLASH_PageErase(FLASH_BANK_1, secpo…

深度學習與 PyTorch 基礎

筆記 1 深度學習簡介 1.1 深度學習概念 深度學習是機器學習的一類算法, 以人工神經網絡為結構, 可以實現自動提取特征 深度學習核心思想是人工神經網絡為結構, 自動提取特征 1.2 深度學習特點 自動提取特征 解釋性差 大量數據和高性能計算能力 非線性轉換(引入非線性因…

【Unity】XLua訪問C#文件

創建NPC.cs&#xff1a; public class NPC { public string name; public int age; public void Say() { Debug.Log("Say:我是未被修改的"); } public static void Say() { Debug.Log("Static Say:我是未被修改的"); } public void Say2(int a) { Debug.Lo…

【第十六屆藍橋杯省賽】比賽心得與經驗分享(PythonA 組)

文章目錄 一、我的成績二、我的備賽經歷三、如何備賽&#xff08;個人觀點&#xff09;1. 基礎語法2. 數據結構3. 算法4. 數學 四、做題技巧與注意事項五、我的題解試題A 偏藍 &#x1f3c6;100%試題B IPV6 &#x1f3c6;0%試題C 2025圖形 &#x1f3c6;100%試題D 最大數字 &am…

基于Springboot+Mysql的校園博客系統(含LW+PPT+源碼+系統演示視頻+安裝說明)

系統功能 管理員功能&#xff1a;首頁、個人中心、博主管理、文章分類管理、文章信息管理、舉報投訴管理、系統管理&#xff1b;博主功能&#xff1a;首頁、個人中心、文章信息管理、舉報投訴管理、我的收藏管理&#xff1b;前臺首頁功能&#xff1a;首頁、文章信息、系統公告…

第三次作業(密碼學)

#include <stdio.h> #include <stdlib.h> // 計算最大公約數 int gcd(int a, int b) { while (b ! 0) { int temp b; b a % b; a temp; } return a; } // 計算模冪運算 int mod_pow(int base, int exponent, int modulus) { …

3.0/Q1,Charls最新文章解讀

文章題目&#xff1a;Association between outdoor artificial light at night and metabolic diseases in middle-aged to older adults-the CHARLS survey DOI&#xff1a;10.3389/fpubh.2025.1515597 中文標題&#xff1a;夜間戶外人工光與中老年人代謝性疾病的關聯-CHARLS調…

MATLAB 中zerophase函數——零相位響應

零相位響應&#xff08;Zero-Phase Response&#xff09;是指濾波器的幅度函數&#xff0c;但相位為零。濾波器的相位響應為零&#xff0c;意味著不同頻率的信號通過濾波器后&#xff0c;其相位不發生任何變化&#xff0c;即信號的波形在時間軸上沒有偏移。 零相位響應指的是當…

馬克思最基本的哲學思想--改造世界以實現人的自由全面發展--deepseek

馬克思的哲學思想可以概括為“改造世界以實現人的自由全面發展”&#xff0c;這句話看似簡單&#xff0c;卻包含了其哲學的核心邏輯。我們可以從三個層面展開分析&#xff1a; 1. “改造世界”——實踐是哲學的終極使命 馬克思在《關于費爾巴哈的提綱》中寫道&#xff1a; “哲…

JAVA學習-練習試用Java實現“一個簡單的文本摘要系統 :基于關鍵詞提取或句子摘要”

問題&#xff1a; java語言編輯&#xff0c;實現一個簡單的文本摘要系統 &#xff1a;基于關鍵詞提取或句子摘要。 解答思路&#xff1a; 實現一個簡單的文本摘要系統&#xff0c;我們可以采用基于關鍵詞提取的方法。以下是一個簡單的Java實現&#xff0c;使用TF-IDF&#xff0…

案例解析:基于量子計算的分子對接-QDOCK(Quantum Docking)

分子對接&#xff08;Moleculardocking&#xff09;在藥物發現中具有重要意義&#xff0c;但對接的計算速度和準確率始終難以平衡&#xff0c;其巨大解搜索空間對傳統計算機來說異常艱巨。 本文通過引入網格點匹配&#xff08;GPM, Grind point matching&#xff09;和特征原子…

【Mytais系列】Datasource模塊:數據源連接

MyBatis 的 DataSource 模塊是框架與數據庫交互的核心基礎設施&#xff0c;負責管理數據庫連接的創建、分配、釋放及池化&#xff0c;直接影響 SQL 執行效率和資源利用率。以下是其核心內容、功能及在 SQL 執行中的作用詳解&#xff1a; 一、DataSource 模塊的核心組件 組件 功…

React 組件prop添加類型

給函數的props做注解 import { useState } from reacttype Props { className:string,title?:string } // 自定義一個Button組件 function Button(props:Props){// 解構出classname\const {className} propsreturn <button className{className}>點擊我</button&g…

MCP多智能體消息傳遞機制(Message Passing Between Agents)

目錄 &#x1f680; MCP多智能體消息傳遞機制&#xff08;Message Passing Between Agents&#xff09; &#x1f31f; 為什么要引入消息傳遞機制&#xff1f; &#x1f3d7;? 核心設計&#xff1a;Agent間消息傳遞模型 &#x1f6e0;? 1. 定義標準消息格式 &#x1f6e…

高中數學聯賽模擬試題精選學數學系列第4套幾何題

△ A B C \triangle ABC △ABC 的外心為點 O O O, 外接圓為 Γ \Gamma Γ. 射線 A O AO AO, B O BO BO, C O CO CO 分別交 Γ \Gamma Γ 于點 D D D, E E E, F F F. X X X 是 △ A B C \triangle ABC △ABC 內部的一點. 射線 A X AX AX, B X BX BX, C X CX CX 分…