video = cv2.VideoCapture("video.mp4") 没有声音
时间: 2024-05-04 09:21:29 浏览: 392
使用 OpenCV 读取视频文件时,默认情况下是不会读取视频中的音频轨道的。如果你需要同时读取视频和音频,可以使用其他库,例如 moviepy、pydub 等。
如果你只是想在 OpenCV 中播放视频并带有声音,可以按照以下步骤:
1. 使用 cv2.VideoCapture 打开视频文件。
2. 创建一个 cv2.VideoWriter 对象,用于将读取的帧写入到新的视频文件中。
3. 在读取视频帧的循环中,使用 cv2.imshow 显示每一帧,并使用 cv2.waitKey 控制帧的播放速度。同时,使用 cv2.VideoWriter.write 将每一帧写入到新的视频文件中。
4. 在视频播放结束后,释放 cv2.VideoCapture 和 cv2.VideoWriter 对象。
以下是示例代码:
```python
import cv2
video = cv2.VideoCapture("video.mp4")
fps = int(video.get(cv2.CAP_PROP_FPS))
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建新的视频文件,设置编码器和帧率
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter('output.mp4', fourcc, fps, (width, height))
while True:
ret, frame = video.read()
if not ret:
break
# 在窗口中显示每一帧,并控制播放速度
cv2.imshow("Video", frame)
if cv2.waitKey(int(1000/fps)) == ord('q'):
break
# 将每一帧写入到新的视频文件中
out.write(frame)
# 释放资源
video.release()
out.release()
cv2.destroyAllWindows()
```
注意:在 Windows 系统下,需要安装 LAME MP3 编码器才能够使用 OpenCV 播放音频轨道。你可以从这里下载编码器并将其解压到系统路径中。
阅读全文