音视频录制的主要功能是录制音视频,并根据设置的编码格式、采样率、码率等参数封装输出文件。
音视频录制API接口如下,具体的API详见接口文档。
表 1 音视频录制API接口
无。
-
创建Recorder实例。
Recorder *recorder = new Recorder();
-
设置Recorder参数,包括设置音视频源信息,音视频编码格式,采样率,码率,视频宽高等信息。
int32_t sampleRate = 48000; int32_t channelCount = 1; AudioCodecFormat audioFormat = AAC_LC; AudioSourceType inputSource = AUDIO_MIC; int32_t audioEncodingBitRate = sampleRate; VideoSourceType source = VIDEO_SOURCE_SURFACE_ES; int32_t frameRate = 30; double fps = 30; int32_t rate = 4096; int32_t sourceId = 0; int32_t audioSourceId = 0; int32_t width = 1920; int32_t height = 1080; VideoCodecFormat encoder = H264; recorder->SetVideoSource(source, sourceId ); // 设置视频源,获得sourceId recorder->SetVideoEncoder(sourceId, encoder); // 设置视频编码格式 recorder->SetVideoSize(sourceId, width, height); // 设置视频宽高 recorder->SetVideoFrameRate(sourceId, frameRate); // 设置视频帧率 recorder->SetVideoEncodingBitRate(sourceId, rate); // 设置视频编码码率 recorder->SetCaptureRate(sourceId, fps); // 设置视频帧的捕获帧率 recorder->SetAudioSource(inputSource, audioSourceId); // 设置音频源,获得audioSourceId recorder->SetAudioEncoder(audioSourceId, audioFormat); // 设置音频编码格式 recorder->SetAudioSampleRate(audioSourceId, sampleRate); // 设置音频采样率 recorder->SetAudioChannels(audioSourceId, channelCount); // 设置音频通道数 recorder->SetAudioEncodingBitRate(audioSourceId, audioEncodingBitRate); // 设置音频编码码率
-
准备录制,Recorder进行录制前的准备工作。
recorder->Prepare(); // 准备录制
-
开始录制,Recorder会根据设置的音频源和视频源进行录制。
recorder->Start(); // 开始录制
-
结束录制,释放资源。
recorder->Stop(); // 停止录制 recorder->Release(); // 释放录制资源