推流常用质量配置
通常推流的编码配置应该根据 app 的需求调整设置,不同的场景可能会需要不同的配置,以下我们列出几种不同的档次配置供参考。再次强调,不同的场景需要根据自身产品需求调整。
基本概念
关于 分辨率、帧率、码率 等编码基本概念可以参考以下文档
一组建议值
关于分档的【标清、高清、超清】,目前并不是通用标准,多数视频站点使用各自的标准,一般只是作为区分的不同视频质量的标识。
画质 | 码率 | 分辨率 | 帧率 |
---|---|---|---|
标清 | 800 kbps | 360x640 | 15 |
高清 | 1.2 mbps | 540x960 | 20 |
超清 | 1.8 mbps | 720x1280 | 20 |
对应在 sdk 中的配置
android
// 标清
StreamingProfile.AudioProfile aProfile=newStreamingProfile.AudioProfile(44100,48*1024);
StreamingProfile.VideoProfile vProfile=newStreamingProfile.VideoProfile(15,800*1024,15,StreamingProfile.H264Profile.BASELINE);
StreamingProfile.AVProfile avProfile=newStreamingProfile.AVProfile(vProfile,aProfile);
mProfile.setPreferredVideoEncodingSize(360,640)
.setAVProfile(avProfile)
// 高清
StreamingProfile.AudioProfile aProfile=newStreamingProfile.AudioProfile(44100,48*1024);
StreamingProfile.VideoProfile vProfile=newStreamingProfile.VideoProfile(20,1.2*1024*1024,20,StreamingProfile.H264Profile.BASELINE);
StreamingProfile.AVProfile avProfile=newStreamingProfile.AVProfile(vProfile,aProfile);
mProfile.setPreferredVideoEncodingSize(540,960)
.setAVProfile(avProfile)
// 超清
StreamingProfile.AudioProfile aProfile=newStreamingProfile.AudioProfile(44100,48*1024);
StreamingProfile.VideoProfile vProfile=newStreamingProfile.VideoProfile(20,1.8*1024*1024,20,StreamingProfile.H264Profile.HIGH);
StreamingProfile.AVProfile avProfile=newStreamingProfile.AVProfile(vProfile,aProfile);
mProfile.setPreferredVideoEncodingSize(720,1280)
.setAVProfile(avProfile)
iOS
// 标清
videoCaptureConfiguration = [[PLVideoCaptureConfiguration alloc] initWithVideoFrameRate:15 sessionPreset:AVCaptureSessionPreset1280x720 previewMirrorFrontFacing:YES previewMirrorRearFacing:NO streamMirrorFrontFacing:NO streamMirrorRearFacing:NO cameraPosition:AVCaptureDevicePositionBack videoOrientation:AVCaptureVideoOrientationPortrait];
videoStreamConfiguration = [[PLVideoStreamingConfiguration alloc]initWithVideoSize:CGSizeMake(360, 640) expectedSourceVideoFrameRate:15 videoMaxKeyframeInterval:30 averageVideoBitRate:800*1024 videoProfileLevel:AVVideoProfileLevelH264BaselineAutoLevel videoEncoderType:PLH264EncoderType_VideoToolbox];
// 高清
videoCaptureConfiguration = [[PLVideoCaptureConfiguration alloc] initWithVideoFrameRate:20 sessionPreset:AVCaptureSessionPreset1280x720 previewMirrorFrontFacing:YES previewMirrorRearFacing:NO streamMirrorFrontFacing:NO streamMirrorRearFacing:NO cameraPosition:AVCaptureDevicePositionBack videoOrientation:AVCaptureVideoOrientationPortrait];
videoStreamConfiguration = [[PLVideoStreamingConfiguration alloc]initWithVideoSize:CGSizeMake(540, 960) expectedSourceVideoFrameRate:20 videoMaxKeyframeInterval:30 averageVideoBitRate:1.2*1024*1024 videoProfileLevel:AVVideoProfileLevelH264HighAutoLevel videoEncoderType:PLH264EncoderType_VideoToolbox];
// 超清
videoCaptureConfiguration = [[PLVideoCaptureConfiguration alloc] initWithVideoFrameRate:20 sessionPreset:AVCaptureSessionPreset1280x720 previewMirrorFrontFacing:YES previewMirrorRearFacing:NO streamMirrorFrontFacing:NO streamMirrorRearFacing:NO cameraPosition:AVCaptureDevicePositionBack videoOrientation:AVCaptureVideoOrientationPortrait];
videoStreamConfiguration = [[PLVideoStreamingConfiguration alloc]initWithVideoSize:CGSizeMake(720, 1280) expectedSourceVideoFrameRate:20 videoMaxKeyframeInterval:30 averageVideoBitRate:1.8*1024*1024 videoProfileLevel:AVVideoProfileLevelH264HighAutoLevel videoEncoderType:PLH264EncoderType_VideoToolbox];
以上为编码相关的主要配置,其他的配置可以根据需要调整。
文档反馈
(如有产品使用问题,请 提交工单)