主頁 > 知識(shí)庫 > Python從視頻中提取音頻的操作

Python從視頻中提取音頻的操作

熱門標(biāo)簽:江蘇客服外呼系統(tǒng)廠家 400電話申請(qǐng)服務(wù)商選什么 西藏智能外呼系統(tǒng)五星服務(wù) 原裝電話機(jī)器人 千陽自動(dòng)外呼系統(tǒng) 平頂山外呼系統(tǒng)免費(fèi) 工廠智能電話機(jī)器人 清遠(yuǎn)360地圖標(biāo)注方法 在哪里辦理400電話號(hào)碼

簡(jiǎn)介

OpenCV中使用VideoCapture類寫的視頻是沒有音頻的,如果要進(jìn)一步處理音頻則需要用到一個(gè)庫——MoviePy,這個(gè)庫是Python視頻編輯庫,可裁剪、拼接、標(biāo)題插入、視頻合成、視頻處理和自定義效果。

安裝

pip install moviepy

代碼

from moviepy.editor import *
video = VideoFileClip('test.mp4')
audio = video.audio
audio.write_audiofile('test.mp3')

不安裝moviepy視頻編輯庫可以直接使用ffmpeg-python庫,見參考文獻(xiàn)4,代碼稍微復(fù)雜點(diǎn)

音頻格式

extensions_dict = { "mp4": {'type':'video', 'codec':['libx264','libmpeg4', 'aac']},
          'ogv': {'type':'video', 'codec':['libtheora']},
          'webm': {'type':'video', 'codec':['libvpx']},
          'avi': {'type':'video'},
          'mov': {'type':'video'},
          'ogg': {'type':'audio', 'codec':['libvorbis']},
          'mp3': {'type':'audio', 'codec':['libmp3lame']},
          'wav': {'type':'audio', 'codec':['pcm_s16le', 'pcm_s24le', 'pcm_s32le']},
          'm4a': {'type':'audio', 'codec':['libfdk_aac']}
         }

可看到支持ogg、mp3、wav和m4a四種格式,個(gè)人測(cè)試m4a輸出失敗,建議只用mp3和wav

測(cè)試2分鐘的視頻導(dǎo)出mp3為1.83Mb,wav為20.1Mb

mp3是有損格式,wav是無損格式,按需選擇

備注

要實(shí)現(xiàn)更底層的音視頻處理應(yīng)用ffmpeg

補(bǔ)充:python處理mp4視頻提取音頻轉(zhuǎn)為mp3或者wav,并進(jìn)行截取

mp4視頻文件提取音頻轉(zhuǎn)為mp3或者wav文件

mp3是有損文件,wav是無損文件,就像我測(cè)試的視頻,mp3導(dǎo)出只有幾十k,wav文件導(dǎo)出有3M多。

from moviepy.editor import *
video = VideoFileClip('aa.mp4')
audio = video.audio
audio.write_audiofile('test.wav')
audio.write_audiofile('test.mp3')

截取map或者wav文件

from scipy.io import wavfile
like = wavfile.read('test.wav')
# print (like)
# 音頻結(jié)果將返回一個(gè)tuple。第一維參數(shù)是采樣頻率,單位為秒;第二維數(shù)據(jù)是一個(gè)ndarray表示歌曲,如果第二維的ndarray只有一個(gè)數(shù)據(jù)表示單聲道,兩個(gè)數(shù)據(jù)表示立體聲。所以,通過控制第二維數(shù)據(jù)就能對(duì)歌曲進(jìn)行裁剪。
# 對(duì)like這個(gè)元組第二維數(shù)據(jù)進(jìn)行裁剪,所以是like[1];第二維數(shù)據(jù)中是對(duì)音樂數(shù)據(jù)切分。 start_s表示你想裁剪音頻的起始時(shí)間;同理end_s表示你裁剪音頻的結(jié)束時(shí)間。乘44100 是因?yàn)槊棵胄枰M(jìn)行44100次采樣
# 這里表示對(duì)該音頻的13-48秒進(jìn)行截取
wavfile.write('test2.wav',44100,like[1][13*44100:48*44100])

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Python做圖像處理及視頻音頻文件分離和合成功能
  • ffmpeg+Python實(shí)現(xiàn)B站MP4格式音頻與視頻的合并示例代碼
  • Python中操作各種多媒體,視頻、音頻到圖片的代碼詳解
  • 利用Python小工具實(shí)現(xiàn)3秒鐘將視頻轉(zhuǎn)換為音頻
  • Python一鍵查找iOS項(xiàng)目中未使用的圖片、音頻、視頻資源
  • python基于http下載視頻或音頻
  • 提取視頻中的音頻 Python只需要三行代碼!

標(biāo)簽:隨州 白城 錦州 股票 安慶 天水 西安 日照

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python從視頻中提取音頻的操作》,本文關(guān)鍵詞  Python,從,視頻,中,提取,音頻,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python從視頻中提取音頻的操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python從視頻中提取音頻的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章