Ale*_*nko 0 python video-capture audio-capture
我正在寻找一种方法,如何使用 python 从视频文件中提取视频帧和相应的音频段。我很了解opencv。但它只允许提取视频帧。没有提供音频。我需要两者 - 彼此完全对应的视频帧和音频段。
将非常感谢任何提示:)
最后找到了moviepy https://pypi.python.org/pypi/moviepy,它实现了ffmpeg的轻量级封装,并提供了快速获取视频和音频帧同时位置的接口。您可以在下面找到示例:
from moviepy.editor import *
video = VideoFileClip('your video filename')
audio = video.audio
duration = video.duration # == audio.duration, presented in seconds, float
#note video.fps != audio.fps
step = 0.1
for t in range(int(duration / step)): # runs through audio/video frames obtaining them by timestamp with step 100 msec
t = t * step
if t > audio.duration or t > video.duration: break
audio_frame = audio.get_frame(t) #numpy array representing mono/stereo values
video_frame = video.get_frame(t) #numpy array representing RGB/gray frame
Run Code Online (Sandbox Code Playgroud)
除了提取 a/v 帧之外,moviepy 还为音频/视频剪辑修改提供了广泛的功能范围。