New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Video Synchronization with OGG Video Container #5

Open
wnbittle opened this Issue Mar 14, 2015 · 3 comments

Comments

Projects
None yet
1 participant
@wnbittle
Owner

wnbittle commented Mar 14, 2015

What steps will reproduce the problem?

  1. Download Praisenter
  2. Create a slide/template with a OGG video background/component (http://www.bigbuckbunny.org/index.php/trailer-page/ for example)
  3. Show the slide/template

What is the expected output? What do you see instead?
You should see the OGG video playback as any other video container. However, the sample video's audio is slightly behind the video in playback. Weirdly, after the first playback and a loop, the video plays in synch. Also, upon the 3rd playback the video just freezes.

I have verified that the timestamps are in increasing order, however, it seems that the audio or video is not offset like it should be (i.e. the audio is behind the video by a consistent amount) but only for the first playback.

@wnbittle wnbittle added the bug label Mar 14, 2015

@wnbittle

This comment has been minimized.

Show comment
Hide comment
@wnbittle

wnbittle Mar 14, 2015

Owner

Here are some more test videos (http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5/). The WebM and OGG files have the same issue as above except for the video freezing (in other words, they work just fine except in the first playback the audio is offset). The MP4 and FLV playback fine. The 3GP has an unsupported audio format: PCM_SIGNED 8000.0 Hz, 32 bit, stereo, 8 bytes/frame, little-endian.

Owner

wnbittle commented Mar 14, 2015

Here are some more test videos (http://techslides.com/sample-webm-ogg-and-mp4-video-files-for-html5/). The WebM and OGG files have the same issue as above except for the video freezing (in other words, they work just fine except in the first playback the audio is offset). The MP4 and FLV playback fine. The 3GP has an unsupported audio format: PCM_SIGNED 8000.0 Hz, 32 bit, stereo, 8 bytes/frame, little-endian.

@wnbittle

This comment has been minimized.

Show comment
Hide comment
@wnbittle

wnbittle Mar 14, 2015

Owner

Fixed the audio issue with the 3GP file by resampling down to 16 bit. The WebM and OGG still have the "first playback synchronization" problem. I need to do further investigation here, looking the timestamps of the first playback vs. the second to see if there are differences. If not, then its a bug in Praisenter's playback code.

Owner

wnbittle commented Mar 14, 2015

Fixed the audio issue with the 3GP file by resampling down to 16 bit. The WebM and OGG still have the "first playback synchronization" problem. I need to do further investigation here, looking the timestamps of the first playback vs. the second to see if there are differences. If not, then its a bug in Praisenter's playback code.

@wnbittle

This comment has been minimized.

Show comment
Hide comment
@wnbittle

wnbittle Mar 14, 2015

Owner

We get this on the first play:
Picture - 0
Picture - 40000
Picture - 80000
Picture - 120000
Picture - 160000
Picture - 200000
Picture - 240000
Picture - 280000
Audio - 0
Audio - 2667
Audio - 14667
Audio - 36000
Audio - 57333
Audio - 78667

On the second play we get this:
Picture - 160000
Picture - 200000
Picture - 240000
Picture - 280000
Picture - 320000
Picture - 360000
Picture - 400000
Picture - 440000
Audio - 0
Audio - 2667
Audio - 14667
Audio - 36000
Audio - 57333
Audio - 78667

I tried seeking the container before the first playback, this did not seem to help. Also, even though there are some timestamps missing for the two plays, it shouldn't matter to the player, since the timestamps are the same. They should be queued and played in the same order.

Owner

wnbittle commented Mar 14, 2015

We get this on the first play:
Picture - 0
Picture - 40000
Picture - 80000
Picture - 120000
Picture - 160000
Picture - 200000
Picture - 240000
Picture - 280000
Audio - 0
Audio - 2667
Audio - 14667
Audio - 36000
Audio - 57333
Audio - 78667

On the second play we get this:
Picture - 160000
Picture - 200000
Picture - 240000
Picture - 280000
Picture - 320000
Picture - 360000
Picture - 400000
Picture - 440000
Audio - 0
Audio - 2667
Audio - 14667
Audio - 36000
Audio - 57333
Audio - 78667

I tried seeking the container before the first playback, this did not seem to help. Also, even though there are some timestamps missing for the two plays, it shouldn't matter to the player, since the timestamps are the same. They should be queued and played in the same order.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment