mp4ファイル、またはmp3ファイルの情報をダンプ

WinPython Command Prompt.exeなどのコマンドラインツールにてffmpeg-pythonをインストール。
pip install ffmpeg-python

pyファイル(test.py)

print('mp4ファイル、またはmp3ファイルの情報をダンプ')
import ffmpeg
import pprint

print('--------------mp4ファイルの情報--------------')
video_info = ffmpeg.probe('./test_data/MVI_0887.MP4')
pprint.pprint(video_info)

print('--------------mp3ファイルの情報--------------')
video_info = ffmpeg.probe('./test_data/MVI_0887.MP4')
pprint.pprint(video_info)
	
GitHub ソースコード




pydubでmp3のフェードインとフェードアウト

WinPython3.9で検証

ffmpegをプロジェクトに組み込む。(ffmegのインストール

コマンドラインツールでpydubをインストール
pip install pydub

print ('pydubでmp3のフェードインとフェードアウト')

# pydubを使うにはffmpegが必要-

from pydub import AudioSegment

audio = AudioSegment.from_file("./test_data/test1.mp3", "mp3")

# フェードイン4秒、フェードアウト3.5秒に変換したオーディオオブジェクトを作成
audio2 = audio.fade_in(4000).fade_out(3500)

# 変換したオーディオオブジェクトを出力
audio2.export("./test_data/output02.mp3",  format="mp3")
	


GitHub ソースコード


「from pydub import AudioSegment」でエラーが起きる場合、ffmegのインストールをもう一度見直す。
	RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
  	warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
	

pydubでmp4からmp3を抽出(pydubでmp4を読み込み,mp3としてエクスポートする)

WinPython3.9で検証

ffmpegをプロジェクトに組み込む。(ffmegのインストール

コマンドラインツールでpydubをインストール
pip install pydub

print ('pydubでmp4からmp3を抽出: pydubでmp4を読み込み,mp3としてエクスポートする')

# pydubを使うにはffmpegが必要-
from pydub import AudioSegment

# mp4ファイルの読み込み
audio = AudioSegment.from_file("./test_data/MVI_0887.MP4", "mp4")

# mp3としてエクスポートする
audio.export("./test_data/output03.mp3", format="mp3")

print('Success!')
	
GitHub ソースコード



pydubでmp3を連結する

WinPython3.9で検証

ffmpegをプロジェクトに組み込む。(ffmegのインストール

コマンドラインツールでpydubをインストール
pip install pydub

print ('pydubでmp3を連結する')

# pydubを使うにはffmpegが必要-
from pydub import AudioSegment

# mp3ファイルの読み込み
audio1 = AudioSegment.from_file("./test_data/test1.mp3", "mp3")
audio2 = AudioSegment.from_file("./test_data/test2.mp3", "mp3")
audio3 = AudioSegment.from_file("./test_data/test3.mp3", "mp3")

# オーディオを連結する
audio = audio1 + audio2 + audio3

# エクスポートする
audio.export("./test_data/output04.mp3", format="mp3")

print('Success!')

	
GitHub ソースコード



pydubでオーディオのミキシング(2つの音声を合成)

事前にpydubをインストールしておく。


print ('pydubでオーディオのミキシング(2つの音声を合成)')

# pydubを使うにはffmpegが必要-
from pydub import AudioSegment

# mp3ファイルの読み込み
audio1 = AudioSegment.from_file("./test_data/test1.mp3", "mp3")
audio2 = AudioSegment.from_file("./test_data/effect_sound1.mp3", "mp3")

audio = audio2.overlay(audio1, position=0)

# エクスポートする
audio.export("./test_data/output05.mp3", format="mp3")

print('Success!')


	
GitHub ソースコード



pydubでmp3の音量を変更する

事前にpydubをインストールしておく。


print ('pydubでmp3の音量を変更する')

# pydubを使うにはffmpegが必要-
from pydub import AudioSegment

# mp3ファイルの読み込み
audio1 = AudioSegment.from_file("./test_data/test1.mp3", "mp3")

#audio = audio1 +10; #音量を大きくする
audio = audio1 - 7; #音量を小さくする

# エクスポートする
audio.export("./test_data/output06.mp3", format="mp3")

print('Success!')


	
GitHub ソースコード



mp4にmp3を合成

事前にffmpegを導入しておく。


print ('mp4にmp3を合成')

import ffmpeg

# 映像を読みこむ
stream_video = ffmpeg.input("./test_data/MVI_0887.MP4")

#オーディオを読み込む
stream_audio = ffmpeg.input("./test_data/test1.mp3")

#合成
stream = ffmpeg.output(stream_video, stream_audio, "./test_data/output07.mp4", vcodec="copy", acodec="copy")
ffmpeg.run(stream)

print('Success!')
GitHub ソースコード



音声にサイレント時間を追加 | 無音の追加


import os
import ffmpeg
from pydub import AudioSegment

audio1 = AudioSegment.from_file('example.mp3', "mp3") # 音声ファイルの読込
audio1_duration =audio1.duration_seconds ; # 音声の再生時間を取得
print('音声の再生時間→' + str(audio1_duration))

add_silent = AudioSegment.silent(duration=10000) #10秒の無音
audio1 = audio1 + add_silent; // 音声の後ろに無音を追加する
print('音声の再生時間→' + str(audio1_duration))
	
音声の前に無音を挿入することもできる。
audio1 = add_silent + audio1;


動画情報を取得

再生時間など動画ファイルの各種情報を取得できる。

	import ffmpeg
	
	probe = ffmpeg.probe('example.mp4')
	movInfo = probe['streams'][0];
	print(movInfo);
	

動画の再生時間を取得


	import ffmpeg
	
	probe = ffmpeg.probe('example.mp4')
	movInfo = probe['streams'][0];
	mov_duration = float(movInfo['duration']); # 動画再生時間を取得
	

pydubで音声の再生時間を取得


import ffmpeg
from pydub import AudioSegment

audio1 = AudioSegment.from_file('example.mp3', "mp3") # 音声ファイルの読込
audio1_duration =audio1.duration_seconds ; # 音声の再生時間を取得