我使用android的内置摄像头录制视频,但是当我通过Retrofit2发送到服务器时,视频无法在浏览器中看到。所以经过长时间的搜索后,我知道我用android录制的视频,编解码器是MP42
所以我需要将其转换为H.264
编解码器才能使其在浏览器中可以播放。如何转换由内置的Android摄像头录制的视频编解码器?
这里是我捕捉视频
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();
}
}
我得到的视频的URI中onActivityResult
,视频是在MP42
编解码器,我怎样才能将其转换为H.264
?
我试图使用MediaCodec Documentation,但我不知道在哪里输入我的Uri
(mp42)以获得H.264编解码器视频(我想在浏览器中播放)的输出。
有人请给我一些指导..
MP42是一个容器(它也是一个MScodec,但无疑这是这里的情况) - 你可以分享一个链接到例如视频,我们或许能够帮助人们更好地 – Mick
这个视频是MP42我负责上传到服务器..只是看起来像这样 – ken
使用'MediaRecorder' API来捕捉视频。在设置代码期间,您可以选择H.264作为编解码器。 –