【发布时间】:2020-05-17 11:29:14
【问题描述】:
我正在尝试使用RTMP module 获取 Nginx 中 HLS 查看器的实际数量。
我尝试了this 解决方案,但它没有给我真实的数字,我想可能是因为它没有计算以 HLS 格式拉流的观众。
有什么“好”的方法可以实现吗? 谢谢。
【问题讨论】:
我正在尝试使用RTMP module 获取 Nginx 中 HLS 查看器的实际数量。
我尝试了this 解决方案,但它没有给我真实的数字,我想可能是因为它没有计算以 HLS 格式拉流的观众。
有什么“好”的方法可以实现吗? 谢谢。
【问题讨论】:
有一种方法是统计最近 10 到 20 分钟内请求 HLS/DASH 分片的 IP 数量:
#!/bin/bash
date_prefix=$(date +'%d/%b/%Y:%H')
cur_min=$(date +'%M')
cur_min_decimal=${cur_min:0:1}
if [[ $cur_min_decimal == '0' ]]
then
prev_min_decimal=5
else
prev_min_decimal=$(($cur_min_decimal - 1))
fi
cur_minuted_date="${date_prefix}:${cur_min_decimal}"
prev_minuted_date="${date_prefix}:${prev_min_decimal}"
tail -n 10000 /var/log/nginx/access.log \
| grep -E 'GET /(hls|dash)/key-' \
| grep -E "${cur_minuted_date}|${prev_minuted_date}" \
| awk '{print $1}' \
| sort \
| uniq \
| wc -l
如果你想在网站上展示它,你可以每分钟 CRON 该脚本并输出到/var/www/html 文件夹中
【讨论】: