【发布时间】:2017-10-12 07:49:59
【问题描述】:
我使用android的内置摄像头录制视频,但是当我通过Retrofit2发送到服务器时,在浏览器中看不到视频。所以经过长时间的搜索,我知道我用android录制的视频,编解码器是MP42 所以我需要将其转换为 H.264 编解码器才能使其在浏览器中播放。
这是我拍摄视频的方式
private void recordVideo() {
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
fileUri = getOutputMediaFileUri();
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);
intent.putExtra(MediaStore.EXTRA_OUTPUT,fileUri);
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT,15);
startActivityForResult(intent, REQUEST_VIDEO_CAPTURE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == RECORD_VIDEO_PERMISSION && resultCode == RESULT_OK){
Uri uri =data.getData(); //so the video file I get it here
Log.d("videoData",data.getData().toString());
videoView.setVideoURI(uri);
videoView.start();
}
}
我在onActivityResult 中获得了视频的uri,视频在MP42 编解码器中,如何将其转换为H.264?
我尝试使用MediaCodec Documentation,但我不知道在哪里输入我的Uri (mp42) 以获取 H.264 编解码器视频的输出(我想在浏览器中播放)。
有人请给我一些指导..
【问题讨论】:
-
mp42 是一个容器(它也是一个 MScodec,但怀疑这里就是这种情况) - 你能分享一个示例视频的链接,我们可以提供更好的帮助
-
这个视频是MP42,我直接上传到服务器..它看起来像这样
-
使用
MediaRecorderAPI 捕捉视频。在设置代码期间,您可以选择 H.264 作为编解码器。
标签: android video android-camera android-mediacodec