Python开发之视频处理
1.OpenCV
在进行图像识别的时候,大部分还是借助于 OpenCV 的接口。
2.实时帧
1 | fps =cap.get(cv2.CAP_PROP_FPS) |
【1】.Python opencv videocapture 网络推流/本地视频播放 获取最新帧 获取最后帧 获取实时帧
【2】.Opencv获取当前视频长宽、总帧数、fps 源码参数举例,按照需求查手册或源码即可。获取视频的总帧数:cv2.CAP_PROP_FRAME_COUNT
【3】.opencv获取RTMP/RTSP视频流数据 并 显示或者进行进一步处理
3.missing picture in access unit with size
我在使用opencv进行处理的时候,使用obs进行推流的时候,不会出现问题,但是使用 无人机 推流的时候,地址都是同样的地址,但是就是无法实现拉流,然后报错:missing picture in access unit with size
【尝试解决】
(1)我尝试读取是否为空的问题
1 | # 判断是否为空操作,如果为空则不进行处理 |
【1】.opencv拉流出现missing picture in access unit with size 4错误解决
【2】.ffmpeg转码时出现missing picture in access unit with size 14019 索性截取掉最后的2秒时间
【3】.pilot2 rtmp 直播推流问题 这里是同样的问题,机场视频没有问题,但是 DJI pilot 2 的问题。
4.关闭日志输出
opencv日志总是输出很多没有用的,我感觉有些烦人,于是就想着要把他关掉。很多文章都用了 loggin,但是就是无法关闭 ffmpeg 的日志输出,真是扯淡啊。
【尝试方案】
(1)尝试使用 python 设置,感觉无效
1 | # 无效 |
(2)尝试设置环境变量,也无效
1 | import os |
(3)尝试使用 set 设置环境变量
1 | set OPENCV_LOG_LEVEL=0 |
(4)设置多个变量,也还是无效
1 | import os |
(5)使用 logging 进行屏蔽,也无效
1 | import logging |
(6)禁用print
我打算直接禁用全部的 print ,结果还是没用,还是输出一堆的 [NULl]
1 | import os,sys |
【1】.OpenCV-Python (官方)中文教程(部分一)
【2】.心得:大疆无人机RTMP推流直播(Windows版本已成功) 这是正常的时候的事情。
【3】.Python logging日志模块配置/使用/禁用
【4】.cv::utils::logging Namespace Reference 这是 opencv 日志枚举文件。
【5】.setLogLevel Currently this API is experimental and it is not exposed into Python.You can try to set OPENCV_LOG_LEVEL=INFO environment variable before loading of OpenCV binaries.
【6】.Introduction 这里有三种设置环境变量的方法
【7】.Enable OpenCV ffmpeg logging
【8】.Unable to disable Opencv FFMPEG error logs 这里用了很多的变量,但是我尝试过都不行。
【9】.How to hide console output of FFmpeg in Python? ffmpeg.input(file).output(filename, loglevel=”quiet”).run()
【10】.屏蔽ffmpeg输出命令(不输出多余信息) -loglevel quiet
【11】.python logging关闭第三方debug日志 1.导入logging模块。2.创建一个Logger对象。3.获取第三方库的Logger对象。4.设置第三方库的Logger级别为WARNING。
【12】.FFmpeg打印日志函数分析 这是用的c语言的部分代码。
【13】.FFMPEG 日志输出控制 av_log_set_level(AV_LOG_QUIET);
【14】.关于python中屏蔽输出
【15】.python小技巧[] 禁用脚本中的print
【16】.如何为OpenCV启用日志记录 这里提供了一个 logging.getLogger(“OpenCV”) ,但是我觉得应该不是这么弄的,我尝试了之后,也不行。