首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android MediaRecorder API继续剪切视频比特率。

Android MediaRecorder API继续剪切视频比特率。
EN

Stack Overflow用户
提问于 2011-07-17 16:37:50
回答 2查看 5.9K关注 0票数 6

我正在使用MediaRecorder API一段时间,我以为所有的问题都已经过去了,但我想我错了。

我正在使用MediaRecorder API将视频记录到文件中。当我使用高质量的setProfile时,我得到了很好的质量,但是当我尝试手动设置参数时(如下面的代码所示),质量就很差(因为由于某种原因,比特率被裁剪了)。我想要720便士和1 1fps。

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

我正在运行的代码:

代码语言:javascript
运行
复制
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);

有什么想法吗?非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-18 10:34:07

但是发现solution...very很奇怪。在设置压缩类型之前设置比特率解决了这个问题.唯一的问题是它是谷歌代码中的一个bug,还是其他一些我不明白的东西。

原件:

代码语言:javascript
运行
复制
m_MediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
m_MediaRecorder.setVideoFrameRate(1);
m_MediaRecorder.setVideoEncodingBitRate(8000000);

解决方案:

代码语言:javascript
运行
复制
m_MediaRecorder.setVideoEncodingBitRate(8000000);
m_MediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
m_MediaRecorder.setVideoFrameRate(1);
票数 7
EN

Stack Overflow用户

发布于 2011-07-17 17:55:04

setVideoEncodingBitRate()文档说:

设置用于记录的视频编码比特率。在准备()之前调用此方法。Prepare()可以对参数执行额外的检查,以确定指定的比特率是否适用,有时传递的bitRate将在内部被裁剪,以确保基于平台的功能能够顺利地进行视频记录。

由于MediaRecorder API处理的是某种类型的硬件编码芯片,这与设备不同,所以它不能总是给出您所要求的编解码器、帧大小、帧速率和编码比特率的每个组合。

您的需求有点不寻常,因为您正在尝试记录1 fps。如果您正在为蜂窝开发应用程序,则有用于MediaRecorder的“时间差”API和一个可能有用的打电话

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6725258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档