python给视频opencv添加音频

新手上路,请多包涵

我使用 python cv2 模块将 jpg 帧加入视频中,但我无法向其中添加音频。是否可以在没有 ffmpeg 的情况下在 python 中向视频添加音频? PS对不起我糟糕的英语

原文由 olokelo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
2 个回答

使用 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)。

原文由 DK250 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以将 pygame 用于音频。您需要初始化 pygame.mixer 模块并在循环中添加 pygame.mixer.music.play() 但是为此,您还需要选择音频文件。

但是,我找到了更好的主意!您可以使用 webbrowser 模块播放视频(因为它会在浏览器上播放,所以您可以听到声音!)

导入 webbrowser webbrowser.open(“video.mp4”)

原文由 user13606661 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进