導航:首頁 > 編程語言 > python音視頻混流處理

python音視頻混流處理

發布時間:2023-02-28 12:02:57

A. 利用python和麥克風進行語音數據採集的流程

使用 Python 和麥克風進行語音數據採集的流程可能包括以下步驟:

B. python中如何在程序中可以同時播放兩個音樂

import _thread
import time
from playsound import playsound

def time1(delay):
time.sleep(1)
playsound("bgm.mp3")

def time2(delay):
time.sleep(2)
playsound("auido.mp3")

try:
_thread.start_new_thread(time1, (1,))
_thread.start_new_thread(time2, (1,))

except:
print("Program Error")

while 1:
pass

C. ffmpeg-python中文文檔(三)——API參考

表示上游節點的傳出邊緣;可以用來創建更多的下游節點。

輸入文件 URL (ffmpeg -i option)

在一個 ffmpeg 命令行中包含所有給定的輸出

輸出文件地址

不詢問就覆蓋輸出文件(ffmpeg -y 選項)

在指定文件上運行 ffprobe 並返回輸出的 JSON 表示。

構建用於調用 ffmpeg 的命令行。

構建要傳遞給 ffmpeg 的命令行參數。

為提供的節點圖調用 ffmpeg 。

參數

為提供的節點圖非同步調用 ffmpeg。

參數

例子

運行和流式輸入:

運行並捕獲輸出:

使用 numpy 逐幀處理視頻:

通過重新混合顏色通道來調整視頻輸入幀。

連接音頻和視頻流,將它們一個接一個地連接在一起。

篩選器適用於同步視頻和音頻流的片段。所有段必須具有每種類型的相同數量的流,這也是輸出時的流數。

參數

裁剪輸入視頻。

參數

在輸入圖像上繪制一個彩色框。

參數

使用 libfreetype 庫從視頻頂部的指定文件中繪制文本字元串或文本。

要啟用此過濾器的編譯,您需要使用 --enable-libfreetype . 要啟用默認字體回退和字體選項,您需要使用 --enable-libfontconfig . 要啟用 text_shaping 選項,您需要使用 --enable-libfribidi

參數

· box - 用於使用背景顏色在文本周圍繪制一個框。該值必須是 1(啟用)或 0(禁用)。框的默認值為 0。

· boxborderw – 使用 boxcolor 設置要在框周圍繪制的邊框寬度。boxborderw 的默認值為 0。

· boxcolor - 用於在文本周圍繪制框的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。 boxcolor 的默認值為「white」。

· line_spacing – 使用 box 設置要在框周圍繪制的邊框的行間距(以像素為單位)。line_spacing 的默認值為 0。

· borderw – 使用邊框顏色設置要在文本周圍繪制的邊框寬度。邊框的默認值為 0。

· bordercolor – 設置用於在文本周圍繪制邊框的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。邊框顏色的默認值為「黑色」。

· 擴展- 選擇文本的擴展方式。可以是 none、strftime(已棄用)或 normal(默認)。有關詳細信息,請參閱下面的文本擴展部分。

· basetime – 設置計數的開始時間。值以微秒為單位。僅適用於已棄用的 strftime 擴展模式。要在正常擴展模式下進行模擬,請使用 pts 函數,提供開始時間(以秒為單位)作為第二個參數。

· fix_bounds - 如果為 true,檢查並修復文本坐標以避免剪切。

· fontcolor - 用於繪制字體的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。fontcolor 的默認值為「黑色」。

· fontcolor_expr – 與文本相同的擴展字元串以獲得動態字體顏色值。默認情況下,此選項具有空值並且不被處理。設置此選項時,它會覆蓋 fontcolor 選項。

· font - 用於繪制文本的字體系列。默認情況下無。

· fontfile – 用於繪制文本的字體文件。必須包含路徑。如果禁用了 fontconfig 支持,則此參數是必需的。

· alpha – 繪制應用 alpha 混合的文本。該值可以是介於 0.0 和 1.0 之間的數字。該表達式也接受相同的變數 x、y。默認值為 1。請參閱 fontcolor_expr。

· fontsize – 用於繪制文本的字體大小。字體大小的默認值為 16。

