[Live-devel] Regarding the audio and video sync
    梦幻工作室 
    fantasyvideo at 126.com
       
    Mon Sep 17 00:27:46 PDT 2012
    
    
  
My session has one video and audio stream.
In the audio stream’s doGetNextFrame(), I set the fPresentationTime like
this:
void AudioFrameSource::doGetNextFrame() {
    CamerManager::GetInstance()->GetAudioFrame(“test”,(char*)fTo,fMaxSize,
&fFrameSize,&fNumTruncatedBytes);
if (fIsFirstPresentationTime) {
CameraManager::GetInstance()->GetTimeScale(&m_timescale);
           fIsFirstPresentationTime = False; // from now on
       }
    fPresentationTime = m_timescale;
    fDurationInMicroseconds = 5000; // because 40 samples at 8000
samples-per-second have a duration of 5 ms (== 5000 us)
 
    // Compute the next presentation time (i.e., to be used on the next call
to "doGetNextFrame()"):
    m_timescale.tv_usec += fDurationInMicroseconds;
    if (m_timescale.tv_usec > 1000000) {
       ++m_timescale.tv_sec;
       m_timescale.tv_usec -= 1000000;
    }
}
 
In the videoFramesource I set the same timestamp,
void VideoFrameSource::doGetNextFrame() {
    CamerManager::GetInstance()->GetVideoFrame(“test”,(char*)fTo,fMaxSize,
&fFrameSize,&fNumTruncatedBytes);
    if (fIsFirstPresentationTime) {
      CameraManager::GetInstance()->GetTimeScale(&m_timescale);
                   fIsFirstPresentationTime = False; // from now on
       }
    fPresentationTime = m_timescale;
    fDurationInMicroseconds = 5000; // because 40 samples at 8000
samples-per-second have a duration of 5 ms (== 5000 us)
 
    // Compute the next presentation time (i.e., to be used on the next call
to "doGetNextFrame()"):
    m_timescale.tv_usec += fDurationInMicroseconds;
    if (m_timescale.tv_usec > 1000000) {
       ++m_timescale.tv_sec;
       m_timescale.tv_usec -= 1000000;
    }
}
But unfortunately, I use vlc to access it, it can’t work correctly.    If
video is appear, then audio disappears. Otherwise, audio appears, video
disappears.
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20120917/e31cbc44/attachment.html>
    
    
More information about the live-devel
mailing list