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

使用 ffmpeg-python+命名管道進(jìn)行圖片轉(zhuǎn)視頻或推流

這篇具有很好參考價(jià)值的文章主要介紹了使用 ffmpeg-python+命名管道進(jìn)行圖片轉(zhuǎn)視頻或推流。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

命名管道(Named Pipe),也被稱為FIFO,是一種在UNIX、Linux和類Unix系統(tǒng)中用于實(shí)現(xiàn)進(jìn)程間通信(IPC)的機(jī)制。在Python中,我們可以使用os模塊來創(chuàng)建和操作命名管道。

命名管道實(shí)際上是個(gè)特殊的文件,需要先創(chuàng)建

# 創(chuàng)建命名管道
os.mkfifo(pipe_name)

讀寫前后需要打開關(guān)閉

# 打開備寫
pipeout = os.open(pipe_name, os.O_WRONLY)

# 寫入數(shù)據(jù)
os.write(pipeout, framedata)

# 關(guān)閉管道
os.close(pipeout)

ffmpeg從命名管道輸入源的方法與普通文件輸入類似

# 從管道輸入輸入rawvideo
video_in = ffmpeg.input(PIPE_VIDEO_PATH, format='rawvideo', pix_fmt='bgr24', s="{}x{}".format(VIDEO_WIDTH, VIDEO_HEIGHT))

完整代碼,推流或生成視頻僅需輸入目標(biāo)rtmp:文章來源地址http://www.zghlxwxcb.cn/news/detail-853740.html

# coding: utf-8
import os
import time
import cv2
import ffmpeg

VIEW_PATH = 'view'
VIDEO_WIDTH = 1280
VIDEO_HEIGHT = 720

PIPE_VIDEO_PATH = '/tmp/pipe'
try:
    # 創(chuàng)建命名管道
    os.mkfifo( PIPE_VIDEO_PATH )
except OSError:
    print("mkfifo error:", OSError)

def main(rtmp='test.flv'):
    global VIDEO_HEIGHT
    global VIDEO_WIDTH
    filepath = os.path.join(VIEW_PATH, 'p640x1.jpg')
    src_img=cv2.imread(filepath)
    height, width, channels = src_img.shape
    VIDEO_HEIGHT = height
    VIDEO_WIDTH = width
    print('INFO', "height, width, channels : {} {} {}".format(height, width, channels))
    process_stdin = ffmpeg_process(rtmp)
    pipeout = os.open(PIPE_VIDEO_PATH, os.O_WRONLY) #打開命名管道準(zhǔn)備寫入
    s = time.time()
    count = 0
    while True:
        if count >= 10*25:  #目標(biāo)視頻時(shí)長10秒
            break
        os.write(pipeout, src_img.tobytes())
        count+=1
    os.close(pipeout)
    process_stdin.stdin.close()
    process_stdin.wait()
    print(time.time()-s)
    return 0


def ffmpeg_process(rtmp):
    # 從管道輸入輸入rawvideo
    video_in = ffmpeg.input(PIPE_VIDEO_PATH, format='rawvideo', pix_fmt='bgr24', s="{}x{}".format(VIDEO_WIDTH, VIDEO_HEIGHT))
    process_stdin = (
        ffmpeg
        .output(
                video_in,
                rtmp,
                #loglevel='quiet',
                vcodec='libx264',
                #acodec='aac',
                threads='3',
                # ac='2',
                # ar='44100',
                # ab='320k',
                preset='ultrafast',
                tune='zerolatency',
                f='flv'
                )
        .overwrite_output()
        #.run_async(cmd=["ffmpeg", "-re"],pipe_stdin=True)  #推流
        .run_async(cmd=["ffmpeg"],pipe_stdin=True)      #生成視頻不用-re
    )
    return process_stdin

if __name__ == '__main__':
    main()

