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

python使用ffmpeg來(lái)制作音頻格式轉(zhuǎn)換工具(優(yōu)化版)

這篇具有很好參考價(jià)值的文章主要介紹了python使用ffmpeg來(lái)制作音頻格式轉(zhuǎn)換工具(優(yōu)化版)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

簡(jiǎn)介:一個(gè)使用python加上ffmpeg模塊來(lái)進(jìn)行音頻格式轉(zhuǎn)換的工具。
日志:

20231030:第一版,設(shè)置了簡(jiǎn)單的UI布局和配色,實(shí)現(xiàn)音頻轉(zhuǎn)為Mp3、AAC、wav、flac四種格式。可解析音頻并顯示信息,可設(shè)置轉(zhuǎn)換后的保存路徑

UI界面:
python使用ffmpeg來(lái)制作音頻格式轉(zhuǎn)換工具(優(yōu)化版),python,python,ffmpeg,開(kāi)發(fā)語(yǔ)言
編程平臺(tái):visual studio code
python使用ffmpeg來(lái)制作音頻格式轉(zhuǎn)換工具(優(yōu)化版),python,python,ffmpeg,開(kāi)發(fā)語(yǔ)言
編程語(yǔ)言:python 3.12.0
模塊:ffmpeg、PyQt5
其中ffmpeg是用來(lái)處理音頻文件的主要模塊,PyQt5是用來(lái)制作UI界面使用。

ffmpeg安裝:
注意這里不要直接pip install ffmpeg

pip install ffmpeg-python

PyQt5安裝:

pip install PyQt5

關(guān)于PyQt5的使用,本文中不做多介紹,因?yàn)閜yqt5的使用相對(duì)來(lái)說(shuō)是比較簡(jiǎn)單的。網(wǎng)上非常多的示例可以參考。

下面說(shuō)一下代碼:

音頻導(dǎo)入

導(dǎo)入音頻文件,使用pyqt5的qfiledialog類(lèi)getopenfilename方法,如下

 def music_load(self):
        """文件載入"""
        self.filepth,_=QFileDialog.getOpenFileName(self,"選擇音頻","C:/","Allfile(*);;txt(*.txt)")
        if self.filepth:
            self.lbl2.setText(self.filepth)
            self.music_info_get(self.filepth)
            
        else:
            self.lbl2.setText("路徑為空")
獲取音頻信息

獲取音頻信息,要用到ffmpeg中的probe功能,probe的參數(shù)就是音頻文件的文件路徑。如果音頻文件是正確且存在的,ffmpeg會(huì)自動(dòng)對(duì)音頻進(jìn)行分析,返回一個(gè)JSON格式的數(shù)據(jù)集。

   probe=ffmpeg.probe(file)

返回?cái)?shù)據(jù)示例:

{‘streams’: [{‘index’: 0, ‘codec_name’: ‘wmav2’, ‘codec_long_name’: ‘Windows Media Audio 2’, ‘codec_type’: ‘a(chǎn)udio’, ‘codec_tag_string’: ‘a(chǎn)[1][0][0]’, ‘codec_tag’: ‘0x0161’, ‘sample_fmt’: ‘fltp’, ‘sample_rate’: ‘44100’, ‘channels’: 2, ‘bits_per_sample’: 0, ‘initial_padding’: 0, ‘r_frame_rate’: ‘0/0’, ‘a(chǎn)vg_frame_rate’: ‘0/0’, ‘time_base’: ‘1/1000’, ‘start_pts’: 0, ‘start_time’: ‘0.000000’, ‘duration_ts’: 280333, ‘duration’: ‘280.333000’, ‘bit_rate’: ‘96024’, ‘extradata_size’: 10, ‘disposition’: {‘default’: 0, ‘dub’: 0, ‘original’: 0, ‘comment’: 0, ‘lyrics’: 0, ‘karaoke’: 0, ‘forced’: 0, ‘hearing_impaired’: 0, ‘visual_impaired’: 0, ‘clean_effects’: 0, ‘a(chǎn)ttached_pic’: 0, ‘timed_thumbnails’: 0, ‘captions’: 0, ‘descriptions’: 0, ‘metadata’: 0, ‘dependent’: 0, ‘still_image’: 0}, ‘tags’: {‘language’: ‘chi’}}], ‘format’: {‘filename’: ‘F:/音樂(lè)/Celine Dion(席琳 迪翁)-My Heart Will Go On.wma’, ‘nb_streams’: 1, ‘nb_programs’: 0, ‘format_name’: ‘a(chǎn)sf’, ‘format_long_name’: ‘ASF (Advanced / Active Streaming Format)’, ‘start_time’: ‘0.000000’, ‘duration’: ‘280.333000’, ‘size’: ‘3395127’, ‘bit_rate’: ‘96888’, ‘probe_score’: 100, ‘tags’: {‘DeviceConformanceTemplate’: ‘L1’, ‘a(chǎn)rtist’: ‘Celine Dion(席琳 迪翁)’, ‘WM/WMADRCAverageReference’: ‘7322’, ‘WM/WMADRCPeakReference’: ‘32767’, ‘title’: ‘My Heart Will Go On’, ‘IsVBR’: ‘0’, ‘a(chǎn)lbum’: ‘泰坦尼克號(hào)電影音樂(lè)精選’, ‘WMFSDKNeeded’: ‘0.0.0.0000’, ‘WMFSDKVersion’: ‘10.00.00.3708’}}}

