// ============================================
// Scrcpy 视频流配置参数
// ============================================

const ScrcpyConfig = {
	// 视频编码参数
	"bitrate": "2M",
	// 比特率：控制视频质量和网络带宽
	// 范围：1M - 50M（推荐：2M - 16M）
	// 值越小延迟越低但画质越差，值越大画质越好但延迟越高
	// 选项：数字+M（如 "2M", "8M", "16M"）或数字（如 2000000 表示 2Mbps）
	
	"max-fps": 1,
	// 最大帧率：限制视频的最大帧率
	// 范围：1 - 120（推荐：15 - 60）
	// 值越小延迟越低但流畅度越差，值越大流畅度越好但延迟越高
	// 选项：数字（如 15, 30, 60, 120）
	
	"max-size": 160,
	// 最大分辨率：限制视频的最大宽度（高度按比例缩放）
	// 范围：160 - 3840（推荐：720 - 1920）
	// 值越小延迟越低但清晰度越差，值越大清晰度越好但延迟越高
	// 选项：数字（如 720, 1080, 1920, 2560）
	// 特殊值：0 表示使用设备原始分辨率
	
	"codec": "h264",
	// 视频编码器：选择视频编码格式
	// 选项：["h264", "h265", "av1"]
	// h264: 兼容性最好，延迟较低（推荐）
	// h265: 压缩率更高，但延迟可能稍高
	// av1: 最新编码，需要设备支持
	
	// 截图相关参数（当前项目使用 screencap 命令）
	"screencap-format": "jpg",
	// 截图格式：控制截图文件格式
	// 选项：["png", "jpg"]
	// png: 无损，文件较大，延迟较高
	// jpg: 有损，文件较小，延迟较低（推荐用于降低延迟）
	
	"screencap-quality": 1,
	// 截图质量（仅当 format 为 jpeg 时有效）
	// 范围：1 - 100（推荐：60 - 90）
	// 值越小文件越小延迟越低但画质越差，值越大画质越好但延迟越高
	
	"screencap-scale": 0.1,
	// 截图缩放比例：降低分辨率以减少数据量
	// 范围：0.1 - 1.0（推荐：0.5 - 1.0）
	// 值越小延迟越低但清晰度越差，值越大清晰度越好但延迟越高
	// 选项：数字（如 0.5, 0.75, 1.0）
	
	// 网络和性能参数
	"tcpip": true,
	// 是否使用 TCP/IP 连接（网络调试）
	// 选项：true（网络连接，延迟可能较高）, false（USB连接，延迟较低）
	
	"buffer-size": 262144,
	// 缓冲区大小：控制数据传输缓冲区
	// 范围：65536 - 10485760（64KB - 10MB，推荐：512KB - 2MB）
	// 值越小延迟越低但可能不稳定，值越大稳定性越好但延迟越高
	// 选项：数字（字节数，如 524288 表示 512KB）
	
	// 轮询和延迟参数（当前项目使用轮询截图）
	"poll-interval": 50,
	// 轮询间隔：两次截图之间的等待时间（毫秒）
	// 范围：50 - 1000（推荐：50 - 200）
	// 值越小延迟越低但CPU占用越高，值越大CPU占用越低但延迟越高
	// 选项：数字（毫秒，如 50, 100, 200）
	
	"image-load-timeout": 200,
	// 图片加载超时时间：等待图片加载的最大时间（毫秒）
	// 范围：100 - 2000（推荐：300 - 800）
	// 值越小响应越快但可能丢失帧，值越大稳定性越好但延迟越高
	// 选项：数字（毫秒，如 300, 500, 800）
	
	// 高级参数
	"turn-screen-off": false,
	// 是否在连接时关闭屏幕（节省电量）
	// 选项：true（关闭屏幕）, false（保持屏幕开启）
	
	"stay-awake": true,
	// 是否保持设备唤醒（防止屏幕锁定）
	// 选项：true（保持唤醒）, false（允许锁定）
	
	"power-off-on-close": false,
	// 断开连接时是否关闭设备
	// 选项：true（关闭设备）, false（保持设备运行）
	
	"clipboard-autosync": false,
	// 是否自动同步剪贴板
	// 选项：true（自动同步）, false（不同步）
	// 注意：启用可能增加延迟
	
	"downsize-on-error": true,
	// 出错时是否自动降低分辨率
	// 选项：true（自动降低）, false（保持原分辨率）
	// 有助于在网络不稳定时保持连接
};

export default ScrcpyConfig;