· text_shaping – 如果設置為 1,則在繪制文本之前嘗試對文本進行整形(例如,反轉從右到左文本的順序並加入阿拉伯字元)。否則,只需按照給定的方式繪制文本。默認為 1(如果支持)。

· ft_load_flags –用於載入字體的標志。這些標志映射了 libfreetype 支持的相應標志,並且是以下值的組合:

默認值為「默認」。有關更多信息,請參閱 FT_LOAD_* libfreetype 標志的文檔。

· shadowcolor – 用於在已繪制文本後面繪制陰影的顏色。有關此選項的語法,請查看 ffmpeg-utils 手冊中的「顏色」部分。shadowcolor 的默認值為「黑色」。

· shadowx – 文本陰影位置相對於文本位置的 x 偏移量。它可以是正值或負值。默認值為「0」。

· shadowy – 文本陰影位置相對於文本位置的 y 偏移量。它可以是正值或負值。默認值為「0」。

· start_number – n/frame_num 變數的起始幀號。默認值為「0」。

· tabsize - 用於呈現選項卡的空格數大小。默認值為 4。

· timecode – 以「hh:mm:ss[:;.]ff」格式設置初始時間碼表示。它可以帶或不帶文本參數使用。必須指定 timecode_rate 選項。

· rate – 設置時間碼幀率(僅限時間碼)。

· timecode_rate – 的別名rate。

· r – 的別名rate。

· tc24hmax – 如果設置為 1,時間碼選項的輸出將在 24 小時左右回繞。默認值為 0(禁用)。

· text -- 要繪制的文本字元串。文本必須是 UTF-8 編碼字元序列。如果沒有使用參數 textfile 指定文件,則此參數是必需的。

· textfile – 包含要繪制的文本的文本文件。文本必須是 UTF-8 編碼字元序列。如果沒有使用參數 text 指定文本字元串,則此參數是必需的。如果同時指定了 text 和 textfile,則會引發錯誤。

· reload – 如果設置為 1,文本文件將在每一幀之前重新載入。一定要自動更新它,否則它可能會被部分讀取,甚至失敗。

· x – 指定將在視頻幀內繪制文本的偏移量的表達式。它相對於輸出圖像的左邊框。默認值為「0」。

· y - 指定將在視頻幀內繪制文本的偏移量的表達式。它相對於輸出圖像的上邊框。默認值為「0」。有關接受的常量和函數的列表,請參見下文。

表達式常量:

x 和 y 的參數是包含以下常量和函數的表達式:

· dar:輸入顯示縱橫比,同 (w / h) * sar

· hsub:水平色度子樣本值。例如,對於像素格式「yuv422p」,hsub 為 2,vsub 為 1。

· vsub:垂直色度子樣本值。例如,對於像素格式「yuv422p」,hsub 為 2,vsub 為 1。

· line_h:每個文本行的高度

· lh:別名為line_h.

· main_h:輸入高度

· h: 的別名main_h。

· H: 的別名main_h。

· main_w:輸入寬度

· w: 的別名main_w。

· W: 的別名main_w。

· ascent:對於所有渲染的字形,從基線到用於放置字形輪廓點的最高/上網格坐標的最大距離。這是一個正值,因為網格的 Y 軸向上。

· max_glyph_a: 的別名ascent。

· 下降:對於所有渲染的字形,從基線到用於放置字形輪廓點的最低網格坐標的最大距離。由於網格的方向,這是一個負值,Y 軸向上。

· max_glyph_d: 的別名descent。

· max_glyph_h:最大字形高度,即渲染文本中包含的所有字形的最大高度,相當於上升-下降。

· max_glyph_w:最大字形寬度,即渲染文本中包含的所有字形的最大寬度。

· n:輸入幀數,從0開始

· rand(min, max):返回一個包含在 min 和 max 之間的隨機數

· sar:輸入樣本縱橫比。

· t:時間戳,以秒為單位,如果輸入時間戳未知,則為 NAN

· text_h:渲染文本的高度

· th: 的別名text_h。

· text_w:渲染文本的寬度

· tw: 的別名text_w。

· x:繪制文本的 x 偏移坐標。

· y:繪制文本的 y 偏移坐標。

這些參數允許 x 和 y 表達式相互引用,因此您可以例如指定 y=x/dar.

應用自定義過濾器。

