1

これは、AndroidでJavaCVとffmpegを使用してビデオのサイズを変更するために使用しているコードです-

FFmpegFrameGrabber grabber = new FmpegFrameGrabber("/sdcard/DCIM/100MEDIA/VIDEO0066.mp4"); 
        grabber.start();

        int w = (int)grabber.getImageWidth()/2;
        int h = (int)grabber.getImageHeight()/2;        

        if (w%2 != 0) w=w-1;
        if (h%2 != 0) h=h-1;

        FrameRecorder recorder = new FFmpegFrameRecorder("/sdcard/DCIM/output.mov", w, h ,grabber.getAudioChannels());

        recorder.setVideoCodec(avcodec.CODEC_ID_MPEG4);
        recorder.setPixelFormat(avutil.PIX_FMT_YUV420P);
        recorder.setAudioCodec(avcodec.CODEC_ID_PCM_S16LE); 
        recorder.start(); 

        Frame frame = null;
        while ((frame = grabber.grabFrame()) != null)
        {
            IplImage source = frame.image;
            if (source!=null)
            {
            IplImage destination = cvCreateImage(cvSize(w , h), source.depth(), source.nChannels() );
            cvResize(source, destination);
            frame.image = destination;
            recorder.record(frame);

            }
        }

ビデオよりも元の幅と高さを使用すると音声付きですが、w/2 と h/2 を使用すると出力ファイルは音声なしになります。お知らせ下さい。

4

0 に答える 0