【问题标题】:Python - Playing a video with audio (with OpenCV?)Python - 播放带音频的视频(使用 OpenCV?)
【发布时间】:2016-10-14 11:13:48
【问题描述】:

这可能是一个愚蠢的问题,我已经搜索过但没有找到一个简单的答案:

您可以使用 OpenCV 和 FFMPEG 播放带音频的视频吗?

如果没有,最好的方法是什么?看起来很简单,但我对 Python 太陌生了,不知道该期待什么/搜索什么。

谢谢!

【问题讨论】:

  • 嗨@hoothoot,我看没有人回答你的问题,但是你有没有想出解决你的问题的方法?谢谢

标签: python opencv ffmpeg


【解决方案1】:

使用 ffpyplayer 处理音频部分。

import cv2
import numpy as np
#ffpyplayer for playing audio
from ffpyplayer.player import MediaPlayer
video_path="../L1/images/Godwin.mp4"
def PlayVideo(video_path):
    video=cv2.VideoCapture(video_path)
    player = MediaPlayer(video_path)
    while True:
        grabbed, frame=video.read()
        audio_frame, val = player.get_frame()
        if not grabbed:
            print("End of video")
            break
        if cv2.waitKey(28) & 0xFF == ord("q"):
            break
        cv2.imshow("Video", frame)
        if val != 'eof' and audio_frame is not None:
            #audio
            img, t = audio_frame
    video.release()
    cv2.destroyAllWindows()
PlayVideo(video_path)

示例代码可以运行,但您需要根据视频的速度调整 cv2.waitKey(28)。

【讨论】:

  • 我尝试了这段代码,但我在 mac 上听不到任何声音...
  • 抱歉,我现在才意识到我的源没有音频。效果很好,谢谢!
  • 不错的答案。不用猜测waitKey的毫秒睡眠值,你可以根据视频的FPS来计算:video = cv2.VideoCapture(video_path),fps = video.get(cv2.CAP_PROP_FPS),sleep_ms = int(numpy.round((1/fps)*1000))
  • @Sevag 即使修复了waitKeysleep_ms 值,音频和视频似乎也存在同步问题
猜你喜欢
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多