filter通常由更高級別的過濾器函數使用,例如 hflip ,但如果缺少過濾器實現 ffmpeg-python ,您可以 filter 直接調用以 ffmpeg-python 將過濾器名稱和參數逐字傳遞給 ffmpeg 。

參數

函數名稱後綴_是為了避免與標准 pythonfilter 函數混淆。

例子

替代名稱 filter ,以免與內置的 pythonfilter 運算符沖突。

應用具有一個或多個輸出的自定義過濾器。

這 filter 與過濾器可以產生多個輸出相同。

要引用輸出流,請使用 .stream 運算符或括弧簡寫:

例子

水平翻轉輸入視頻。

修改輸入的色調和/或飽和度。

參數

將一個視頻疊加在另一個視頻之上。

參數

更改輸入幀的 PTS(表示時間戳)。

FFmpeg里有兩種時間戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顧名思義,前者是解碼的時間,後者是顯示的時間。

參數

修剪輸入,使輸出包含輸入的一個連續子部分。

參數

垂直翻轉輸入視頻。

應用縮放和平移效果。

參數

D. python最佳入門教程(1): python的安裝

本教程基於python3.x, 是針對初學者的一系列python入門教程,在知乎上常有人問我計算機該怎麼學,如何自學編程,筆者也是通過自學編程而進入IT這一行業的,回顧入行的這幾年,從音視頻流媒體輾轉到人工智慧深度學習,機器視覺,我是下了不少苦心的,對於如何學習有自己的一套理論和實踐方法,很多人自言學編程不得其門,把學不會歸咎於天分,其實芸芸眾生,智力無別,你現在所看到的是技術大牛們一個個超凡絕頂(然知此絕頂非彼絕頂),看不到的是曾經的他們,也在每個晝夜裡用心苦學。再者學一門技術,需要勤學刻苦,是需要講究方法和基礎的,方法對了就事半功倍,所謂的天才也無不是建立在扎實的基礎之上。
在windows中安裝python
首先打開python官網https://www.python.org/,點擊頁面downloads導航按鈕,下載windows最新的基於web安裝的安裝器,右鍵以管理員身份運行 安裝包,會出現如下界面:
將Add Python 3.7 to PATH 進行勾選,勾選此項的目的在於將python解釋器加入系統環境變數,則在後續的python開發中可直接在windows 命令行中執行python腳本。所謂的環境變數是系統運行環境的一系列參數,比如這里的系統環境變數是PATH,PATH保存了與路徑相關的參數,系統在路徑查找中,會對PATH保存的路徑進行搜索。
點擊install Now按鈕執行python的安裝
打開windows命令行界面(按windows鍵輸入cmd命令),輸入python -V,出現python版本的相關輸出,即表示安裝成功。
在Linux系統中安裝python
筆者的系統是CentOS, Linux系統默認有安裝python,但是其版本是2.x,在這里筆者以源碼安裝的形式來安裝python 3.X。首先進入python源碼包頁面 點擊下載最新的gzip格式的python源碼包,上傳到伺服器然後進行解壓,解壓後的目錄結構如下圖所示:
Linux中的configure與make
configure是Linux中的腳本配置工具,用來對源碼的當前安裝環境進行檢測,若檢測無誤,會在當前目錄生成一個供源碼編譯的Makefile腳本文件。
make是Linux系統下的編譯安裝工具,用來解釋執行makefile文件中的腳本命令,編譯命令。
現在我們開始編譯安裝python
(1) 在當前目錄執行./configure(2) 輸入 make && sudo make install
若無指定安裝目錄,python會被默認安裝在/usr/local目錄中, 讀者可以執行./configure --prefix=「你自定義的安裝目錄」來配置安裝路徑。安裝完畢以後進入/usr/local/bin目錄,輸入 「python3.x -V」 (這里的python3.x為你所安裝的python版本),若出現與python版本的相關輸出,即表示安裝成功。
為安裝的python設置軟鏈接
安裝的python可以以絕對路徑的方式來執行,每次敲一大段路徑來執行python未免麻煩,通常我們會給安裝的python設置軟鏈接,這里的軟鏈接類似於windows的快捷方式。
輸入以下命令來給python設置軟鏈接,筆者安裝的版本是python3.7, pip是python的包管理工具,會在教程的後續章節中進行詳細講解。
ln -s /usr/bin/python3 /usr/local/bin/python3.7 # 表示設置python3 為 /usr/local/bin/python3.7的快捷方式ln -s /usr/bin/pip3 /usr/local/bin/pip3.7 # 表示設置pip3 為 /usr/local/bin/pip3.7的快捷方式

