最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python進行ffmpeg推流和拉流rtsp、rtmp實例詳解

 更新時間:2023年01月06日 14:26:32   作者:芝士不知世_  
Python推流本質(zhì)是調(diào)用FFmpeg的推流進程,下面這篇文章主要給大家介紹了關(guān)于Python進行ffmpeg推流和拉流rtsp、rtmp的相關(guān)資料,需要的朋友可以參考下

前言

流媒體協(xié)議,英文學名Streaming Protocol,用一句人話來解釋:流媒體協(xié)議是一種用于通過 Web 傳遞多媒體的協(xié)議。傳統(tǒng)視頻流協(xié)議:RTMP和RTSP,其中 RTMP 是基于 TCP 開發(fā)的,那么 RTSP 使用到了 UDP 。

1.RTMP(Real Time Messaging Protocol,實時消息協(xié)議)

  • 底層協(xié)議:TCP
  • 視頻編解碼器:H.264
  • 音頻編解碼器:AAC
  • 延遲:3 - 30 秒

RTMP 的最大優(yōu)點是可以在服務(wù)器和客戶端服務(wù)器之間保持穩(wěn)定的連接,無論用戶的互聯(lián)網(wǎng)連接質(zhì)量如何,它都可以無縫低延遲進行流媒體傳輸。這個技術(shù)主要通過將數(shù)據(jù)流分成相等的小部分(音頻數(shù)據(jù)默認為 64 字節(jié),視頻數(shù)據(jù)默認為 128 字節(jié))并將它們順序傳輸?shù)浇邮赵O(shè)備,然后將它們重新組合成視頻流來實現(xiàn)的。

RTMP 工作原理 ?

  • 攝像頭捕獲視頻
  • 通過編碼器視頻流傳輸?shù)揭曨l平臺服務(wù)器
  • 視頻平臺處理視頻流
  • 通過CDN分發(fā)到離用戶最近的服務(wù)器
  • 最后視頻流就能成功的到達用戶設(shè)備

那么這個環(huán)節(jié)中RTMP就起到了非常重要的作用,在視頻從攝像頭到服務(wù)器的過程中,RTMP將大量數(shù)據(jù)分割成小塊并跨多個虛擬通道傳輸,在視頻源和 RTMP 服務(wù)器之間提供了穩(wěn)定和流暢的視頻流。

2.RTSP(Real Time Streaming Protocol,實時流協(xié)議)

  • 底層協(xié)議:TCP 和 UDP
  • 視頻編解碼器:H.265
  • 音頻編解碼器:AAC
  • 延遲:2 秒

RTSP 工作原理 ?

  • 用戶設(shè)備向視頻流平臺發(fā)送 RTSP 請求
  • 視頻流平臺返回可以操作的請求列表,比如播放、暫停等
  • 用戶設(shè)備向視頻流平臺發(fā)送具體的請求,比如播放
  • 視頻流平臺解析請求并調(diào)用指定機制啟動視頻流處理

由于 RTSP 依賴于專用服務(wù)器,并且依賴于 RTP,因此該協(xié)議不支持加密視頻內(nèi)容或重傳丟失的數(shù)據(jù)包。

3.FFmpeg

FFmpeg 是一款用于多媒體處理的自由軟件工具,基于 GPL 許可證發(fā)布。FFmpeg 提供的最核心的命令行工具是 “ffmpeg”,“ffmpeg” 命令行工具的主要特征是輸出過程快、輸出品質(zhì)高、輸出文件小。“FFmpeg” 中 “FF” 表示 “Fast Forward”,“mpeg” 表示 “Moving Pictures Experts Group”。

FFmpeg 提供如下四個命令行工具:

  • ffmpeg 音視頻編碼器/解碼器
  • ffplay 媒體播放器
  • ffprobe 顯示媒體文件信息
  • ffserver 多媒體流廣播服務(wù)器,使用 HTTP 和 RTSP 協(xié)議。FFmpeg 4.1 版本已經(jīng)刪除 ffserver,新的替代者還未添加進來。

命令行實現(xiàn):(和VLC工具等效)

ffmpeg推流rtsp

ffmpeg -re -i 1.mp4 -vcodec copy -codec copy -f rtsp rtsp://127.0.0.1:554/stream

推攝像頭視頻

ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -rtsp_transport udp -f rtsp rtsp://127.0.0.1/stream

ffplay拉流播放

ffplay rtsp://127.0.0.1:554/stream

4.python實現(xiàn)ffmpge的rtsp和rtmp推流拉流(待更)

# 本地攝像頭推流
import queue
import threading
import cv2
import subprocess as sp
 
# 自行設(shè)置,url為推送的服務(wù)器地址
rtmpUrl = "rtmp://localhost:1935/live/test"
cap = cv2.VideoCapture(0)
 
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
 
# ffmpeg command
command = ['ffmpeg',
                '-y',
                '-f', 'rawvideo',
                '-vcodec', 'rawvideo',
                '-pix_fmt', 'bgr24',
                '-s', "{}x{}".format(width, height),
                '-r', str(fps),
                '-i', '-',
                '-c:v', 'libx264',
                '-pix_fmt', 'yuv420p',
                '-preset', 'ultrafast',
                '-f', 'flv',
                rtmpUrl]
 
# 設(shè)置管道
p = sp.Popen(command, stdin=sp.PIPE)
while True:
    ret, frame = cap.read()
    p.stdin.write(frame.tostring())

總結(jié)

到此這篇關(guān)于Python進行ffmpeg推流和拉流rtsp、rtmp的文章就介紹到這了,更多相關(guān)Python ffmpeg推流和拉流rtsp rtmp內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python使用裝飾器作日志處理的方法

    python使用裝飾器作日志處理的方法

    今天小編就為大家分享一篇python使用裝飾器作日志處理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python通過socket實現(xiàn)多個連接并實現(xiàn)ssh功能詳解

    python通過socket實現(xiàn)多個連接并實現(xiàn)ssh功能詳解

    這篇文章主要介紹了python通過socket實現(xiàn)多個連接并實現(xiàn)ssh功能詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Python繪制專業(yè)的K線圖 源代碼解析

    Python繪制專業(yè)的K線圖 源代碼解析

    這篇文章主要介紹了Python繪制專業(yè)的K線圖,使用Python繪制一幅專業(yè)的K線圖,是量化投資和金融數(shù)據(jù)分析的必備功課。下面我將從K線圖簡介、數(shù)據(jù)獲取、K線圖繪制及成交量繪制等方面,結(jié)合源代碼,一步步實現(xiàn)專業(yè)K線圖的繪制,需要的朋友可以參考下
    2021-10-10
  • Python機器學習之SVM支持向量機

    Python機器學習之SVM支持向量機

    這篇文章主要為大家詳細介紹了Python機器學習之SVM支持向量機,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 基于Python實現(xiàn)中秋佳節(jié)月餅搶購腳本

    基于Python實現(xiàn)中秋佳節(jié)月餅搶購腳本

    這篇文章主要介紹了Python版中秋佳節(jié)月餅搶購腳本,今天要用的是一個測試工具的庫Selenium,今天我們就是用它去實現(xiàn)自動化搶購月餅,其實就是用這個工具"模擬"人為操作瀏覽器相應的操作,比如登陸,勾選購物車商品,下單購買等等操作,需要的朋友可以參考下
    2022-09-09
  • Python實現(xiàn)Mysql數(shù)據(jù)庫連接池實例詳解

    Python實現(xiàn)Mysql數(shù)據(jù)庫連接池實例詳解

    這篇文章主要介紹了Python實現(xiàn)Mysql數(shù)據(jù)庫連接池實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Python代碼風格與編程習慣重要嗎?

    Python代碼風格與編程習慣重要嗎?

    實現(xiàn)高內(nèi)聚,低耦合、結(jié)構(gòu)清晰不臃腫、可讀性高、數(shù)據(jù)冗余性低、高復用、易擴展的代碼,并非易事.上到設(shè)計模式,下到某個類、方法、函數(shù)的構(gòu)造.在這里我分享一下我自己的代碼設(shè)計,編寫風格,讓我們互相學習,需要的朋友可以參考下
    2021-06-06
  • Python對列表去重的多種方法(四種方法)

    Python對列表去重的多種方法(四種方法)

    開發(fā)中對數(shù)組、列表去重是非常常見的需求,對一個list中的id進行去重,有下面幾種方法,具體內(nèi)容詳情大家參考下本文
    2017-12-12
  • python如何使用雙線性插值計算網(wǎng)格內(nèi)數(shù)據(jù)

    python如何使用雙線性插值計算網(wǎng)格內(nèi)數(shù)據(jù)

    這篇文章主要介紹了python如何使用雙線性插值計算網(wǎng)格內(nèi)數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 在Python的Flask框架下使用sqlalchemy庫的簡單教程

    在Python的Flask框架下使用sqlalchemy庫的簡單教程

    這篇文章主要介紹了在Python的Flask框架下使用sqlalchemy庫的簡單教程,用來簡潔地連接與操作數(shù)據(jù)庫,需要的朋友可以參考下
    2015-04-04

最新評論

张家界市| 万源市| 连云港市| 襄汾县| 渑池县| 永平县| 常熟市| 奉节县| 科技| 项城市| 玉龙| 新安县| 民和| 隆化县| 皮山县| 安平县| 晋江市| 河池市| 吴川市| 万载县| 义马市| 莱西市| 泰和县| 永泰县| 乳源| 左贡县| 灵宝市| 汉沽区| 惠水县| 芜湖县| 留坝县| 礼泉县| 云梦县| 日土县| 南陵县| 卢龙县| 施甸县| 根河市| 桐城市| 田林县| 囊谦县|