ffmpeg视频切片方案

1.视频播放存在的问题
前提介绍:首先是需要是需要把摄像机的视频接到我们的平台上,目前存在两种方式,一种是需要客户端去实现,一种是在服务器端实现,都是基于ffmpeg去做的
客户端实现,由于客户端有无数个,每一个客户端都去看同一个摄像机视频的时候,摄像机的压力是很大的
    1.客户端实现方式,是使用代码调用nodeJS,搭建起来一个本地的容器,当界面打开视频播放查看摄像机实时视频的时候,客户端起一个websocket服务使用ffmpeg去切视频的截图,发送给前端,让前端是渲染,推送频率大致是1s/15次,这个时候用户看起来也是一个流畅的视频,当前方案存在的问题:当同时播放少量摄像机视频的时候浏览器渲染是没有问题的,但是当同时查看9路摄像机的时候,浏览器渲染会出现性能问题,出现视频卡顿的场景
    2.客户端推送视频片段,常用的方案是生成m3u8的视频描述文件和ts视频片段.当前方案存在的问题在点击播放视频的时候,m3u8文件是在第一个视频切片生成之后才有的,比如规定视频切片的时间为10s/1次,因此在刚打开视频到打开后10s的时间段内视频是无法播放的
服务器端实现,每一个摄像机只会去拉取一次,摄像机压力比较小,存在的问题,在项目去做分布式或容灾的时候,这部分功能会出现问题
    该方案是笔者最终采用的方案,因此会详细介绍
    首先该方案的实现方式是编写脚本,在后台去拉每一个摄像机的视频,然后只存储每个摄像机最新100s的视频,在用户去查看摄像机视频的时候,用nginx去映射切出来的视频文件,
    第一步:和前台规定在获取视频静态资源的时候使用带有固定标识的url,笔者规定使用的是ip/hls/摄像机id.m3u8
    第二步: nginx配置
    nginx.conf
    
    mime.types
    
第三步:脚本编写(红色部分请填写摄像机的标准rtsp流信息,真实设备,因此划掉)


在启动该脚本的时候:nohup sh cameraStart.sh > /dev/null 2>&1 请不要输出日志文件,因为该进程在后台不停的跑日志文件在不停的增大

存在的问题:前台使用src打开m3u8文件,视频播放过之后不会主动清理历史的ts文件,在视频播放2h的时候,浏览器会挂掉,重新刷新之后则恢复正常,待优化


备注:曾经的实现想法是在用户想要看的时候再去切2s的视频,前台延迟两秒之后在去访问资源文件,在后台记录查看每一个用户的信息,当没有用户看的时候再去关闭掉该进程
    1.在java代码执行ffmpeg命令的时候 返回Proress对象是不支持序列化的,因此只能保存到类的成员变量中,当服务器重启的时候,成员变量没了,但是进程还在,重启操作太过于麻烦(本来计划是保存在redis中)
    2.当使用java代码去执行的ffmpeg命令的时候,视频播放几分钟之后就停止了,定位发现后台ffmpeg进程不再切实时视频了

    定位结果(个人分析,带有自己猜测的东西,可能会存在问题)由于java的System是单例的,在执行commend之后,该进程就结束了,但是使用java代码启动的进程还会去上报信息(手动执行脚本,打印在控制台的文本信息),保存到Process的缓冲区中,当缓冲区满了,ffmpeg的进程也就不在切视频了
    表现的现象为:m3u8文件中EXT-X-MEDIA-SEQUENCE字段不再增加

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35416.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python篇---视频切分成图片

视频切分成图片 使用python将视频分割成图片 python版本: 3.7.11 使用到的库:opencv (安装命令:pip install opencv-python) import os import cv2# 定义保存图片函数 # image:要保存的图片 # pic_address:图片保存地址 # num: …

moviepy快速切分视频并保存片段

文章目录 1、直接使用ffmepg2、使用moviepy本身 moviepy安装最新版本: pip install moviepy --pre --upgrade版本是v2.0.0.dev2。 有两种方法一种快速的: 1、直接使用ffmepg from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip ffmpeg…

ffmpeg视频截取切片

通过segment_format指定切片文件的格式 ffmpeg -re -i input.mp4 -c copy -f segment -segment_format mp4 test_outpout-%d.mp4 查看分片文件的开始时间跟结束时间 开始时间: ffprobe -v quiet -show_packets -select_streams v test_outpout-0.mp4 2> x |g…

FFmpeg视频切片

为了解决项目中视频大的问题,我的想法是把视频切分成一小段一小段的短视频,然后按序播放。 m3u8是一项新型播放格式,这种播放格式支持目前市面的windows、androis、ios设备主流的浏览器,同样的视频文件既可以在Flash环境播放&…

关于GPT、AI绘画、AI提词器等AI技术的探讨

目前的AI潮流非常火热,CHATGPT可谓是目前大模型人工智能的代表,刚开始听说chatGPT可以写代码,写作,写方案,无所不能。还有AI绘画也很NB作为一个程序员,为了体验这些A&…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的图像全景分割模型

