ভিডিও এবং অডিও সিনক্রোনাইজেশন সমস্যা


0

আমি ফ্রেমগুলি 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();
                }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.