আমি ফ্রেমগুলি H264 ফর্ম্যাটে সংরক্ষণ করছি এবং আমি অ্যাক ফর্ম্যাটটিতে অডিও সংরক্ষণ করেছি। তারপরে অ্যান্ড্রয়েডে ffmpeg প্লেয়ার ব্যবহার করে এমপি 4 ফর্ম্যাট তৈরি করতে আমি এই ফর্ম্যাটটির সাথে একমত হয়েছি কিন্তু যখন আমি অডিও এবং ভিডিওকে একত্রীকরণ করি তখন অডিও ভিডিওটিতে ফিরে আসার পরে তারা সিঙ্ক্রোনাস মোডে খেলছে না, আমি কীভাবে ভিডিও এবং অডিও সিঙ্ক্রোনাস মোডে খেলতে পারি? এইচ 264 ভিডিও ফর্ম্যাটটি 6 সেকেন্ড, অডিও ফর্ম্যাটটি 8 সেকেন্ডের যখন আমি এই বিষয়ে 8 টি সেকেন্ড এবং অডিও দীর্ঘতর হয়ে আসার এবং অ্যাসিক্রোনাস সংঘটিত হওয়ার বিষয়ে সম্মতি জানায়।
এএসি ফর্ম্যাটে অডিও রেকর্ডিং
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
recorder.setAudioEncodingBitRate(48000);//48000
recorder.setAudioSamplingRate(720);//16000
recorder.setOutputFile(path2);
try {
recorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
recorder.start();
ভিডিও H264 ফর্ম্যাটে সংরক্ষণ করা হচ্ছে
MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc",
1280,
720);
mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT,
MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar);
mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 6000000);
mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 720); //video second
mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
try {
mMediaCodec = MediaCodec.createEncoderByType("video/avc");
} catch (IOException e) {
e.printStackTrace();
}
mMediaCodec.configure(mediaFormat,
null,
null,
MediaCodec.CONFIGURE_FLAG_ENCODE);
mMediaCodec.start();
Ffmpeg ব্যবহার করে ভিডিও এবং অডিওকে সংযুক্ত করুন
String[] cmd = {"-i", h264_video_path, "-i", aac_audio_path, "-c", "copy", "-map","0:v:0","-map","1:a:0", outpath_mp4};
try {
//FFMPEG execute command
executeCommand(cmd);
} catch (FFmpegCommandAlreadyRunningException e) {
e.printStackTrace();
}