首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同时运行两个视频编写器会产生失真的输出文件

问同时运行两个视频编写器会产生失真的输出文件
EN

Stack Overflow用户
提问于 2019-10-17 21:54:34
回答 1查看 53关注 0票数 0

我正在尝试用OpenCV从一个RTP流中产生2个视频文件。这两个文件的长度各为30秒,第二个文件的前10秒包含第一个文件的最后10秒。

第一个文件的前20秒被流畅地写入,没有失真,但在第二个视频编写器与第一个视频编写器并行执行后,最后10秒开始失真和卡顿。

第一个视频写入器将写入第一个视频文件,然后当它达到20秒标记时,第二个视频写入器将开始与第一个视频写入器同时运行,以写入第二个视频文件。

代码语言:javascript
复制
if frameCounter1 > (20 * frame_rate):

    has_frame, frame = vcap.read()

    if not has_frame:
        logging.error('Can\'t get frame (disconnected from camera stream)')
        sys.exit()

    vidWriter1.write(frame)
    frameCounter1 = frameCounter1 + 1

    vidWriter2.write(frame)
    frameCounter2 = frameCounter2 + 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-18 00:08:19

一种可能是将整个50秒保存在RAM中,并在结束时写入两个流。

或者第二种可能是将第一个视频实时写入磁盘,并在RAM中保存最后30秒,然后可能将它们写入第二个视频。

第三种可能是运行3个线程,一个线程在循环中连续获取视频,另外两个线程从第一个线程接收帧并分别写入一个视频文件。它们应该是双倍缓冲的,或者最好是双倍缓冲的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58434359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档