Open buntupana opened 4 years ago
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.
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.
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)
@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.
@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.
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?
@gaborSomogyvari finally I decided to switch to a ffmpeg library
(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?
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.