【发布时间】:2016-10-14 11:13:48
【问题描述】:
这可能是一个愚蠢的问题,我已经搜索过但没有找到一个简单的答案:
您可以使用 OpenCV 和 FFMPEG 播放带音频的视频吗?
如果没有,最好的方法是什么?看起来很简单,但我对 Python 太陌生了,不知道该期待什么/搜索什么。
谢谢!
【问题讨论】:
-
嗨@hoothoot,我看没有人回答你的问题,但是你有没有想出解决你的问题的方法?谢谢
这可能是一个愚蠢的问题,我已经搜索过但没有找到一个简单的答案:
您可以使用 OpenCV 和 FFMPEG 播放带音频的视频吗?
如果没有,最好的方法是什么?看起来很简单,但我对 Python 太陌生了,不知道该期待什么/搜索什么。
谢谢!
【问题讨论】:
使用 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)。
【讨论】:
video = cv2.VideoCapture(video_path),fps = video.get(cv2.CAP_PROP_FPS),sleep_ms = int(numpy.round((1/fps)*1000))
waitKey 的sleep_ms 值,音频和视频似乎也存在同步问题