bytedeco/javacv

Video and Audio in FFmpegFrameGrabber not same time

Open

#1.058 aberto em 15 de set. de 2018

Ver no GitHub
 (7 comments) (0 reactions) (0 assignees)Java (1.583 forks)batch import
help wantedquestion

Métricas do repositório

Stars
 (6.985 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Hi everyone,

I am recording Camera and Audio by FFmpegFrameGrabber and streaming to Facebook. FFmpegFrameGrabber grabber = new FFmpegFrameGrabber("video=FaceTime HD Camera:audio=Headset Microphone (Cirrus Logic CS4208 (AB 128))"); Then I check video on my Facebook, Camera and Audio not same time. I tried setTimeStamp, but it doesn't work. This is setTimeStamp code:

while ((capturedFrame = grabber.grab()) != null)
{
            // Let's define our start time...
            // This needs to be initialized as close to when we'll use it as
            // possible,
            // as the delta from assignment to computed time could be too high
            if (startTime == 0)
                startTime = System.currentTimeMillis();

            // Create timestamp for this frame
            videoTS = 1000 * (System.currentTimeMillis() - startTime);

            // Check for AV drift
            if (videoTS != recorder.getTimestamp())
            {
                System.out.println(
                        "Lip-flap correction: " 
                        + videoTS + " : "
                        + recorder.getTimestamp() + " -> "
                        + (videoTS - recorder.getTimestamp()));

                // We tell the recorder to write this frame at this timestamp
                recorder.setTimestamp(videoTS);
            }
            recorder.record(capturedFrame);
}

Please help me fix this issue. Thank a lot of.

Guia do colaborador