当前位置: 首页 > 知识库问答 >
问题:

Cv2.VideoWriter与帽从视频文件

闻梓
2023-03-14

在通过“cv2”保存视频文件的过程中,我遇到了一个奇怪的问题。如果视频捕获发生在网络摄像头上,则此代码运行良好,但如果视频捕获来自文件(例如cap=cv2.VideoCapture(“test.avi”)),则会形成一个没有任何流的空文件。

import cv2
cap = cv2.VideoCapture(0)

cap.set(cv2.CAP_PROP_FRAME_WIDTH, w)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, h)

out = cv2.VideoWriter('output.avi',cv2.VideoWriter_fourcc('M','J','P','G'), fps, (w, h))

while cap.isOpened():
    ret, frame = cap.read()
    out.write(frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
       break

out.release()
cap.release()
cv2.destroyAllWindows()

我试图改变输入视频文件的格式,如。阿维。ts和输出也一样,但没有任何变化

谁知道为什么这个问题发生在我身上?

共有2个答案

颛孙和悌
2023-03-14

好的,过了一段时间,我解决了这个问题。这一部分让我无法完成视频:

if cv2.waitKey(1) & 0xFF == ord('q'):
   break

在我删除“break”之后,一切都变得正常了。可能是因为,与从摄像机接收到的流不同,来自视频文件的流是有限的,我的中断阻止了定稿。

屠兴旺
2023-03-14

您是否尝试打印cam.isOpen()输出?您可用的相机可能会使用与0不同的变量进行初始化。

尝试cap=cv2。视频捕获(-1)。除此之外,您是否在Linux上运行此功能?确保安装了ffmpeg。

 类似资料:
  • 为什么下面的代码不保存视频?另外,网络摄像头的帧速率是否必须与帧大小完全匹配?

  • 使用Camtasia创建的视频可以通过导出TechSmith智能播放器的项目在网络上共享。该视频以“H264-MPEG-4 AVC(part10)(avc1)”编解码器导出,导出还包括TechSmith智能播放器使用的其他自定义XML、JavaScript和SWF文件。 这些自定义文件也会“烧录”到视频中。例如,在文本编辑器中打开MP4视频时,可以查看XML文件的内容。这允许其他服务在上传Camt

  • 当在OS X上使用Chrome或Safari访问此控制器方法时,开发人员工具报告请求被取消--没有收到响应,无论是200还是404。我已经确认了SimpleResponse实际上是由这个控制器操作在请求上返回的。我希望它能提供一个好的响应,但是Play不能完成响应,或者我的浏览器不能接受它。我是在这里做了什么错误的回应,还是在框架中偶然发现了一个bug? 我的游戏版本是2.1.3。

  • 本文向大家介绍Python读取视频的两种方法(imageio和cv2),包括了Python读取视频的两种方法(imageio和cv2)的使用技巧和注意事项,需要的朋友参考一下 用python读取视频有两种主要方法,大家可依据自己的需求进行使用。 方法一: 使用imageio库,没有安装的可用pip安装或自己下载,安装好后重启终端即可调用。 方法二: 用cv2库,用这种方法的好处是返回的就是arra

  • 我正在尝试从视频文件中提取音频。我试过python中的moviepy、ffmpeg等库。提取的音频文件太大。对于大小为75 MB的音频文件,音频文件与moviepy的距离约为1.1 GB。即使比特率为16 kbps,采样率为16000 Hz,提取的文件大小也将达到200 MB。任何其他库或提取的音频文件大小至少相同或小于完整视频文件的方式。 我正在ffmpeg中使用上述命令。

  • 我不熟悉python(2.7)和opencv(3.0)(以及一般的视频流/编写),所以请原谅。 我使用logitech c920作为我的网络摄像头,它可以流式传输h264格式的压缩视频,因此我尝试编写一个简单的应用程序,设置VideoCapture实例的4个属性(fourcc到h264;宽度到1920;高度到1080;fps到30),然后将视频记录到名为test的上一级目录中。mp4并在我的屏幕上