以上是probe返回的內(nèi)容格式,可以看到包含了很多音頻文件的信息,如音頻名、音頻格式、時(shí)間、比特率等等,probe實(shí)際上是一個(gè)字典數(shù)據(jù)。
所以,如果要想取其中的對(duì)應(yīng)數(shù)據(jù)來(lái)用,只需要對(duì)照字典中的鍵來(lái)取值即可。

format=probe['format']
stream=probe['streams'][0]

format和stream又分別是字典類(lèi)型,再次按照字典來(lái)取值:

 		video_time=format['duration']
        video_byte=str(int(format['size'])/1024/1024)
    
        video_rate=stream['bit_rate']
        video_rate2=float(video_rate)/1000
     
        music_name=format['filename']
        music_geshi=format['format_name']
音頻格式轉(zhuǎn)換

格式轉(zhuǎn)換功能主要是ffmpeg來(lái)完成的,python只需要調(diào)用ffmpeg程序即可,因此使用了subprocess模塊。

pp=subprocess.Popen(cmdtxt,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,encoding='utf-8',text=True)

關(guān)于subprocess的詳細(xì)使用,大家可以自行搜索,此處不多介紹。
subprocess調(diào)用ffmpeg,而ffmpeg的指令格式如下:

ffmpeg指令示例:

ffmpeg -i input.mp3 -acodec pcm_s16le -ac 2 -ar 44100 output.wav

也可以很簡(jiǎn)單:

ffmpeg -i input.mp3 output.wav

本文中主要使用第二種指令,即簡(jiǎn)單化。subprocess模塊調(diào)用ffmpeg程序,而ffmpeg根據(jù)傳入的指令來(lái)對(duì)目標(biāo)進(jìn)行轉(zhuǎn)換。

以上就是這個(gè)音頻轉(zhuǎn)換程序的基本邏輯,從使用來(lái)說(shuō),先載入音頻,然后選擇要轉(zhuǎn)換的格式,以及轉(zhuǎn)換后保存的路徑,最后點(diǎn)擊“格式轉(zhuǎn)換”按鈕,等待程序自動(dòng)轉(zhuǎn)換即可,轉(zhuǎn)換完成后會(huì)有提示。
python使用ffmpeg來(lái)制作音頻格式轉(zhuǎn)換工具(優(yōu)化版),python,python,ffmpeg,開(kāi)發(fā)語(yǔ)言
整個(gè)操作是很簡(jiǎn)單的,下面會(huì)給出完整代碼。

其中,UI界面的配色,是有qss來(lái)渲染的。

qss文件的讀取,是一個(gè)單獨(dú)的模塊:
qss_read.py

class QssRead:
    @staticmethod
    def readQSS(style):
        with open(style, "r",encoding="utf-8") as f:
            return f.read()
 self.qssfile1="M03_musicconvert_pro2023\\qss_main_style.qss"
self.qss1=QssRead.readQSS(self.qssfile1)
self.setStyleSheet(self.qss1)