给我推荐20个比较流行的图像全景分割模型 好的,这是 20 个比较流行的图像全景分割模型:DeepLabv3+ PSPNet FCN U-Net Mask R-CNN UNet++ SegNet ENet ICNet ENet GCN DANet BiSeNet DenseASPP DenseASPPv2 DenseASPPv3 DenseASPPv4 DenseASPPv5 DenseASPPv6 DenseASPPv7 希望…

用户画像洞察分类模型 - 前端页面展示

文章目录 一、前端与数据智能二、 体验优化需求场景跳失预测交互偏好智能 UI 三、 关键技术鲸幂 UICook(智能UI)DataCookPipCookPipeline 四、 体验优化实践数据智能实践的一般流程数据采集数据分析 -如何对数据进行分析处理并得出结论数据应用 - 分析结…

Unity创建超写实三维场景的一般步骤

使用Unity创建三维场景最容易想到的是手动在地形上刷草、刷树等,但是这种方法不仅工作量大,但不真实。最近学习了Gaia插件,发现Gaia用程序自动生成的,感觉这种思想太妙了,World Creator也采用了类似的方法,…

UE风格化场景练习笔记Day1

今天要开启一个新项目,学习UE风格化场景的全流程制作,预计工作周期是一个月,开一个学习笔记记录一下我的进度和遇到的问题,方便之后回顾知识点和总结心得,同时也给初学者们提供一个全流程的学习教程。 在这个项目之前以…

重新定义汽车人机界面开发,Unity HMI模板正式开放使用

当前,作为智能座舱的重要功能之一,人机交互(HMI)已经从传统的物理按键交互向触屏交互、语音交互、手势交互、视线交互等多模态的交互方式升级。 但,如何过滤无效数据、帮助驾驶员更好地理解系统,并与之无缝…

unity 3d 场景变白了,模型发白,白花花一片,场景曝光了

前面做了unity的三维场景,最近切换了unity for Intel和apple silicon的不同版本,发现我的场景变成了白花花的一片,超级曝光,运行程序也是一片的白,我的天呀。。。。 背景: 1,,unity 2021.3.5 for mac m1(…

室外大场景渲染技术研究与实现 游戏地图加载

http://nvidia.e-works.net.cn/document/200908/article8938.htm 第三章 室外场景地形的实时绘制技术 地形的绘制是指读取虚拟世界的地图信息,绘制出场景的地表,并实现角色在场景中实时漫游。它是室外场景实时绘制中最重要的部分,也一直是计…

Hightopo 使用心得(4)- 3D 场景 Graph3dView 与 Obj 模型

在前一篇文章《Hightopo 使用心得(3)- 吸附与锚点》中,我们在结尾处提到过 HT 的 3D 场景。这里我们通过代码建立一个 3D 场景并添加一个 Obj 模型来介绍一下 HT for Web 在 3D 场景和模型加载方面的使用。 这是我们最终实现的效果&#xff…

按头安利 好看又实用的虚幻UE场景模型素材看这里

含泪整理作为游戏设计专业小伙伴们来说,最免费实用高质量的素材和网站!收藏后就不用再大海捞针找素材!赶紧码住看过来! 爱给网 今天小编先给大家介绍爱给网-游戏-虚幻ue-场景类的模型,先给大家整体介绍一下爱给网~ …

Unity3d场景渲染出图

制作了精美的场景,需要出图给同事使用,还在用QQ截图?那渣渣的画质,根本满足不了需求,现在好了,有了我们的ScreenshotTaker工具,帮你轻松解决这个问题。 请复制代码内容到脚本中,并置…

【图形学】30 前向渲染多光照场景代码理解

来源:《UNITY SHADER入门精要》 文章目录 1、代码理解 1、代码理解 我们现在要注意光源的 5 个属性:位置、方向、颜色、强度、衰减。   在理解代码之前,我们依然需要熟悉我们的理论,主要我们要设置两个 Pass,注意它…

OpenGL的3D场景模型大作业

【题目】 opengl 3D环境开发 本文标题:OpenGL的3D场景模型大作业 本文链接:https://xygeng.cn/post/84.html 作者授权:除特别说明外,本文由 庚哥哥 原创编译并授权 木芽博客 刊载发布。 版权声明:本文不使用任何协议…

RealityCapture场景建模笔记

Unity Photogrammetry Workflow 5.2.8 着色和贴纹理(Colorize or Texture)5.2.10. 网格输出(Mesh export)输出附有颜色信息的Mesh/点云 5.2.8 着色和贴纹理(Colorize or Texture) 选择哪个选项将取决于重建…

美国藤校Top30大学对IB成绩的要求

众所周知,IB体系是目前全球认可度比较高的国际课程。那么,用IBDP成绩申请美国TOP30大学需要什么样的成绩? 小智今天来带大家好好研究下美国TOP30大学对IB成绩的要求。 普林斯顿大学 Princeton University 普林斯顿大学对于IB成绩没有具体要…

2023 chatgptAPI查询 原生PHP+html+js+css代码

资源介绍 单文件不压缩6KB不到,总150行原生PHP html js css代码实现查询chatgptAPI,并打字效果展现回复内容(sse流式消息) 使用注意填写自己的APIKEY,推荐美国服务器或者主机部署。适合个人自用。单文件源码! 使用源码请先到官方申请apiKey…