您好我正在尝试使用mediarecorder api并生成包含h264视频和aac音频的mpeg2ts输出。
1)当我单独录制视频时,生成的输出.ts文件工作正常,没有任何延迟。 2)当我录制音频和视频时,应用程序崩溃。所以我在网上做了一些搜索,发现这是AOSP框架中发现的MPEG2TS writer.cpp中的一个错误,基于这个链接<< code.google.com/p/android/issues/detail?id=37714>>我应用了建议的补丁并尝试了同样的方法。我能够对音频和视频进行编码,但生成的输出文件存在问题。
3)作家没有正确的工作。有滞后。首先播放一个视频帧,然后在视频冻结时播放音频,然后播放。
4)编写器代码可以在这里找到 - > << androidxref.com/4.2.2_r1/xref/frameworks/av/media/libstagefright/MPEG2TSWriter.cpp>>
我添加的补丁可以在这里找到 - > << code.google.com/p/android/issues/attachmentText?id=37714&aid=377140007000&name=patch&token=E7rjXqE55TIp50S7sI04mxbsRCA%3A1384836153502>>
5)有人请告诉我作者的问题是什么,我应该如何在代码中修复它,请提供一些固定的代码片段。
我的android源代码是:
myCamera = getCameraInstance();
mediaRecorder = new MediaRecorder();
myCamera.unlock();
mediaRecorder.setCamera(myCamera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(8);
mediaRecorder.setOutputFile("/sdcard/myvideo.ts");
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setVideoSize(320, 240);
mediaRecorder.setVideoFrameRate(15);
mediaRecorder.setMaxDuration(20);
mediaRecorder.setMaxFileSize(10000);
mediaRecorder.setPreviewDisplay(myCameraSurfaceView.getHolder()
.getSurface());
6)一旦我让ts编写器工作,我需要通过RTP发送ts数据包进行直播,所以请帮助修复ts作者问题。