Android MediaRecorder API会继续裁剪视频比特率

Lio*_*ana 6 android mediarecorder

我正在使用MediaRecorder API一段时间,我认为所有问题都在我身后,但我想我错了.

我正在使用MediaRecorder API将视频录制到文件中.当我使用高质量的setProfile时,我获得了良好的质量,但是当我尝试手动设置参数时(如下面的代码中),质量很差(因为某种原因,比特率被裁剪).我想用1fps获得720p.

我一直收到以下警告: WARN/AuthorDriver(268):视频编码比特率设置为480000 bps

我正在运行的代码:

m_MediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
m_MediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
m_MediaRecorder.setVideoSize(1280, 720);
m_MediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
m_MediaRecorder.setVideoFrameRate(1);
m_MediaRecorder.setVideoEncodingBitRate(8000000);
Run Code Online (Sandbox Code Playgroud)

任何的想法?非常感谢.

Lio*_*ana 7

找到解决方案......但非常奇怪.在设置压缩类型之前设置比特率以某种方式解决了问题.唯一的问题是它是谷歌代码中的错误还是其他我不理解的错误.

原版的:

m_MediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
m_MediaRecorder.setVideoFrameRate(1);
m_MediaRecorder.setVideoEncodingBitRate(8000000);
Run Code Online (Sandbox Code Playgroud)

解:

m_MediaRecorder.setVideoEncodingBitRate(8000000);
m_MediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
m_MediaRecorder.setVideoFrameRate(1);
Run Code Online (Sandbox Code Playgroud)