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

Python如何對音視頻文件進(jìn)行解析詳解

 更新時間:2022年11月17日 12:01:12   作者:盆友圈的小可愛  
在腳本或應(yīng)用程序中,我們需要執(zhí)行音頻處理任務(wù),下面這篇文章主要給大家介紹了關(guān)于Python如何對音視頻文件進(jìn)行解析的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

作為一個學(xué)完P(guān)ython基礎(chǔ)知識的測試,終于可以像RD們自己寫腳本處理任何場景吧,如何優(yōu)雅地寫出來代碼,接下來開啟進(jìn)階版的Python。

在我們工作中,涉及的多媒體文件相關(guān)的測試,總逃不掉要使用工具查看多媒體文件相關(guān)的信息,上百次甚至上千次的打開關(guān)閉操作,工作是非常低效。

本期,我們一起來實現(xiàn)如何使用Python解析多媒體文件獲取信息,一起來漲知識吧~

問題背景

當(dāng)我們遇到進(jìn)行多媒體測試,總會遇到各種各樣不同編碼、后綴、多音軌的多媒體文件。那么問題來,在這個測試過程我們總是打開多媒體文件-查看文件編碼等信息,此過程如此往復(fù)。在測試一個項目下來,累計打開查看多媒體文件信息至少也有上百次~

  • 在這里補(bǔ)充一下,通常對于多媒體測試來說,常用的分析工具是**MediaInfo**
    • 是一款開源的多媒體分析工具
    • 可以支持多種視頻和音頻文件格式
    • 支持多種格式查看方式如xml、text、tree等

做測試真是體力活,惰性是提高工作效率的第一次動力,動動腦筋,在網(wǎng)上查找一番Python提供了關(guān)于多媒體解析的庫pymediainfo庫控制MediaInfo工具

2.安裝依賴庫

2.1 pymediainfo庫

Pymediainfo 是專門對多媒體文件進(jìn)行解析的開源第三方Python庫,目前維護(hù)作者是Louis Sautier??梢灾С諰inux、MAC OS和Windows系統(tǒng)。

Pymediainfo 模塊中調(diào)用mediaInfo工具,解析文件并返回詳細(xì)信息->空白備注的信息。

2.2 安裝pymediainfo庫

  • 第三方庫,安裝直接使用Python提供的pip工具
    • pip install pymediainfo
  • 如果安裝遇到下載失敗,則可以添加其他服務(wù)器資源進(jìn)行下載。如清華大學(xué)源
    • pip install pymediainfo -i https://pypi.tuna.tsinghua.edu.cn/simple

3. 測試解析效果

查看 pymediainfo 庫源代碼pymediainfo/init.py內(nèi)容,可以看到pymediainfo主要有兩個類:

  • Track:從mediaInfo對象輸出指定屬性的值
  • Medianfo:解析多媒體文件,獲取詳細(xì)信息

根據(jù)官網(wǎng)文檔的介紹,簡單使用pymediainfo庫方法,解析movie1.mp4文件:

from pymediainfo import MediaInfo
media_info = MediaInfo.parse(filename)
print(media_info.to_json())

終端輸出非常詳細(xì)的信息,如下部分打印截圖:

我們看到輸出的內(nèi)容是Json格式的,存在兩個問題:

  • 數(shù)據(jù)字段多
  • 數(shù)據(jù)字段間距擁擠

介于以上問題,對解析的Json數(shù)據(jù),要進(jìn)行格式化處理輸出,怎么做到輸出形式如mediainfo 軟件GUI效果一樣呢?

4. 格式化解析信息

我們獲取到的media_info信息,怎么格式化輸出與GUI界面顯示的一樣的內(nèi)容,最直接的思路大概如下:

  • 查看JSON數(shù)據(jù)內(nèi)容,多媒體文件信息主要包含三個部分:

    • General:movie、music、picture必有
    • Video:movie必帶,music和picture無
    • Audio:movie和music必帶,picture無
  • 三種類型的多媒體文件字段內(nèi)容也不盡相同,其中movie文件字段最多

根據(jù)GUI上對每種文件展示詳細(xì)內(nèi)容字段,總體是一致的,可以使用map方式,將GUI上展示的字段名和JSON字段建立映射表output_type來存儲。

獲取到解析信息后,使用for循環(huán)將tracks所有屬性字段, 根據(jù)創(chuàng)建output_type截取字段來進(jìn)行打印輸出到new_file文件中。

