Skip to content
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

Audio/Video out of sync #78

Open
buntupana opened this issue Apr 16, 2020 · 8 comments
Open

Audio/Video out of sync #78

buntupana opened this issue Apr 16, 2020 · 8 comments
Labels
bug Something isn't working needs-info

Comments

@buntupana
Copy link

using version: 0.9.0

I'm concatenating several videos and as a result I'm getting a video with a big sync delay with audio. Videos are taken from camera using CameraView library. I'm aware that a video recorded by phone camera usually has audio/video different lengths and that that is provoking the problem..but shouldn't be the transcoder taking care of it.

@cbernier
Copy link
Contributor

cbernier commented Apr 16, 2020

How many are you concatenating?

How long is the delay, ms or seconds?

If the length of the audio track of the videos doesn't match exactly the length of the video track then this will happen.

@buntupana
Copy link
Author

I'm concatenating around 10 videos.

The delay reach almost a second.

Yhea, that's exactly what's happening. Recording videos from phone camera can give a different video/audio length file and it would be really nice to have some option for the transcoder to take care of this problem since could be a common use of appending videos from phone camera.

@cbernier
Copy link
Contributor

cbernier commented Apr 21, 2020

You can maybe work around it by trimming your audio data source to match the video counter part:

                var videoDataSource:DataSource = UriDataSource(context, videoUri);
                var audioDataSource:DataSource = UriDataSource(context, audioUri);
                if (videoDataSource.durationUs > audioDataSource.durationUs) {
                    videoDataSource = TrimDataSource(videoDataSource, 0, videoDataSource.durationUs - audioDataSource.durationUs)
                } else if (videoDataSource.durationUs < audioDataSource.durationUs) {
                    audioDataSource = TrimDataSource(videoDataSource, 0, audioDataSource.durationUs - videoDataSource.durationUs)
                }
                builder.addDataSource(TrackType.AUDIO, audioDataSource)
                builder.addDataSource(TrackType.VIDEO, videoDataSource)

(I didn't test this code)

@buntupana
Copy link
Author

@cbernier2 in this case I will have to split the video and audio in two different files before apply this code. I think appending videos should somehow apply a fix to avoid out of sync problem automatically since it's a common practice.

@cbernier
Copy link
Contributor

cbernier commented Apr 29, 2020

@buntupana You don't have to split the video and audio, use the same file and by specifying TrackType.AUDIO, the transcoder will know to apply the Trim to only the audio.

@gaborSomogyvari
Copy link

  var videoDataSource:DataSource = UriDataSource(context, videoUri);         <-same uri for both
  var audioDataSource:DataSource = UriDataSource(context, audioUri);        <-same uri for both
  if (videoDataSource.durationUs > audioDataSource.durationUs) {               <-same lenght

@cbernier2 Hi,
If I have one .mp4 file, putting it into a videoDataSource and audioDataSource will produce the SAME .durationUs results, since we created the video and audio datasource from the same file. We cannot compare them, as they are the same.

I have the exact same problem as @buntupana, as my audio gets out of sync more and more, the more files I append
@buntupana, have you found any solution?

@buntupana
Copy link
Author

@gaborSomogyvari finally I decided to switch to a ffmpeg library

@natario1
Copy link
Member

(Pasted to all my answers today: it's been a long time since my last issues review. I am sorry about the delay and I know you likely have moved on by now. Still, I'm going to answer where I can)

Sorry to hear about this issue. Can anyone provide two files that, if concatenated, create the out-of-sync problem?

@natario1 natario1 changed the title Audio/Video out of sync problem concatenating Audio/Video out of sync Aug 11, 2024
@natario1 natario1 added bug Something isn't working needs-info labels Aug 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working needs-info
Projects
None yet
Development

No branches or pull requests

4 participants