码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python-opencv写入视频文件无法播放


    解决:python-opencv写入视频文件无法播放,播放器提示视频已经损坏



    文章目录

    • 解决:python-opencv写入视频文件无法播放,播放器提示视频已经损坏
      • 背景
      • 报错问题
      • 代码如下
        • fourcc
      • 错误原因:
      • 解决办法:
        • 今天的分享就到此结束了



    背景

    在用Python通过OpenCV写入视频时,生成的视频总是无法播放,大小只有不到两百k,播放器提示视频已经损坏。网上搜了一些方法,记录下解决办法。



    报错问题

    在用Python通过OpenCV写入视频时,生成的视频总是无法播放,大小只有不到两百K,播放器提示视频已经损坏。



    代码如下

    fourcc = cv2.VideoWriter_fourcc(*'MJPG')
    fps = 30
    size = (img_pattern.shape[1], img_pattern.shape[0])
    writer = cv2.VideoWriter(args.output, fourcc, fps, size, False)
    for frame in frames:
        writer.write(frame)
    writer.release
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    其中,VideoWriter()原为:

    VideoWriter(filename, fourcc, fps, frameSize[, isColor]) -> <VideoWriter object>
    
    • 1

    各参数说明如下:

    1. filename 是要保存的文件的路径
    2. fourcc 指定编码器
    3. fps 要保存的视频的帧率
    4. frameSize 要保存的文件的画面尺寸
    5. isColor 指示是黑白画面还是彩色的画面

    fourcc

    fourcc 本身是一个 32 位的无符号数值,用 4 个字母表示采用的编码器。一般依据你的电脑环境安装了哪些编码器。 常用的有 “DIVX"、”MJPG"、“XVID”、“X264"。可用的列表在这里,点击Video Codecs by FOURCC。



    错误原因:

    1. fourcc编码类型不合适
      fourcc可以是“DIVX"、”MJPG"、“XVID”、“X264"等选项,但并不是一定能成功编码,与电脑环境安装的编码器有关。一般’MJPG’都有,或者直接用-1采用默认的参数。

      据说,如果 fourcc 采用 -1,系统可能会弹出一个对话框让你进行选择,但是我没有试验成功过。
      在这里插入图片描述

    2. frameSize设置不一致
      如果frameSize设置不一致程序能正常运行不报错,但无法生成有效视频。frameSize的(width, height)不能写反,frame的分辨率要一致。

    3. isColor未设置正确
      默认的isColor是True,即彩色。但如果frame是黑白的,没有设置成False,也无法生成视频。



    解决办法:

    1. fourcc编码类型不合适
      fourcc编码类型与系统安装的编码器有关。一般设置’MJPG’,或者直接用-1采用默认的参数。
    2. frameSize设置不一致
      设置frameSize与frame的分辨率一致。
    3. isColor未设置正确
      彩色isColor使用默认值或者True。否则是黑白的,设置成False。


    今天的分享就到此结束了

    欢迎点赞评论互关三连

    在这里插入图片描述

  • 相关阅读:
    2022年最全教程:如何做大数据的采集数据及数据分析?
    详解:看似遥不可及的元宇宙
    Vue(Vuex插件)
    [paddle]paddlepaddle官方安装命令合集
    MySQL中索引的基本知识
    论文阅读:One Embedder, Any Task: Instruction-Finetuned Text Embeddings
    自动化测试 selenium+Junit 总结知识
    Django(二)精美博客搭建(13)实现留言页面及留言功能
    文件拷贝python脚本
    浅析建造者模式
  • 原文地址:https://blog.csdn.net/nings666/article/details/134173434
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号