bytedeco/javacv

Video and Audio in FFmpegFrameGrabber not same time

Open

#1 058 ouverte le 15 sept. 2018

Voir sur GitHub
 (7 commentaires) (0 réactions) (0 assignés)Java (1 583 forks)batch import
help wantedquestion

Métriques du dépôt

Stars
 (6 985 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

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.

Guide contributeur