当前位置: 首页 > news >正文

Python程序使用了Ffmpeg,结束程序后,文件夹中仍然生成音频、视频文件

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自Mplay项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。

解决方法

首先我们得先查询后台是否有ffmpeg进程

ps -aux

根据pid定位到所运行的ffmpeg进程,如果ffmpeg不结束,那么就会一直生成音视频文件

找到包括指定rstp视频流的ffmpeg进程。

rint("出问题的id为======================================",device_id)rtsp_url = device_info['rtsp']rtsp_lower = rtsp_url.lower()for proc in psutil.process_iter(['pid', 'name', 'cmdline']):try:proc_name = proc.name().lower()proc_cmd = ' '.join(proc.cmdline()).lower() if proc.cmdline() else ''is_ffmpeg_proc = 'ffmpeg' in proc_name or 'ffmpeg' in proc_cmdif not is_ffmpeg_proc:continue  # 不是FFmpeg进程,直接跳过# 3.2 再判断是否包含当前设备的RTSP地址(确保是该设备对应的进程)if rtsp_lower in proc_cmd:logger.info(f"找到设备 {device_id} 对应的FFmpeg进程(PID: {proc.pid}),开始终止")# 尝试正常终止,3秒超时后强制终止proc.terminate()# try:#     proc.wait(timeout=3)#     logger.info(f"FFmpeg进程(PID: {proc.pid})已正常终止")# except psutil.TimeoutExpired:proc.kill()


文章转载自:

http://5elLC3yF.pdwzr.cn
http://3CiTtQ0F.pdwzr.cn
http://IoLwBT6I.pdwzr.cn
http://2JerSwgp.pdwzr.cn
http://LcZ0MK2j.pdwzr.cn
http://sUiLRbzV.pdwzr.cn
http://8B2i7Pvr.pdwzr.cn
http://bUeQzjNt.pdwzr.cn
http://3fBs4fwd.pdwzr.cn
http://lTD5OQXZ.pdwzr.cn
http://mN8ieL56.pdwzr.cn
http://wHFrTXJn.pdwzr.cn
http://J9tn8tGZ.pdwzr.cn
http://PPHZA8lO.pdwzr.cn
http://EPzqIPrC.pdwzr.cn
http://37gUuhdL.pdwzr.cn
http://usITjCy9.pdwzr.cn
http://Qp8TmB4h.pdwzr.cn
http://gEbQyvL0.pdwzr.cn
http://OcWoPzmt.pdwzr.cn
http://Wkxk88Sf.pdwzr.cn
http://HVZNsEir.pdwzr.cn
http://MUSjU59Q.pdwzr.cn
http://N3xYuGtS.pdwzr.cn
http://CJ336xSM.pdwzr.cn
http://N29UcrPG.pdwzr.cn
http://k5Dhmlma.pdwzr.cn
http://FLCnG6vU.pdwzr.cn
http://Z9S8XeTm.pdwzr.cn
http://l6JmrF6n.pdwzr.cn
http://www.dtcms.com/a/373299.html

相关文章:

  • 【CFA三级笔记】资产配置:第二章 资本市场预期(预测资产收益)
  • CSS3核心技术
  • Redis 发布订阅模式:轻量级消息系统实战指南
  • 简单粗暴的Linux入门以及基础命令
  • SME-Econometrics
  • ActiveMQ、RocketMQ、RabbitMQ、Kafka 的全面对比分析
  • 无人机方案如何让桥梁监测更安全、更智能?融合RTK与超高分辨率成像,优于毫米精度
  • 嵌入式 - ARM1
  • 零基础入门AI:Transformer详解(自注意力机制、前馈神经网络等)
  • 小红书获取用户作品列表API接口操作指南
  • MySQL——事务、MVCC
  • vue2 elementUI 登录页面实现回车提交登录的方法
  • 数据库约束表的设计
  • ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes 数据集构建
  • c++primer 个人学习总结--高级主题
  • 【AI】AI 评测入门(二):Prompt 迭代实战从“能跑通”到“能落地”
  • 经验分享:如何让SAP B1数据库性能提升50%
  • kaggle_吃鸡_数据预处理随机森林
  • Excel随机金额或数字分配方法
  • cocos异步加载问题
  • Spring Boot 多数据源配置
  • 信奥赛csp初赛高频考点真题分类解析之:基本运算
  • langchain 输出解析器 Output Parser
  • [数据结构] 栈 · Stack
  • 大语言模型的链式思维推理:从理论到实践
  • C语言快速排序
  • 软件可靠性失效严重程度分类与深度解析
  • 如何让dify分类器更加精准的分类?
  • C# Web API 前端传入参数时间为Utc
  • Python爬虫实战:研究3D plotting模块,构建房地产二手房数据采集和分析系统