上百度google好多次,好多说setVideoFrameRate(30)的,然而并没有什么卵用,再次感谢这位大锅:http://blog.csdn.net/huiguixian/article/details/29852661
先获取到
这个玩意儿:
CamcorderProfile mProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
然后所有的参数都从mProfile获取,然后录制的视频就清楚了,copy一下上面网址的设置:
-
-
mMediaRecorder =
new
MediaRecorder();
-
mMediaRecorder.setCamera(mCamera);
-
-
-
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
-
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
-
-
-
mMediaRecorder.setOutputFormat(mProfile.fileFormat);
-
mMediaRecorder.setAudioEncoder(mProfile.audioCodec);
-
mMediaRecorder.setVideoEncoder(mProfile.videoCodec);
-
mMediaRecorder.setOutputFile(
"/sdcard/FBVideo.3gp"
);
-
mMediaRecorder.setVideoSize(mProfile.videoFrameWidth, mProfile.videoFrameHeight);
-
mMediaRecorder.setVideoFrameRate(mProfile.videoFrameRate);
-
mMediaRecorder.setVideoEncodingBitRate(mProfile.videoBitRate);
-
mMediaRecorder.setAudioEncodingBitRate(mProfile.audioBitRate);
-
mMediaRecorder.setAudioChannels(mProfile.audioChannels);
-
mMediaRecorder.setAudioSamplingRate(mProfile.audioSampleRate);
-
-
-
mMediaRecorder.setPreviewDisplay(mHolder.getSurface());
上百度google好多次,好多说setVideoFrameRate(30)的,然而并没有什么卵用,再次感谢这位大锅:http://blog.csdn.net/huiguixian/article/details/29852661先获取到这个玩意儿:CamcorderProfile mProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_
使用MediaRecorder
录制
视频
时有时候太
模糊
,这里提几种解决方法:
1:设置Camera.Parameters聚焦模式:
//parameters.
set
FocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
parameters.
set
FocusMode(Camera.Parameters.FOCUS_MODE_CONTINU
Android手机一般都提供麦克风的硬件,而Android系统可以利用该硬件来
录制
音频。
为了在Android应用中
录制
音频,Android提供了MediaRecorder类,使用MediaRecorder
录制
音频的过程很简单,步骤如下:
Step1:创建MediaRecorder对象;
Step2:调用MediaRecorder对象的
set
AudioSource()方法设置声音来源,一般传入MediaRecorder.AudioSource.MIC参数指定
录制
来自麦克风的声音;
Step3:调用MediaRecorder对象的
set
OutputFormat()方法设置所
录制
的音频文件格式;
Step4:调用MediaRecorder对象的
set
AudioEncoder()、
set
Audio
Encoding
Bit
Rate
(int
bit
Rate
)、
set
AudioSampling
Rate
(int sampling
Rate
)方法设置所
录制
的声音编码格式、编码位率、采样率等,这些参数将可以控制所
录制
的声音品质、文件大小。一般来说,声音品质越好,声音文件越大;
Step5:调用MediaRecorder的
set
OutputFile(String path)方法设置所
录制
的音频文件的保存位置;
Step6:调用MediaRecorder的prepare()方法准备
录制
;
Step7:调用MediaRecorder对象的start()方法开始
录制
。
初始状态,当使用new()方法创建一个MediaRecorder对象或者调用了
re
set
()方法时
该MediaRecorder对象处于Initial状态。在设定
视频
源或者音频源之后将转换为Initialized状态。另
外,在除Released状态外的其它状态通过调用re
set
()方法都可以使MediaRecorder进入该状态。
Initialized:
已初始化状态,可
public void startRecord() {
mediarecorder = new MediaRecorder();// 创建mediarecorder对象
mCamera = getCameraInstance();
Parameters parameters = mCamera.getParameters();
文章目录前言1
视频
参数1.1
video
size——图像图像分辨率1.2
video
Frame
Rate
——
视频
帧率1.3
video
Bit
Rate
——
视频
码率1.4
video
Encode——
视频
编码类型1.5 log2 音频参数2.1 audioChannels——声道数2.2 audioSample
Rate
——音频采样率2.3 audio
Bit
Rate
——音频码率2.4 audioEncoder——音频编码类型
应用层设置音
视频
参数
video
FrameHeight
video
Fra
可以
录制
微信语音等。
通过mac 内置的 quicktime player 已带有录音、
录制
视频
的功能,但是录音只能选择麦克风等声音输入设备作为来源,不能直接
录制
系统的输出声音。
通过soundflower的内核模块,把系统的声音输出转到输入,从而使得能直接
录制
到本来输出的声音。
安装 soundflower
brew cask install soundflower
因为 mac 的安全策略的原因,第一次安装时,需要到 安全性与隐私-通用 处允许加载 soundflower 的内核模块,然后再次运行命令
录像默认会有4G的限制,之所以有这样的限制,是因为目前很多存储设备都是fat格式的,fat的size是32位表示的,天然就有4G的限制,而且实际上在限制4G的情况下只能录出来3.8G。是因为
1)要留一部分buffer写moovbox
2)有的还要留部分buffer作为写数据的cache
在文件\frameworks\av\media\libstagefright\MPEG4Writer.cpp中...