以日期作为ts切片文件名问题的解决过程

2023-10-31

一. 需求

EasyDarwin使用FFmpeg来保存流媒体,以多个ts分片形式存在。但由于EasyDarwin调用FFmpeg命令时,没有对生成名字做处理,所以默认生成的ts文件名都是out0.ts,out1.ts。这种名称意义不大,需要以日期和时间来命名生成的ts文件。

二. 解决思路

2.1 EasyDarwin没有提供配置文件来修改ts文件名,也没有相关说明文档。故只能通过阅读源码、修改源码予以解决。
2.2 加入EasyDarwin官方提供的沟通群,询问是否可以修改ts文件名,以满足我的需求。得到回复可以,并知道在rtsp-server.go中修改。
2.3 找到解决方法,着手进行。

三. 解决过程

1.环境搭建

1.1安装go环境(略)
1.2安装LiteIDE(略)
1.3安装node。官网Git上有使用npm管理项目,故需安装。参考文档: https://www.cnblogs.com/jianguo221/p/11487532.html
1.4安装gcc,后续会遇到问题,就是没有安装gcc导致,下面篇幅会讲到。

2.代码拉取、编译、运行

参考官网Git上的的二次开发过程,拉取代码。走到运行、构建部分时报错:
在这里插入图片描述
报错后一时没头绪解决,便开始思考项目的运行构建可能使用了npm这种方式,而我并不改动前端代码,只修改后端。既然这种方式不熟悉,就采用原生方式。即LiteIDE自带的编译和运行命令:Ctrl+b、Ctrl+r。后面证明是可行的。

3.gcc安装

3.1开始编译时并不顺利,报错:exec: “gcc”: executable file not found in %PATH%。查阅文档,是没有gcc环境问题。便开始安装gcc。
3.2 gcc安装过程参考:https://www.cnblogs.com/zsy/p/5958170.html。不过其中也有坑,就是在安装mingw-w64-install.exe后,会一直停着不动。
在这里插入图片描述
仔细观察后就会发现,它还是去下载x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z这个包。于是自己手动去下载。装完后配置环境变量,同时在LiteIDE配置文件中添加进去。再次编译,成功。
在这里插入图片描述

4.修改源码