E. python視頻分離音頻,同時簡單分軌

首先,安裝相應的音視頻處理庫:

然後,導入庫,並讀取相應的視頻文件,將音頻導出:(路徑修改為自己的路徑)

主要思路:用字元串保存時:分:秒,然後對應不同的音軌(下面以列表的方式)進行裁剪,注意:AudioSegment的單位是毫秒,所以在取切片時乘以1000。

這樣就完成了。

F. 自己動手寫Python進行文本轉語音程序,共計11行代碼

1、首先安裝Python程序推薦3.7

2、下載 pyttsx3庫。

3、將需要轉換的文本和程序放到一起。

4、運行程序就會朗讀文本和保存文本朗讀的語音文件。

以下是源代碼:

import pyttsx3

with open ( 'word.txt' , encoding = 'utf-8' ) as obj:

line=obj.readline()

engine=pyttsx3.init()

rate=engine.getProperty( 'rate' )

engine.setProperty( 'rate' , 160 )

volume=engine.getProperty( 'volume' )

engine.setProperty( 'volume' , 0.6 )

engine.say(line)

engine.save_to_file(line, 'abc.mp3' )

engine.runAndWait()

G. 爆肝!用Python製作抖音爆款視頻!

前幾天我在抖音上刷到一個慢慢變老的視頻,播放量居然有 30W+,當時就在想這視頻 Python 可不可以做?經過一番搜索,我找到了騰訊雲的人臉年齡變化 API,上面介紹說只要用戶上傳一張人臉圖片,基於人臉編輯與生成演算法,就可以輸出一張人臉變老或變年輕的圖片,並支持實現人臉不同年齡的變化。

第一步,在注冊賬號之後,打開 API 密鑰管理頁面( https://console.cloud.tencent.com/cam/capi )獲取到 SecretId 和 SecretKey。

第二步,安裝騰訊雲的 SDK

在人臉年齡變化 API 中有一個 AgeInfo 參數,它包含了 Age 和 FaceRect 兩個屬性,其中 FaceRect 屬性必須填人臉在照片中基於左上角的 X、Y 坐標和人臉的高度與寬度。所以先要調用人臉檢測與分析 API 得到這些數據。

下面的示例圖是在網路圖片中截取的。

示例結果

在上面已經得到了各個人臉的 X、Y、Width、Height 屬性,加上變老的年齡 Age,就可以請求年齡變化 API 了。

這里需要注意的是 models 模塊,人臉檢測 models 模塊是在 tencentcloud.iai.v20200303 包下,人臉年齡變化的 models 是在 tencentcloud.ft.v20200304 下,兩個 models 模塊並不兼容。

示例結果

最後的視頻可以將圖片一張一張插入 PPT 幻燈片,點擊保存為視頻。

用 Python 製作抖音素材,下一個 30W+ 播放量等著你。

閱讀全文

與python音視頻混流處理相關的資料

熱點內容
程序員貼面膜的正確方法 瀏覽:74
如何開啟app步數授權 瀏覽:22
linuxmaven路徑 瀏覽:137
python爬qq說說 瀏覽:416
linuxmap文件 瀏覽:67
轉轉app如何搜索快手主播 瀏覽:776
移動硬碟文件夾成0位元組 瀏覽:683
夢幻西遊解壓視頻大全 瀏覽:252
解壓小視頻手速 瀏覽:152
我的世界伺服器卡沒血如何修改 瀏覽:161
vba入門到精通pdf 瀏覽:113
tomcat怎麼一個伺服器部署 瀏覽:797
phphttps介面 瀏覽:895
javabyte數組int 瀏覽:810
公司網路共享的文件夾 瀏覽:1000
拍臉搭配衣服是什麼app 瀏覽:916
歐珀手機怎麼更改加密密碼 瀏覽:508
程序員那麼可愛陸漓氣人語錄 瀏覽:904
python中del刪除 瀏覽:461
華為雲耀伺服器和ecs區別 瀏覽:730