bytedeco/javacv

Video and Audio in FFmpegFrameGrabber not same time

Open

#1,058 创建于 2018年9月15日

在 GitHub 查看
 (7 评论) (0 反应) (0 负责人)Java (1,583 fork)batch import
help wantedquestion

仓库指标

Star
 (6,985 star)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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.

贡献者指南