4.1开始阅读源码,解决问题。阅读源码后,发现EasyDarwin一点多余操作都没有,直接调用FFmpeg完成存储。即要想修改ts文件名,还是要从FFmpeg命令入手。
4.2第一次尝试可以解决ts文件命名问题,但生成的ts文件名是固定的,仍不是跟随时间动态生成。-》沟通群再次沟通,是否有这种需求解决方法-》得到答案有-》开始查找,找到命令但报错-》再次沟通确认,得到回复是-》在深入研究FFmpeg命令,翻阅各种文章后,最终在官网上找到解决方法。官网地址:http://www.ffmpeg.org/ffmpeg-formats.html。
4.3官网方法运行时也有报错,且不支持切片时间。又多方比对、结合,最终,使用如下命令予以解决:ffmpeg -i rtsp://admin:abcd1234@192.168.110.130:554/h264/ch1/main/av_stream -hls_time 30 -hls_list_size 0 -strftime 1 -hls_segment_filename %Y-%m-%d_%H-%M-%S.ts out.m3u8。其中-hls_time是切片时长,通过配置它,即可实现跟随配置时间间隔,动态生成以日期命名的ts文件。
4.4效果图:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以日期作为ts切片文件名问题的解决过程 的相关文章

  • springBoot的序列化与反序列化

    springboot中的序列化与反序列化有一个相对比较复杂的转换过程 它主要是HTTP请求 响应的信息类型转换 包含编码 信息类型 信息转换器 注解方法的处理适配器 请求接收的信息处理器等等 我们就先从大家常用的RequestBody和Re
  • 第三节课总结之关于this指向,变量提升以及跨域的解决方案

    this 变量提升 关于继承 跨域解决方法 gt gt this指向 Js是静态作用域 是在定义阶段就决定好了的 而不是在执行阶段才决定的 参考资料 https developer mozilla org en US docs Web Ja
  • 编码:KR字符串匹配,一个简单到领导都看得懂的算法

    常怀感恩 生活或许就不会处处深渊 这几天看了 柔性字符串匹配 觉得很有意思 书是好书 只是这个脑子是不是猪脑就不知道了 于是秉着知之为知之 不知为不知的精神 我准备再次去请教一下我的领导 在一个月黑风高的夜晚 我给领导发了个消息 领导这么回
  • 谈谈我接触过的几个前端框架。

    1 justified gallery框架 jQuery justified gallery插件允许你在一个合理的空间内创建响应式 无限滚动 高品质的画廊 并填充满所有的空间 插件主要特性 无需在意像素 使用一种先进的算法无需剪裁图像进行自
  • syskey (win7启动密码)加密和破解方法

    1 什么是syskey Syskey是NT Service Pack 3中带的一个工具 用来保护SAM数据库不被离线破解 用过去的加密机制 如果攻击者能够得到一份加密过的SAM库的拷贝 他就能够在自己的机器上来破解用户口令 2 如何开启sy
  • java转go语言,值得转吗?

    有这个想法的不在少数了 也就意味着这条路并不是想想的那样 Java确实比以前卷了 但是你能保证转过去比别人做的更好 别拿自己的劣势跟别人的优势争 先守好自己的一亩三分地 把技术提高一个层次 相对来说卷的人数就少了 其实拿GO语言和JAVA相
  • 以后就在这里写技术学习笔记啦

    以后就在这里写技术学习笔记啦 想用印象笔记 但是觉得还是来这里写比较好 在这里写 不好的地方 接受别人的批评
  • vue遍历Map,Map在vue中的使用方法

    Map在vue中的使用方法 html 遍历的时候要遍历两遍
  • atoi函数源代码

    atoi函数源代码 isspace int x if x x t x n x f x b x r return 1 else return 0 isdigit int x if x lt 9 x gt 0 return 1 else ret
  • sprintf, snprintf, _snprintf, sprintf_s 等的区别

    先放结论 1 在支持snpritf的编译器 只使用int snprintf char buffer size t count const char format argument 无论成功或者失败 都会返回字符串的总长度 不包括结束符 如果
  • 什么是区块链----概念

    前言 从2016年年初开始 区块链这个概念越来越热越来越火 有人说他可以颠覆金融行业 也有人觉得这就是个噱头 这个2016火起来的技术其实早在2008年 比特币的诞生就基于区块链 技术火归火 落地的应用却没有那么多 周围的朋友同学都听说过这
  • 释放技术的想象-解码腾讯云软件架构与应用

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 关于腾讯 你可能玩过 王者荣耀 你可能用过 微信 和它的 小程序 你可能看过 腾讯视频 并且曾为之付费 你可能已经是多年的 QQ 老手但还不知道什么是 MQ 作为成立多年的老牌互联网公
  • 不管人工智能发展如何 开发者都有必要了解 Linux 内核

    Linux内核在计算机世界的地位有目共睹 称它为计算机世界的基石也不为过 而且它还是全球最大的开源项目 几乎最知名的科技公司都参与其中 包括谷歌 Red Hat SUSE Intel Facebook 甲骨文和华为等 当然还包括Linux的
  • 解决Android Studio安装过程中“SDK tools directory is missing”的问题

    SDK tools directory is missing 这是因为安装时你的计算机无法连接到google的服务器 对google服务器的域名地址解析出问题了 无法从google服务器下载SDK tools 安装时自动跳过安装SDK to
  • java关于ArrayList,Vector,LinkedList,Set及其面试题+LeetCode136两种方式实现

    ArrayList ArrayList的遍历补充 将list转换为数组 使用toArray 方法将列表转换为数组 再对数组进行遍历 Test void test01 List
  • 机器入门学习方法与学习路径

    机器学习方法与学习路径 1 数学基础 有无数激情满满大步向前 誓要在机器学习领域有一番作为的同学 在看到公式的一刻突然就觉得自己狗带了 是啊 机器学习之所以相对于其他开发工作 更有门槛的根本原因就是数学 每一个算法 要在训练集上最大程度拟合
  • [技术发展-28]:信息通信网大全、新的技术形态、信息通信行业高质量发展概览

    目录 前言 第1章 什么是信息与通信 第2章 为啥要编制信息与通信发展规划 第3章 信息与通信如何高质量发展 重点 3 0 发展目标 编辑 3 1 建设新型数字基础设施 3 1 1 移动通信网 无线接入层 1G到5G 3 1 2 固定宽带网
  • java入门的第一个程序代码 hello world

    很多人说 学Java真的很难 其实 这是真的 但是高薪之所以为高薪 就是因为它比普通的活难的多 今天是我第一篇的博客 我还是想鼓励想学java技术的小伙伴一起来学 很多事只有去做了 你才能知道自己能不能成功 好了 接下来看Java入门的第一
  • XSS & SQL injection

    作者 CyberPhreak XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X Web Security XSS more X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 介绍在这篇文章中我将说明所有关于X
  • C#有像Java ThreadLocal的类似实现吗?

    在C 中 可以使用 ThreadLocal

