mirror of
https://github.com/openharmony/ohos_bundles.git
synced 2026-07-01 06:41:17 -04:00
Recorder_README
介绍
简介
录制模块支持音视频录制业务的开发,提供音视频录制相关的功能,包括设置录制视频画面尺寸、音视频编码码率、编码器类型、视频帧率、音频采样率、录制文件输出格式等。
在进行应用的开发前,开发者应了解以下基本概念:
-
流媒体技术
流媒体技术是把连续的影像和声音信息进行编码处理后放在网络服务器上,让浏览者一边下载、一边观看与收听,而不需要等整个多媒体文件下载完成就可以即时观看、收听的技术。
-
视频帧率
帧率是用于测量显示帧数的度量,帧数就是在每秒钟时间里传输的图片数量。每秒钟帧数 (FPS) 越多,所显示的画面就会越流畅。
-
码率
码率就是数据传输时单位时间传送的数据位数,常用单位是kbps即千位每秒。
-
采样率
采样率为每秒从连续信号中提取并组成离散信号的采样个数,单位用赫兹(Hz)来表示。
安装指导
录像相关动态库安装到设备/usr/lib中
使用说明
使用场景
音视频录制的主要功能是录制音视频,并根据设置的编码格式、采样率、码率等参数封装输出文件。
接口说明
音视频录制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(); // 释放录制资源