在此過程中,當(dāng)指定的字段值為None時,則進(jìn)行跳過。

注:mediaInfo GUI界面 text展示的是左對齊,因此可以使用format格式輸出

"{key1:[填充字符][對齊方式][寬度]}".format(key1)
# *<40:左對齊,總共40個字符,不夠用*填充
# *>40:右對齊,總共40個字符,不夠用*填充
# *^40:居中,總共40個字符,不夠用*填充

根據(jù)以上思路,代碼就非常容易實現(xiàn)啦demo代碼如下

終端打印效果如下所示:

5. 批量解析操作

回到開頭我們面對一堆的多媒體文件需要查看分析詳情的時候,大概的解決思路如下:

  • 我們可以繼續(xù)使用os.path模塊獲取指定目錄下所有多媒體文件列表media_files。
  • 遍歷將每個mediafile使用mediainfo方法解析出信息mediainfo.to_json()存儲在list中,為什么不每一次解析內(nèi)容就寫入到文件中,原因如下:

    每次解析后頻繁打開寫入文件操作,消耗系統(tǒng)資源

    對于mediainfo內(nèi)容還需要進(jìn)行格式化后內(nèi)容寫入到目標(biāo)文件中

  • 將統(tǒng)一的格式化內(nèi)容一一寫入到指定文件中,可以為后續(xù)查找和分析提供資料

6. 總結(jié)

本期,我們在工作遇到要頻繁地查看和查找多媒體文件信息,學(xué)習(xí)到了使用python中第三方庫pymediainfo模塊便捷快速解析指導(dǎo)的多媒體文件。

根據(jù)不同場景和需求,個性化解析出想要的多媒體詳細(xì)信息,提高我們工作效率,更多的時間學(xué)習(xí)其他新知識啦~

到此這篇關(guān)于Python如何對音視頻文件進(jìn)行解析的文章就介紹到這了,更多相關(guān)Python音視頻文件解析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python在centos7.6上安裝python3.9的詳細(xì)教程(默認(rèn)python版本為2.7.5)

    Python在centos7.6上安裝python3.9的詳細(xì)教程(默認(rèn)python版本為2.7.5)

    這篇文章主要介紹了Python在centos7.6上安裝python3.9(默認(rèn)python版本為2.7.5)的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-10-10
  • python好玩的項目—色情圖片識別代碼分享

    python好玩的項目—色情圖片識別代碼分享

    這篇文章主要介紹了python好玩的項目—色情圖片識別,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 使用Python的Flask框架表單插件Flask-WTF實現(xiàn)Web登錄驗證

    使用Python的Flask框架表單插件Flask-WTF實現(xiàn)Web登錄驗證

    Flask處理表單除了本身的WTForms包,使用Flask-WTF擴(kuò)展來增強(qiáng)表單功能也是很多開發(fā)者的選擇,這里我們就來講解如何使用Python的Flask框架表單插件Flask-WTF實現(xiàn)Web登錄驗證
    2016-07-07
  • python語音識別指南終極版(有這一篇足矣)

    python語音識別指南終極版(有這一篇足矣)

    這篇文章主要介紹了python語音識別指南終極版的相關(guān)資料,包括語音識別的工作原理及使用代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • windows中python實現(xiàn)自動化部署

    windows中python實現(xiàn)自動化部署

    本文主要介紹了windows中python實現(xiàn)自動化部署,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python基本數(shù)據(jù)結(jié)構(gòu)之字典類型dict用法分析

    Python基本數(shù)據(jù)結(jié)構(gòu)之字典類型dict用法分析

    這篇文章主要介紹了Python基本數(shù)據(jù)結(jié)構(gòu)之字典類型dict用法,結(jié)合實例形式分析了Python字典類型dict概念、原理、定義及基本使用技巧,需要的朋友可以參考下
    2019-06-06
  • 最新評論

    安远县| 兴业县| 成都市| 赣榆县| 阿克陶县| 大竹县| 永吉县| 南雄市| 普安县| 兴化市| 莲花县| 射洪县| 理塘县| 清水河县| 翼城县| 大兴区| 富宁县| 南宫市| 长子县| 衡东县| 峨山| 利川市| 佛坪县| 阜平县| 德令哈市| 永昌县| 化州市| 友谊县| 海兴县| 银川市| 西乌珠穆沁旗| 太康县| 五台县| 崇仁县| 买车| 陆河县| 泰来县| 南丹县| 高碑店市| 凤山县| 东平县|