随机推荐

  • Ubuntu终端使用todesk命令

    Ubuntu终端使用todesk命令 todesk是一款免费的远程控制软件 支持Windows Linux Mac Android iOS等多种平台 可以实现跨设备的远程控制 文件传输 远程打印等功能 本文将介绍如何在Ubuntu终端使用t
  • matlab求图像杰卡德系数,Jaccard similarity coefficient for image segmentation

    This example shows how to segment an image into multiple regions The example then computes the Jaccard similarity coeffi
  • 免费的云服务器,大家推荐哪个呢?

    搭建一个云平台的成本还是很高的 但是就没有企业免费为公众提供服务的吗 其实免费的服务器是有的 各大平台都有 阿里云 腾讯云都有 只是受时间限制的 大多数是7天或者15天 但是某丰云却号称是永久免费的 其实它是有前提的 释放以后的数据也就永远
  • 第一课:使用C++实现图片去水印

    目录 1 功能概述 2 具体实现 2 1 导入OpenCV库和头文件 2 2 读入图像并显示 2 3 提取水印区域 2 4 重构去除水印后的图像 3 完整代码如下 4 实现效果 5 介绍几种PS去水印的方法 5 1 裁剪法 5 2 借图法
  • c1047: [编程入门]报数问题[报3退出]

    有n人围成一圈 顺序排号 从第1个人开始报数 从1到3报数 凡报到3的人退出圈子 问最后留下的是原来的第几号的那位 输入 初始人数n 输出 最后一人的初始编号 样例输入复制 3 样例输出复制 2 思路 约瑟夫环问题 需要考虑 1 成环 即当
  • 2023年软件测试常见面试题100%问必背全套教程

    随着数字化时代的到来 软件测试越来越受到重视 在未来的几年里 软件测试将继续成为信息技术领域中的热门职业之一 如果你是一名正在寻找或准备进入软件测试行业的人 那么这套常见面试题全套教程对你来说会非常有用 这套教程旨在帮助你了解2023年软件
  • Hdfs页面操作文件出现 Permission denied: user=dr.who, access=WRITE, inode=“/“:hadoop:supergroup:drwxr-xr问题解决

    错误描述 Permission denied user dr who access WRITE inode hadoop supergroup drwxr xr x 先开始一直纠结我是用hadoop用户登录操作的 为什么会是dr who d
  • eNSP之安全策略的配置

    命令行模式 FW firewall zone trust 进入trust区域 FW zone trust add int g1 0 0 把g1 0 0加入trust区域 undo add int g1 0 0 取消加入 FW firewal
  • C语言题目解析(一)

    C语言题目解析 1 打印 1 100之间的奇数 1 1 题目描述 1 2 解法思路 1 3 代码 1 4 运行结果 2 打印9 9乘法 诀表 2 1 题目描述 2 2 解题思路 2 3 解法代码 2 4 运行结果 3 打印素数 3 1 题目
  • 禁用cookie和私密浏览模式情况下localstorage需要注意的问题

    localstorage是html5新增的一个功能 用于本地存储 主要解决cookie存储量小的问题 官方建议每个网站最多存储5M大小 localstorage相关的函数 cookieEnabled 移动端在使用localstorage需要
  • TCP和UDP详解

    本篇文章主要是从运输层协议概述 UDP TCP 可靠传输的工作原理 TCP首部格式 TCP可靠传输的实现 TCP流量控制 TCP的拥塞控制 TCP的连接管理这几个方面进行解析 不对之处还望指出 喜欢的可以点赞关注一下 谢谢 一 运输层协议概
  • 写一段js代码,完成字段校验规则:字段的长度必须介于6-20位之间,必须包含大小写字母和数字。...

    var regex new RegExp a z A Z 0 9 a zA Z0 9 6 20 if regex test fieldValue 校验通过 else 校验不通过
  • Dynamics 365 自动化发布工具Spkl介绍

    本篇主要是为了后面讲述CI CD时用到的工具做一个说明 先奉上spkl的github地址 没听说过的可以去查看下 挺不错的工具 我们主要用这个工具来部署WebResource Plugin和Workflow Activities 以及后续的
  • 一篇搞定SpringCloud面试(两万字)

    本文来自一位非常卷的在校学生写的学习笔记 哎 这样太卷了 作为一个苦逼的在读大学生 又要面临半年一度的期末考试了 因为上课没听 我啥都不会 什么通信原理 单片机 饶了我吧 给你们看看我上课在干啥你就知道我为啥啥都不会了 上课笔记 emmm
  • 群晖 NAS WebDAV服务手机ES文件浏览器远程访问【无公网IP内网穿透】

    iOS开发上架主页 在强者的眼中 没有最好 只有更好 我们是移动开发领域的优质创作者 同时也是阿里云专家博主 关注我们的主页 探索iOS开发的无限可能 我们与您分享最新的技术洞察和实战经验 助您在移动应用开发领域取得成功 欢迎访问我们的微信
  • 【YOLO v7】论文笔记

    YOLO v7 论文笔记 文章地址及源码 文章 https arxiv org abs 2207 02696 源码 https github com WongKinYiu yolov7 研究背景及主要贡献 针对目标群体 执行实时目标检测的计
  • docker安装seata1.5.2及其使用

    前言 最近进行了seata的安装和使用 对照网上的文章和文档进行安装配置使用的过程中绕了不少弯路 现在完成工作之后写一篇博文对此进行总结和记录 直接上案例 首先要注意Spring Cloud Alibaba Spring Cloud Spr
  • 了解并使用Xposed 框架神器

    什么是Xposed框架 Xposed 框架是个神器 帮助文档 关于Xposed框架的安装以及使用 https sspai com post 24538 Xposed下载地址以及模块库 https repo xposed info modul
  • 使用Qt Creator开发动态链接库,并在程序中调用(动态链接库)

    在 QT 中 一般将驱动 动态库 dll文件一概而论 一路下一步 至工程建立 dynamiclibrary h ifndef DYNAMICLIBRARY H define DYNAMICLIBRARY H include dynamicl
  • 以日期作为ts切片文件名问题的解决过程

    一 需求 EasyDarwin使用FFmpeg来保存流媒体 以多个ts分片形式存在 但由于EasyDarwin调用FFmpeg命令时 没有对生成名字做处理 所以默认生成的ts文件名都是out0 ts out1 ts 这种名称意义不大 需要以