视频直播支持的分辨率和对应合适的码率

 

CentOS 7.6 64位系统,ifstat获取当前网络速度,命令

#!/bin/bash

# 设置默认参数
WIDTH=640
HEIGHT=360
BITRATE=600k

# 获取当前CPU使用率
CPU_LOAD=$(top -bn1 | grep load | awk '{printf "%.2f\n", $(NF-2)}')

# 获取当前网卡传输速度
NET_SPEED=$(ifstat -q 1 1 | tail -n 1 | awk '{print $7}')

# 根据CPU使用率和网卡速度动态调整分辨率和比特率
if (( $(echo "$CPU_LOAD > 0.70" | bc -l) )); then
    WIDTH=320
    HEIGHT=240
    BITRATE=300k
fi

if (( $NET_SPEED < 200000 )); then
    WIDTH=320
    HEIGHT=240
    BITRATE=300k
fi

# 使用FFmpeg进行推流
ffmpeg -re -i input.mp4 -vf scale=${WIDTH}:${HEIGHT} -c:v libx264 -preset ultrafast -b:v ${BITRATE} -maxrate ${BITRATE} -bufsize $(( ${BITRATE} * 2 )) -c:a aac -b:a 128k -f flv rtmp://example.com/live/streamkey

 

视频直播支持的分辨率和对应合适的码率

 

视频直播服务不限制推流码率,支持常见分辨率以及对应的码率。

以下列举常见分辨率及对应码率:
  • 640×480:100 kbps~800 kbps。
  • 1280×720:200 kbps~1500 kbps。
  • 1920×1080:500 kbps~4000 kbps。
  • 2K(2560×1440):2000 kbps~8000 kbps。
  • 4K(3840×2160):4000 kbps~30000 kbps。
为避免推流卡顿,建议:
  • 推流不超过4 Mbps。

    此建议是根据平常主播端带宽来判断的,视频直播没有这个限制。

  • 4K、8K直播,推流码率超过25 Mbps。

    若单TS切片文件大小超过上限100 MB,录制会失败。

 

posted @ 2023-04-17 20:11  aiplus  阅读(117)  评论(0)    收藏  举报
悬浮按钮示例