到了這里,關(guān)于使用 ffmpeg-python+命名管道進(jìn)行圖片轉(zhuǎn)視頻或推流的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 使用ffmpeg對(duì)視頻、圖片進(jìn)行旋轉(zhuǎn),上下翻轉(zhuǎn),水平翻轉(zhuǎn)

    使用ffmpeg對(duì)視頻、圖片進(jìn)行旋轉(zhuǎn),上下翻轉(zhuǎn),水平翻轉(zhuǎn)

    簡介 :在使用ffmpeg做.h264編碼后可能會(huì)使用vlc播放出現(xiàn)了圖像垂直顛倒。可能的原因:RGB圖像有兩種存儲(chǔ)方式:一種是從上往下掃描;另一種是從下往上掃描。OpenCV為從上往下掃描的方式,ffmpeg可能也是從上往下的存儲(chǔ)方式,而OpenGL/Unity中的幀緩沖數(shù)據(jù)可能是從下往上的掃描

    2024年02月15日
    瀏覽(38)
  • Linux通信--構(gòu)建進(jìn)程通信的 方案之管道(下)|使用匿名管道實(shí)現(xiàn)功能解耦|命名管道實(shí)現(xiàn)serve&client通信

    Linux通信--構(gòu)建進(jìn)程通信的 方案之管道(下)|使用匿名管道實(shí)現(xiàn)功能解耦|命名管道實(shí)現(xiàn)serve&client通信

    文章目錄 一、管道的應(yīng)用實(shí)例-父進(jìn)程喚醒子進(jìn)程,子進(jìn)程執(zhí)行某種任務(wù) 二、命名管道 1.創(chuàng)建一個(gè)命名管道 2.匿名管道與命名管道的區(qū)別 3.命名管道的打開規(guī)則 4.用命名管道實(shí)現(xiàn)serverclient通信 后續(xù)將源碼上傳到gitee,上傳后修改鏈接。 管道應(yīng)用的一個(gè)限制就是只能具有共同祖

    2024年02月10日
    瀏覽(26)
  • python使用ffmpeg合并多張圖片成視頻

    注意: 需要在本地有ffmpeg,并且配置環(huán)境變量 下載鏈接如下:https://download.csdn.net/download/qq_30273575/87898080 # FFmpeg 將多張圖片合成視頻 # 可以使用 FFmpeg 庫來將多張圖片合成視頻,下面是一個(gè)簡單的示例: # 在代碼中,需要提供存儲(chǔ)圖片的文件夾路徑 images_path 和最終生成的視頻

    2024年02月11日
    瀏覽(31)
  • 【Linux】進(jìn)程間通信——進(jìn)程間通信的介紹和分類、管道、匿名管道、命名管道、匿名管道與命名管道的區(qū)別

    【Linux】進(jìn)程間通信——進(jìn)程間通信的介紹和分類、管道、匿名管道、命名管道、匿名管道與命名管道的區(qū)別

    ??進(jìn)程間通信(IPC,Interprocess communication)是一組編程接口,讓程序員能夠協(xié)調(diào)不同的進(jìn)程,使之能在一個(gè)操作系統(tǒng)里同時(shí)運(yùn)行,并相互傳遞、交換信息。這使得一個(gè)程序能夠在同一時(shí)間里處理許多用戶的要求。因?yàn)榧词怪挥幸粋€(gè)用戶發(fā)出要求,也可能導(dǎo)致一個(gè)操作系統(tǒng)中

    2024年02月05日
    瀏覽(24)
  • 匿名管道與命名管道

    匿名管道與命名管道

    ??進(jìn)程間通信就是讓兩個(gè)進(jìn)程進(jìn)行交流,但是我們知道進(jìn)程具有獨(dú)立性,每個(gè)進(jìn)程OS都會(huì)為其維護(hù)一個(gè)pcb,一個(gè)進(jìn)程中的數(shù)據(jù)在另一個(gè)進(jìn)程中是看不到的,那怎么實(shí)現(xiàn)進(jìn)程間通信的呢? ??兩個(gè)進(jìn)程要想通信,首先它們需要看到同一份資源,其實(shí)就是操作系統(tǒng)出面,為它們提

    2024年02月03日
    瀏覽(21)
  • 【Linux從入門到精通】通信 | 管道通信(匿名管道 & 命名管道)

    【Linux從入門到精通】通信 | 管道通信(匿名管道 & 命名管道)

    ? ? 本派你文章主要是對(duì)進(jìn)程通信進(jìn)行詳解。主要內(nèi)容是介紹 為什么通信、怎么進(jìn)行通信。其中本篇文章主要講解的是管道通信。希望本篇文章會(huì)對(duì)你有所幫助。 文章目錄 一、進(jìn)程通信簡單介紹 1、1 什么是進(jìn)程通信 1、2?為什么要進(jìn)行通信 ?1、3 進(jìn)程通信的方式 二、匿名管

    2024年02月09日
    瀏覽(19)
  • 【Linux】進(jìn)程間通信(匿名管道 & 命名管道)-- 詳解

    【Linux】進(jìn)程間通信(匿名管道 & 命名管道)-- 詳解

    如何理解進(jìn)程間通信? 進(jìn)程具有獨(dú)立性,所以進(jìn)程想要通信難度是比較大的,成本高。 在日常生活中,通信的本質(zhì)是傳遞信息,但站在程序員角度來看, 進(jìn)程間通信的本質(zhì):讓不同的進(jìn)程看到同一份資源(內(nèi)存空間) 。 進(jìn)程間通信就是進(jìn)程之間互相傳遞數(shù)據(jù),那么進(jìn)程間

    2024年04月28日
    瀏覽(26)
  • 【Linux】匿名管道與命名管道,進(jìn)程池的簡易實(shí)現(xiàn)

    【Linux】匿名管道與命名管道,進(jìn)程池的簡易實(shí)現(xiàn)

    本質(zhì)是先讓不同的進(jìn)程看到同一份資源,也就是兩個(gè)進(jìn)程都能對(duì)管道文件的緩沖區(qū)進(jìn)行操作 這里我們pipe的時(shí)候,會(huì)使用兩個(gè)文件描述符,這兩個(gè)文件描述里面存的file結(jié)構(gòu)體是同一個(gè),也就是管道文件的file結(jié)構(gòu)體,file結(jié)構(gòu)體中存儲(chǔ)有inode以及系統(tǒng)緩沖區(qū),此時(shí)fork一個(gè)子進(jìn)程

    2024年02月05日
    瀏覽(23)
  • 使用python對(duì)圖片進(jìn)行壓縮

    使用python對(duì)圖片進(jìn)行壓縮

    對(duì)于圖片,強(qiáng)行被定義高和寬會(huì)變形,我們希望圖片被改變大小后,比例保持不變,完成對(duì)圖片的壓縮。 1.pillow : pip install pillow -i https://pypi.douban.com/simple 2. os : 連接文件,并獲取文件夾下的文件名 獲取picture文件下的相關(guān)圖片的路徑,將路徑放到列表里面進(jìn)行存儲(chǔ) 使用Image模

    2024年02月13日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包