python - 如何在 Linux 上使用音频流在 python 中读取视频文件?

标签 python video-capture audio-capture

我正在寻找一种方法,如何使用 python 从视频文件中提取视频帧和相应的音频片段。
我很了解opencv。但它只允许提取视频帧。没有提供音频。
我需要两者 - 彼此完全对应的视频帧和音频片段。

将非常感谢任何提示:)

最佳答案

终于找到了moviepy https://pypi.python.org/pypi/moviepy它实现了ffmpeg的light wrapper,并提供了快速获取同时位置的视频和音频帧的接口(interface)。您可能会在下面找到示例:

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

除了提取 a/v 帧之外,moviepy 还为音频/视频剪辑修改提供了广泛的功能范围。

关于python - 如何在 Linux 上使用音频流在 python 中读取视频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56297668/

相关文章:

python - 如何使用 django-mptt 创建嵌套评论系统

python - tf-nightly-gpu 和 tensorflow-gpu 有什么区别

c++ - VideoCapture 使用 OpenCV 3.0.0-rc1 选择超时

android - 如何组织音频分析器应用程序 - Activity 、声音分析?

c++ - WASAPI 在 Windows 上捕获的缓冲区大小

audio - 如何解决 ffmpeg 卡在 'Opening an input file' 的问题

python - 正确构建本地python3,支持bz2

python - 添加一个没有 root 权限的 python 模块

comparison - 机器人框架,如何比较声音、视频文件

video-capture - 如何获取当前在浏览器中播放的电影的视频文件?