前書き
VideoCaptureクラスを使用してOpenCVで記述されたビデオには音声がありません。音声をさらに処理する場合は、ライブラリMoviePyを使用する必要があります。このライブラリは、トリミング、スプライス、タイトル挿入、ビデオ合成、ビデオ処理、およびカスタムエフェクト。
インストール
pip install moviepy
コード
from moviepy.editor import *
video = VideoFileClip('平妖往事live.mp4')
audio = video.audio
audio.write_audiofile('test.mp3')
MoviePy - Writing audio in test.mp3
MoviePy - Done.
moviepyビデオ編集ライブラリをインストールせずにffmpeg-pythonライブラリを直接使用できます。リファレンス4を参照してください。コードは少し複雑です。
オーディオフォーマット
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の4つの形式がサポートされていることがわかります。m4a出力の個人テストは失敗します。mp3とwavのみを使用することをお勧めします。
テストの2分間のビデオエクスポートmp3は1.83Mb、wavは20.1Mbです。
mp3は損失の多い形式、wavは損失のない形式です。必要に応じて選択してください
備考
より低いレベルのオーディオおよびビデオ処理アプリケーションを実現するにはffmpeg