我正在使用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);
任何的想法?
非常感谢.
解决方法
找到解决方案……但非常奇怪.
在设置压缩类型之前设置比特率以某种方式解决了问题.
唯一的问题是它是谷歌代码中的错误还是其他我不理解的错误.
在设置压缩类型之前设置比特率以某种方式解决了问题.
唯一的问题是它是谷歌代码中的错误还是其他我不理解的错误.
原版的:
m_MediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); m_MediaRecorder.setVideoFrameRate(1); m_MediaRecorder.setVideoEncodingBitRate(8000000);
解:
m_MediaRecorder.setVideoEncodingBitRate(8000000); m_MediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); m_MediaRecorder.setVideoFrameRate(1);