您如何使用python绘制视频文件的音频?

时间:2019-05-03 03:40:38

标签: python numpy matplotlib

我的mp4非常长(〜7小时),我想使用python自动进行编辑。

在一段较长的时间内,视频中的说话者没有说话。

我想编辑讲话者不说话的地方的视频。

我已经能够做到这一点,但是结果可以得到改善。 我找到了一个具有以下示例的教程:

import matplotlib
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
import numpy as np
from moviepy.editor import VideoFileClip, concatenate

clip = VideoFileClip("./videos/pdt-may-2.mp4")
cut = lambda i: clip.audio.subclip(i,i+1).to_soundarray(fps=22000)
volume = lambda array: np.sqrt(((1.0*array)**2).mean())
volumes = [volume(cut(i)) for i in range(0,int(clip.duration-1))]

averaged_volumes = np.array([sum(volumes[i:i+10])/10
                             for i in range(len(volumes)-10)])

increases = np.diff(averaged_volumes)[:-1]>=0
decreases = np.diff(averaged_volumes)[1:]<=0
peaks_times = (increases * decreases).nonzero()[0]
peaks_vols = averaged_volumes[peaks_times]
peaks_times = peaks_times[peaks_vols>np.percentile(peaks_vols,90)]

final_times=[peaks_times[0]]
for t in peaks_times:
    if (t - final_times[-1]) < 60:
        if averaged_volumes[t] > averaged_volumes[final_times[-1]]:
            final_times[-1] = t
    else:
        final_times.append(t)

final = concatenate([clip.subclip(max(t-5,0),min(t+5, clip.duration))
                     for t in final_times])
final.to_videofile('./edited-videos/pdt-edited-may-2.mp4')

这有效-但有时扬声器被切断。 我想使用matplotlib绘制视频文件的音频,以便更详细地了解文件中音频的位置。

知道我可以对代码是否按预期工作进行更好的评估。

如何使用python绘制视频文件的音频?

0 个答案:

没有答案