qss文件:
可以看到,qss文件主要是統(tǒng)一設(shè)置UI界面的樣式,如顏色、形狀、粗細(xì)等。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-739670.html

/*
*
窗體背景色為漸變色
*/
QWidget
{
   
    
    background-color:qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #d0f0e8,stop:0.2 #a5f8cc,stop:0.5 #99f56b stop:1 #8EF068);
    
    /*background-color:qradialgradient(cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0 red, stop:1 blue)
    */
    /*background-color:qconicalgradient(cx:0.5, cy:0.5, angle:0, stop:0 blue, stop:0.2 yellow,stop:1 #4CF562)
    */
}
QMenuBar
{
   
    background-color:qlineargradient(x1:0, y1:0, 

到了這里,關(guān)于python使用ffmpeg來(lái)制作音頻格式轉(zhuǎn)換工具(優(yōu)化版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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】ffmpeg 命令行參數(shù) ⑦ ( 使用 FFmpeg 提取 PCM 音頻數(shù)據(jù) | PCM 音頻格式 | 提取 PCM 音頻格式常用參數(shù) | 查詢(xún)文檔方法 )

    【FFmpeg】ffmpeg 命令行參數(shù) ⑦ ( 使用 FFmpeg 提取 PCM 音頻數(shù)據(jù) | PCM 音頻格式 | 提取 PCM 音頻格式常用參數(shù) | 查詢(xún)文檔方法 )

    PCM 全稱(chēng) \\\" Pulse Code Modulation \\\" , 脈沖編碼調(diào)制 , 該 音頻數(shù)據(jù) 是未經(jīng)壓縮的 采樣裸數(shù)據(jù) , 只有 知道該數(shù)據(jù)的 采樣率 / 采樣位數(shù) / 通道數(shù) 才能將該音頻數(shù)據(jù)播放出來(lái) ; PCM 數(shù)據(jù)是 最原始的音頻數(shù)據(jù) , 音頻內(nèi)容完全無(wú)損 , 但是 PCM 數(shù)據(jù)體積龐大 , 對(duì) PCM 音頻數(shù)據(jù)壓縮 分為 無(wú)損壓縮

    2024年04月11日
    瀏覽(31)
  • Python音頻和視頻格式轉(zhuǎn)換

    1.音頻轉(zhuǎn)換 使用Python中的一些庫(kù)來(lái)進(jìn)行音頻格式轉(zhuǎn)換。其中一個(gè)常用的庫(kù)是pydub。首先,你需要安裝pydub庫(kù)。你可以使用以下命令來(lái)安裝它: 安裝完成后,你可以使用以下代碼來(lái)進(jìn)行音頻格式轉(zhuǎn)換: 2.視頻格式轉(zhuǎn)換 使用FFmpeg庫(kù)。FFmpeg是一個(gè)開(kāi)源的跨平臺(tái)多媒體處理工具,可以

    2024年02月15日
    瀏覽(18)
  • 使用ffmpeg命令進(jìn)行視頻格式轉(zhuǎn)換

    使用ffmpeg命令進(jìn)行視頻格式轉(zhuǎn)換

    FFmpeg 是一個(gè)非常強(qiáng)大和靈活的開(kāi)源工具集,用于處理音頻和視頻文件。它提供了一系列的工具和庫(kù),可以用于錄制、轉(zhuǎn)換、流式傳輸和播放音頻和視頻。 FFmpeg 主要特點(diǎn)如下: 格式支持廣泛:FFmpeg 支持幾乎所有的音頻和視頻格式,包括非常流行的格式如 MP4, AVI, MOV, MP3, AAC 等

    2024年02月04日
    瀏覽(30)
  • node使用fluent-ffmpeg把webm格式的音頻轉(zhuǎn)成mp3

    node使用fluent-ffmpeg把webm格式的音頻轉(zhuǎn)成mp3

    下載并安裝ffmpeg http://ffmpeg.org/download.html?aemtn=tg-on https://www.gyan.dev/ffmpeg/builds/? 配置環(huán)境變量: ?查詢(xún)版本 裝包: ? ?

    2024年02月16日
    瀏覽(27)
  • 【Python小項(xiàng)目之Tkinter應(yīng)用】【實(shí)用工具】.MP4格式文件轉(zhuǎn)換.GIF文件轉(zhuǎn)換器大優(yōu)化,實(shí)現(xiàn)多視頻上傳功能,多個(gè)視頻同時(shí)轉(zhuǎn)換為GIF,并為每個(gè)視頻進(jìn)度分配進(jìn)度條等相關(guān)信息
  • Java工程使用ffmpeg進(jìn)行音視頻格式轉(zhuǎn)換(ws.schild)

    JAVE (Java Audio Video Encoder)是一個(gè)純Java的音視頻編碼器和解碼器庫(kù),它是基于FFmpeg。JAVE庫(kù)提供了一些簡(jiǎn)單易用的API,用于音頻和視頻格式的轉(zhuǎn)換、編碼、解碼等操作。它對(duì)于一些基本的音視頻處理任務(wù)來(lái)說(shuō)是一個(gè)不錯(cuò)的選擇。 這些庫(kù)都是基于FFmpeg的,并允許在Java中處理音頻和

    2024年02月14日
    瀏覽(337)
  • 使用ffmpeg將m4a及wav等文件轉(zhuǎn)換為MP3格式

    使用ffmpeg將m4a及wav等文件轉(zhuǎn)換為MP3格式

    要使用ffmpeg將m4a及wav等文件轉(zhuǎn)換為MP3格式,您可以按照以下步驟進(jìn)行操作: 確保您已經(jīng)安裝了ffmpeg軟件。如果沒(méi)有安裝,請(qǐng)?jiān)L問(wèn)ffmpeg的官方網(wǎng)站https://ffmpeg.org/ 并按照說(shuō)明進(jìn)行安裝。 Win10 / Win11 可以通過(guò) winget 命令安裝 注意前提已經(jīng)在微軟應(yīng)用商店安裝了 應(yīng)用安裝程序 安裝

    2024年02月13日
    瀏覽(84)
  • androidstudio ffmpeg 音頻轉(zhuǎn)換

    androidstudio ffmpeg 音頻轉(zhuǎn)換

    項(xiàng)目中的語(yǔ)音喚醒后的語(yǔ)音識(shí)別人聲檢測(cè)一直是一個(gè)很令我頭痛的問(wèn)題,之前因?yàn)閷?duì)各種類(lèi)型的工具包使用不熟練,以及時(shí)間問(wèn)題,一直沒(méi)有根治這個(gè)人聲檢測(cè)體驗(yàn)不好的問(wèn)題,之前的解決方案是從帖子上別的大佬那里扒下來(lái)的有關(guān)vad的代碼,拿來(lái)用的,其中有兩個(gè)問(wèn)題,一個(gè)就是人聲

    2024年02月09日
    瀏覽(15)
  • FFmpeg 解碼 AAC 格式的音頻

    FFmpeg 解碼 AAC 格式的音頻

    FFmpeg 默認(rèn)是可以解碼 AAC 格式的音頻,但是如果需要獲取 PCM16 此類(lèi)數(shù)據(jù)則需要經(jīng)過(guò)音頻轉(zhuǎn)碼。首先要打開(kāi)解碼器,然后向解碼器發(fā)送 AAC 音頻幀(不帶 ADTS),然后從解碼器獲取解碼后的音頻幀,數(shù)據(jù)是 float 類(lèi)型的,如果需要?jiǎng)t進(jìn)行轉(zhuǎn)碼流程將 float 轉(zhuǎn)成整型。 一、AAC 音頻

    2024年02月11日
    瀏覽(23)
  • 電腦音頻轉(zhuǎn)換mp3格式怎么弄,教你音頻怎么轉(zhuǎn)換mp3格式

    電腦音頻轉(zhuǎn)換mp3格式怎么弄,教你音頻怎么轉(zhuǎn)換mp3格式

    mp3格式是目前幾乎全兼容的格式了,在我們參加一些會(huì)議或講座時(shí),需要錄制一些重要的信息,結(jié)束后再進(jìn)行復(fù)盤(pán)或分享。然而,不同的錄制工具錄制的音頻格式也不同,這時(shí)使用軟件將音頻統(tǒng)一成mp3格式的話(huà),就會(huì)方便我們分享給他人了。那么大家知道電腦音頻轉(zhuǎn)換mp3格式

    2024年02月12日
    瀏覽(92)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包