AndyYuan10000 2024-09-04 17:43 采纳率: 0%
浏览 6

nginx+rtmp录像模块,如何获得文件开始和结束时间

img


请问下,通过nginx+rtmp录像模块,生成的文件,比如:

img


1.如何知道该文件的开始时间和结束时间,目前发现通过回调可以知道录像参数,但是核心参数就是路径,不知道开始时间和结束时间。
2.nginx 参数配置


 recorder all {
    record all; 
    record_unique on;   
    record_suffix -%Y-%m-%d-%H_%M_%S.mp4; 
    record_max_size 1280K; 
    on_record_done http://10.96.15.114:20808/on_record_done;
    record_path /tmp/video/record;
 }

3.生成的文件名到底是结束时间命名还是开始时间命名,没有文档说明?

  • 写回答

1条回答 默认 最新

  • 吃不了席 2024-09-04 17:44
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要获取Nginx + Rtmp录像模块生成的文件的开始时间和结束时间,您可以通过检查on_record_done回调函数中的日期信息来实现。

    首先,在您的Rtmp录像模块配置中添加一个on_record_done回调:

    on_record_done {
        //...
    }
    

    在您的脚本中,您可以使用date命令来获取当前的时间戳,并将其转换为日期格式(例如%Y-%m-%d-%H_%M_%S)。然后,您可以根据这些信息来确定文件的开始时间和结束时间。

    例如,如果您想要获取录像文件的开始时间,可以使用以下代码:

    # 获取当前时间戳
    timestamp=$(date +%s)
    
    # 转换时间为字符串格式
    timestamp_str=$(date -u +"%Y-%m-%d-%H_%M_%S")
    
    # 根据时间戳计算开始时间
    start_time=$(echo "2024-09-04" | date -d "$timestamp_str" +%s)
    end_time=$((timestamp - start_time))
    
    # 将时间戳转换回字符串格式
    start_time_str=$(date -d "@$start_time" +%Y-%m-%d-%H_%M_%S)
    end_time_str=$(date -d "@$end_time" +%Y-%m-%d-%H_%M_%S)
    
    # 打印结果
    echo "Start Time: $start_time_str"
    echo "End Time: $end_time_str"
    

    这段代码将打印出录像文件的开始时间和结束时间。

    请注意,这只是一个基本示例,实际操作可能需要根据您的具体需求进行调整。例如,您可能需要处理时区差异、年份和月份的差异等。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月4日

悬赏问题

  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值